Фильтруйте и сортируйте данные с помощью нескольких критериев столбца и строки и сопоставляйте с ними соответствующие данные с помощью фиксированных и гибких return_arrays

0 А Б С Д Э Ф г ЧАС я Дж К л М Н О п вопрос 1 Продукт Магазин 2023-С 2023-М 2024-С 2024-М Тип 2 3 500 4 P-линия_A Шаг 1 5 Прод_А магазин3 80 2% 500 22% т1 ColCrit1 ColCrit2 ColCrit3 6 Prod_B магазин2 320 23% 180 60% т1 Прод_Д магазин1 т3 7 Prod_B магазин1 90 8% 300 36% т2 Prod_G магазин3 т4 8 Prod_C магазин3 500 15% 657 16% т1 магазин4 9 Прод_Д магазин1 160 17% 500 15% т3 10 Прод_Д магазин1 500 30% 600 8% т3 строкакрит 11 Прод_Д магазин1 130 4% 300 4% т3 2024-С 12 Общий 1810 г. 3037 13 14 600 Шаг 2 15 300 l_array r_array3 r_array4 16 P-линия_B 2024-С Магазин 2023-С 17 Prod_E магазин2 75 10% 450 10% т1 18 Prod_F магазин4 60 8% 370 4% т2 19 Prod_F магазин1 500 11% 850 4% т2 Шаг 3 20 Prod_G магазин3 350 8% 150 15% т3 Строки Начинать 21 Prod_G магазин3 60 47% 600 7% т4 10 2 22 Prod_G магазин4 90 25% 830 35% т4 23 Prod_G магазин2 390 9% 325 13% т1 24 Prod_G магазин3 90 30% 300 9% т3 Шаг 4 25 Prod_G магазин4 90 5% 300 12% т3 Продукт Тип Магазин 2023-М 2024-С 26 Prod_G магазин4 120 24% 300 24% т4 Прод_Д т3 магазин1 500 600 27 Prod_G магазин4 135 35% 480 17% т4 Prod_G т4 магазин3 60 600 28 Prod_H магазин2 935 27% 230 16% т1 Прод_Д т3 магазин1 160 500 29 Prod_I магазин3 134 18% 600 42% т2 Prod_G т4 магазин4 135 480 30 Общий 3029 5785 Прод_Д т3 магазин1 130 300 31 Prod_G т3 магазин3 90 300 32 Prod_G т3 магазин4 90 300 33 Prod_G т4 магазин4 120 300 34 Prod_G т3 магазин3 350 150 35 36

Цель

Конечным результатом является Range M26:Q34, который представляет собой нисходящий список на основе lookup_array в Cell M16 и нескольких фильтров столбцов и строк (Range M6:M8,Range N6:O8, Range O6:O8 и Cell M11) и выбранных позиций в рейтинге на основе Cell M21 и Cell N21.

Чтобы получить этот список, необходимо выполнить следующие шаги:
(Вы также можете увидеть шаги в таблице в столбце M, чтобы вам было легче следовать инструкциям)

  1. Определите несколько критериев столбца в Range M6:O6 и критерии строки в Cell M11. Все эти критерии являются AND критериями. После фильтрации список следует отсортировать по убыванию.
  2. На основе шага 1 у вас будет нисходящий список, соответствующий критериям столбца и строки. Для этого списка следует добавить соответствующие значения, основанные на ret_array3 в Cell N16 и ret_array4 в Cell O16.
    (Примечание: lookup_array = rowCrit --> Cell M16 = Cell M11)

В отличие от этого вопроса первые два столбца Product и Type фиксированы, что означает, что они всегда должны появляться по умолчанию.
Только столбцы после них являются гибкими в зависимости от входных данных в Cell N16 и Cell O16.
К формуле должно быть легко присоединить еще больше ret_arrays.

  1. Из списка на шаге 2 должны отображаться только те значения, которые ранжированы по позициям на основе Cell M21 и Cell N21.
    В этом случае 10 positions после 1st position.
  2. После шагов 1–3 на шаге 4 должен появиться окончательный список.

