Формула Excel: Витягніть кілька збігів в окремі стовпці -

Резюме

Щоб витягти кілька збігів в окремі комірки, в окремих стовпцях можна використовувати формулу масиву на основі INDEX та SMALL. У наведеному прикладі формула в F5 має вигляд:

(=IFERROR(INDEX(names,SMALL(IF(groups=$E5,ROW(names)-MIN(ROW(names))+1),COLUMNS($E$5:E5))),""))

Це формула масиву, яку потрібно вводити за допомогою Control + Shift + Enter.

Після введення формули в першу клітинку перетягніть її вниз і впоперек, щоб заповнити інші комірки.

Пояснення

Примітка: ця формула використовує два іменовані діапазони: "імена" стосуються C5: C11, а "групи" стосуються B5: B11. Ці імена також визначені на знімку екрана вище.

Суть цієї формули така: ми використовуємо функцію SMALL для створення номера рядка, що відповідає "n-му збігу". Отримавши номер рядка, ми просто передаємо його у функцію функції INDEX, яка повертає значення в цьому рядку.

Фокус у тому, що SMALL працює з масивом, який динамічно будується IF у цьому біті:

IF(groups=$E5,ROW(names)-MIN(ROW(names))+1)

Цей фрагмент перевіряє названі "групи" діапазону на значення в E5. Якщо знайдено, він повертає номер рядка з масиву відносних номерів рядків, створених за допомогою:

ROW(names)-MIN(ROW(names))+1

Кінцевим результатом є масив, що містить числа, де є збіг, і FALSE, де ні:

(1; FALSE; FALSE; FALSE; FALSE; 6; FALSE)

Цей масив переходить у SMALL. Значення k для SMALL (n-го) походить із розширеного діапазону:

COLUMNS($E$5:E5)

При копіюванні в таблиці результатів діапазон розширюється, приводячи до збільшення k (n-го). Функція SMALL повертає кожен відповідний номер рядка, який надається функції INDEX як номер_ рядка, а масив має іменований діапазон "names".

Помилки обробки

Коли COLUMNS повертає значення k, яке не існує, SMALL видає помилку #NUM. Це відбувається після того, як відбулися всі збіги. Щоб придушити помилку, ми обертаємо формулу у функцію IFERROR, щоб виявити помилки та повернути порожній рядок ("").

Цікаві статті...