Формула для копіювання декількох комірок за двома критеріями


3

Будь ласка, допоможіть. Я тупик! Я не дуже знайомий з формулами Excel.

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

Існує два критерії, які повинні принести інформацію з сторінки даних на сторінку посилання.

  1. Чи завершено роботу? Якщо відповідь "так", значення клітинки буде Y, а якщо значення "no", то значення клітинки буде N. Я хочу бачити тільки рядки, які містять значення клітинки N у стовпці, позначеному як робота завершена.

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

Чи можна це зробити за формулою? Хто-небудь може допомогти?


3
Скріншоти сторінок або принаймні зразки того, як це виглядає, допомогли б. Наприклад, де б цей скопійований рядок був вставлений у довідковий аркуш? Як визначити, який рядок слід копіювати? Перше питання можливе з перевіркою даних, і другий буде індексувати / відповідати, який я думаю.
Jerry

Відповіді:


2

Я збираюся відпрацювати кілька припущень:

  1. Існує осередок, A1, у вашому звіті, де хтось може ввести частину обладнання, що їх цікавить.
  2. На вашій сторінці "Збір даних" є дві колонки A і B: назва обладнання та y / n для повноти
  3. Наразі ви бажаєте побачити лише рядки "завершені" на сторінці звіту (це можна розширити з тонкими змінами до формул).
  4. Заповнені рядки на сторінці звіту почнуться в рядку 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 на вкладці збору даних до іншої вкладки, щоб люди, які збирали дані, не мавпали ваші формули. Функція індексу / збігу все одно спрацює, і ваш збір даних не побачить деталей внутрішньої роботи вашої робочої книги.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.