![](https://cdn.wiki-base.com/1070576/excel_formula_filter_and_transpose_horizontal_to_vertical__2.png.webp)
Загальна формула
=TRANSPOSE(FILTER(data,logic))
Резюме
Щоб відфільтрувати дані, розташовані горизонтально, і відобразити результат у вертикальному форматі, ви можете використовувати функцію ФІЛЬТР разом із ПРОЗОРОМ. У наведеному прикладі формула в B10 має вигляд:
=TRANSPOSE(FILTER(data,group="fox"))
де дані (C4: L6) та групи (C5: L5) називаються діапазонами.
Пояснення
Метою є фільтрація горизонтальних даних у діапазоні C4: L6 для вилучення членів групи "лисиця" та відображення результатів із даними, перенесеними у вертикальний формат. Для зручності та читабельності ми маємо два названі діапазони для роботи: дані (C4: L6) та група (C5: L5).
Функцію ФІЛЬТР можна використовувати для вилучення даних, розташованих вертикально (у рядки) або горизонтально (у стовпці). FILTER поверне відповідні дані в тій же орієнтації. Формула в B5:
=TRANSPOSE(FILTER(data,group="fox"))
Працюючи зсередини, аргумент include для FILTER є логічним виразом:
group="fox" // test for "fox"
Коли обчислюється логічний вираз, він повертає масив із 10 значень TRUE і FALSE:
(TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE)
Примітка: коми (,) у цьому масиві позначають стовпці. Крапка з комою (;) вказувала б на рядки.
Масив містить одне значення на запис у даних, і кожному TRUE відповідає стовпець, де групою є "лисиця". Цей масив повертається безпосередньо до ФІЛЬТРА як аргумент включення, де він виконує фактичну фільтрацію:
FILTER(data,(TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE))
Через фільтр потрапляють лише дані у стовпцях, які відповідають TRUE, отже результат - дані для шести людей у групі "лисиця". FILTER повертає ці дані у вихідній горизонтальній структурі. Оскільки ми хочемо відображати результати з ФІЛЬТРУ у вертикальному форматі, функція ТРАНСПОЗ обертається навколо функції ФІЛЬТР:
=TRANSPOSE(FILTER(data,group="fox"))
Функція TRANSPOSE транспонує дані та повертає вертикальний масив як кінцевий результат у комірці B10. Оскільки FILTER є функцією динамічного масиву, результати потрапляють у діапазон B10: D15. Якщо дані в даних (C4: L6) змінюються, результат від FILTER автоматично оновлюється.