Як ви генеруєте список в excel на основі заданих критеріїв?


0

Я намагаюся створити щось на зразок інформаційної панелі з кількома спадами, які б шукали таблицю та надавали мені список, виходячи з того, що я вибрав. Будь ласка, дивіться нижче таблицю:

Приклад таблиці

Отже, що я хочу, коли я вибираю "Не потрібно" з однієї спадної сторінки та "Документ 2" з іншої, він повинен дати мені список усіх систем, які відповідають цим критеріям.

Я дуже вдячний за будь-яку допомогу з цього приводу!

Дякую

Відповіді:


1

Я припускаю, що на екрані екрана є ваша таблиця даних, а дві спадні програми для визначення критеріїв - деінде.

Ця формула, заповнена B17 на відео нижче, перераховує Системи, що відповідають критеріям: =IFERROR(INDEX(A$2:A$13,AGGREGATE(15,6,ROW(A$1:A$12)/(INDEX(B$2:H$13,,MATCH(C$18,B$1:H$1))=C$17),ROW()-16)),"")

Це формула масиву, і її потрібно вводити за допомогою CTRLShiftEnter.

введіть тут опис зображення

Я сподіваюся, що це допомагає, і удачі. ______________________________________________________________________________

Як це працює: Внутрішній INDEX()повертає цілий стовпчик таблиці даних, вибраний із спадним меню "Док" C$18. Тоді рівність =C$17повертає масив TRUE/FALSEзначень з TRUEу кожній позиції, де комірка містить вибір у C$17спадному меню.

ROW(A$1:A$12)дає масив послідовних чисел {1;2;3;...12}, і це ділиться на TRUE/FALSEмасив.

В арифметичних операціях з участю логічних значень, TRUEі FALSEперетворюються в 1 і 0. Таким чином, поділ надає масив #DIV/0!помилок для кожного FALSE, впереміш із номерами рядків кожного виникнення значення зі спадного меню.

Цей масив подається до AGGREGATE()функції, яка робить те саме, що SMALL()і (function = 15), за винятком того, що він має можливість ігнорувати помилки (option = 6). Таким чином, AGGREGATE()ігнорує #DIV/0!помилки та надає масив, що містить лише номери рядків значень із спадного меню C $ 17, як функція заповнюється. Цей масив використовується як row-num's в іншому INDEX(), який повертає список систем, що відповідають цим номерам рядків.

Нарешті, IFERROR()вставляє пробіл кожного разу, коли INDEX()виникає помилка, оскільки він заповнюється далі, ніж кількість значень у його списку row_nums.

Я ставлю цю формулу в рядок 17, тому останній ROW()-16починає список з 1-го рядка_num у масиві. Тож вам слід змінити останній "16" на один менший, ніж номер рядка, де ви маєте формулу.


О, вау, я не очікував такої всебічної та детальної відповіді! Дуже цінуй цей Bandersnatch! Я спробую це сьогодні чи завтра, і я дам вам знати, як я дістаюсь. Ще раз дякую за рішення і пояснивши, як це працює!
Рав

Вибачте, що вас турбує, але ви можете, будь ласка, дозволити мені створити електронну таблицю, яку ви створили?
Рав

Я завантажив його сюди . Повідомте мене, якщо це не працює.
Bandersnatch

Не натискайте кнопку "Відкрити", що відкриває робочу книжку в Excel Online. Поруч із кнопкою «Відкрити» - три крапки (...), а під цим меню - «Завантажити». Вони не повинні бути настільки проклятими таємницями щодо цього. :-)
Bandersnatch
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.