Я збираюся відпрацювати кілька припущень:
- Існує осередок, A1, у вашому звіті, де хтось може ввести частину обладнання, що їх цікавить.
- На вашій сторінці "Збір даних" є дві колонки A і B: назва обладнання та y / n для повноти
- Наразі ви бажаєте побачити лише рядки "завершені" на сторінці звіту (це можна розширити з тонкими змінами до формул).
- Заповнені рядки на сторінці звіту почнуться в рядку 2
По-перше, потрібно визначити, що обладнання, введене в ячейку A1 вашої звітної звітності, відповідає кожному рядку в колонці A збірки даних і що робота завершена в колонці В Ви можете зробити це за допомогою формули "і" у стовпці C вкладка збору даних.
=AND(A1=reference!$A$1, B1='Y')
Це поверне TRUE, якщо виконуються обидва умови, і FALSE, якщо один з них або обидва не виконані.
Далі ми повинні отримати трохи вищий рівень на цьому. Нам потрібно отримати TRUE рядки з аркуша введення даних до аркуша звіту. Ми не хочемо, щоб у звіті було багато пустих рядків між рядами TRUE, які були перенесені. В іншому випадку ми можемо зробити невеликий vlookup або index / match на TRUE і викликати його в день. Замість цього ми можемо використовувати RANK для встановлення порядку, в якому рядки переносяться зі сторінки збору даних на сторінку посилання.
Для цього в стовпці D на аркуші збору даних потрібно встановити значення TRUE від 1 до будь-якого числа TRUE рядків. Оскільки не існує способу сказати, що один рядок TRUE стоїть вище за інший, ми будемо використовувати ROW () для номера рядка для встановлення рангу. У стовпці D введіть:
=IF(C1=TRUE, ROW(), 0)
Все це зробить запис рядка в колонці D, коли виконуються критерії, встановлені в стовпці С. Тепер, щоб додати RANK, у стовпці E введіть:
=RANK(D1,D1:D14)*(D1>0)
Це робить дві речі. По-перше, він визначає ранг рядка, починаючи з 1, і перейдемо до будь-якого числа "TRUE" рядків у перших 14 рядках (збільшуючи, щоб покрити всі рядки введення даних). Другий *(D1>0)
ставить 0 у стовпці E, якщо значення в колонці D дорівнює 0, тому що ми не хочемо навіть розглядати ранг, якщо це рядок FALSE.
Тепер ви повинні мати ранжовані значення в стовпці Е, які знаходяться в порядку убування, залежно від того, чи було критерієм TRUE і номером рядка. Тепер нам потрібно перетягнути ці значення на аркуш звіту. Для цього в аркуші звіту, починаючи з осередку A2, починаємо нумерацію 1,2,3,4, ... вниз по колонці. Вони "збігатимуться" до рядків у аркуші збору даних у стовпці Е.
Тепер, щоб отримати перший стовпець відповідних рядків, введіть у стовпець B звіту (починаючи з B1) наступне:
=INDEX(Sheet2!A:A, MATCH(Sheet1!A2, Sheet2!E:E,0), 1)
Це використовується функція індексу, яка дозволяє витягувати значення з певного рядка і стовпця в діапазоні. Наш діапазон - Sheet2! A: A (аркуш збору даних, стовпець А). Наш рядок - будь-яке значення (аркуш 2! E: E), що відповідає нашим числам, які ми ввели в стовпець A звіту. Наш стовпець - це лише 1. Подивіться "індекс у Excel" у Google, щоб зрозуміти це ще, якщо це є новим для вас. Подібним чином ви можете витягнути стовпець B колекції даних. У стовпці B аркуша звіту (Починаючи з B2) введіть наступне:
=INDEX(Sheet2!B:B, MATCH(Sheet1!A2, Sheet2!E:E,0), 1)
Ось це для моїх простих припущень. По суті, вам знадобляться три стовпці, щоб визначити, чи виконувалися ваші критерії на вкладці збору даних, а потім ранжувати ці дані від 1 до n. І ви повинні використовувати індексний збіг (або vlookup, якщо ви трохи переставляєте речі), щоб витягти ці рангові рядки до вашого звіту. Ви можете скопіювати цю ж логіку для ранжування FALSE, якщо ви бажаєте перенести рядки, позначені як неповні на вкладці збору даних.
Нарешті, після того, як ви обернете голову навколо цього, подумайте про переміщення стовпців C, D, E на вкладці збору даних до іншої вкладки, щоб люди, які збирали дані, не мавпали ваші формули. Функція індексу / збігу все одно спрацює, і ваш збір даних не побачить деталей внутрішньої роботи вашої робочої книги.