В Cell O7
я хочу отобразить нисходящий список данных в Column A
на основе чисел в Range E4:H10
и нескольких критериев в L2
, M2
, O2:O4
и P2:P4
.
На данный момент мне удалось разработать эту формулу:
=SORT(LET(
a, COUNTIF(O2:O4, C4:C10) + AND(O2:O4 = ""),
b, COUNTIF(P2:P4, J4:J10) + AND(P2:P4 = ""),
FILTER(FILTER(E4:H10, (E1:H1 = L2) * (E2:H2 = M2), ""), a * b, "")
),,-1)
Это дает мне следующий результат:
Этот результат уже верен, судя по числам и сортировке.
Однако как мне изменить формулу, чтобы она отображала рейсы из Column A
, а не цифры?
Формула в O7
:
=TAKE(SORT(FILTER(HSTACK(A4:A10,FILTER(E4:H10,(E1:H1=L2)*(E2:H2=M2))),COUNTIF(O2:O3,C4:C10)*COUNTIF(P2:P3,J4:J10)),2,-1),,1)
Формула в O7
есть
=LET(col,MATCH(1,MATCH(E1:H1,L2,0)*MATCH(E2:H2,M2,0),0),INDEX(A4:A10,MATCH(SORT(CHOOSECOLS(FILTER(E4:H10,ISNUMBER(MATCH(C4:C10,O2:O3,0)*MATCH(J4:J10,P2:P3,0))),col),,-1),CHOOSECOLS(E4:H10,col),0)))
Если у вас Excel 2021 (а не MS365) =INDEX(SORT(FILTER(A4:H10,ISNUMBER(MATCH(C4:C10,O2:O3,0)*MATCH(J4:J10,P2:P3,0))),MATCH(L2&M2,A1:H1&A2:H2,0),-1),,1)
С СОРТИРОВКОЙ
=LAMBDA(
col_to_filter,
col_1,
col_2,
sort_by_cols,
row_crit_1,
row_crit_2,
col_crit_1,
col_crit_2,
LET(
include_rows, COUNTIFS(
col_crit_1, col_1,
col_crit_2, col_2
),
filtered, FILTER(col_to_filter, include_rows),
sort_col_index, XMATCH(
row_crit_1 & row_crit_2,
INDEX(sort_by_cols, 1, ) &
INDEX(sort_by_cols, 2, ),
0
),
sort_by_col, FILTER(
DROP(INDEX(sort_by_cols, , sort_col_index), 3),
include_rows
),
result, SORTBY(filtered, sort_by_col, -1),
IFERROR(result, "No results")
)
)(A4:A10, C4:C10, I4:I10, E1:H10, L2, M2, N2:N3, O2:O3)
Почти похоже
=TAKE(SORT(FILTER(CHOOSECOLS(A4:H10,1,XMATCH(L2&M2,A1:H1&A2:H2)),COUNTIF(O2:O5,C4:C10)*COUNTIF(P2:P5,J4:J10),""),2,-1),,1)