Как мне нужно изменить формулу из этого вопроса, чтобы она работала?

=LET(
    _a, COUNTIF(M6:M8,A1:A31)+AND(M6:M8 = ""),
    _b, COUNTIF(N6:N8,C1:C31)+AND(N6:N8 = ""),
    _c, COUNTIF(O6:O8,K1:K31)+AND(O6:O8 = ""),
    _d, TOROW(HSTACK(N16,O16,M16),1),
    _e, CHOOSECOLS(A1:K31,XMATCH(_d,A1:K1)),
    _f, COLUMNS(_d),
    _g, SORT(FILTER(HSTACK(_e,FILTER(A1:K31,A1:K1=M11,"")),_a*_b*_c,""),_f+1,-1),
    VSTACK(_d, WRAPROWS(TOCOL(INDEX(_g,SEQUENCE(M21,,N21),SEQUENCE(,_f)),2),_f)))
Column 2023-M будет в процентах, и, кстати, вот что вам нужно ввести: TOROW(HSTACK("Product","Type",N16,O16,M16),1)
Mayukh Bhattacharya 10.07.2024 14:11

Изменил на 2023-S.

Michi 10.07.2024 14:14

Еще один, Product D -- Type t3 --> Shop 1 показан дважды. Разве не должно быть один раз 160 и еще один 130?

Mayukh Bhattacharya 10.07.2024 14:16

Тоже поменяй.

Michi 10.07.2024 14:21
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
4
70
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте следующую формулу:


=LET(
    _a, COUNTIF(M6:M8,A1:A31)+AND(M6:M8 = ""),
    _b, COUNTIF(N6:N8,C1:C31)+AND(N6:N8 = ""),
    _c, COUNTIF(O6:O8,K1:K31)+AND(O6:O8 = ""),
    _d, TOROW(HSTACK("Product","Type",N16,O16,M16),1),
    _e, CHOOSECOLS(A1:K31,XMATCH(_d,A1:K1)),
    _f, COLUMNS(_d),
    _g, SORT(FILTER(HSTACK(_e,FILTER(A1:K31,A1:K1=M11,"")),_a*_b*_c,""),_f+1,-1),
    VSTACK(_d, WRAPROWS(TOCOL(INDEX(_g,SEQUENCE(M21,,N21),SEQUENCE(,_f)),2),_f)))

Есть ли также способ сделать это, когда заголовок столбца отсутствует, поэтому он фиксируется в столбце A и столбце C?

Michi 10.07.2024 14:22

Извините, я не могу понять, не могли бы вы объяснить подробнее.

Mayukh Bhattacharya 10.07.2024 14:23

Но ваша цель — иметь фиксированные столбцы для Products и Type, тогда почему A To C?

Mayukh Bhattacharya 10.07.2024 14:26

Ваше решение работает. Это был скорее дополнительный вопрос от меня, есть ли опция без ссылки на заголовок столбца, чтобы формула была независима от имени заголовка и основывалась на самом столбце.

Michi 10.07.2024 14:30

Я также могу открыть для этого отдельный вопрос, но не уверен, что это необходимо, если решение простое, и вы можете добавить к своему ответу здесь.

Michi 10.07.2024 14:31

Дай мне подумать, что ты хочешь сказать. я обновлю

Mayukh Bhattacharya 10.07.2024 14:38

Это означает, что в моем примере вместо ссылок на «Продукт» и «Тип» вы ссылаетесь на столбец A и столбец K. Я думаю, что этот пример немного сбивает с толку, потому что лучше иметь пример, в котором он будет относиться к столбцу A. Столбец C, а также «Тип» и «2023-M» представляют собой гибкие return_arrays. Позже я открою новый вопрос.

Michi 10.07.2024 14:51

@Michi Теперь я понимаю, почему бы просто не сослаться на ячейку заголовков столбцов следующим образом: TOROW(HSTACK(A1,K1,N16,O16,M16),1)

Mayukh Bhattacharya 10.07.2024 15:01

Другие вопросы по теме