Лучший способ поиска и возврата данных для условий на основе 2 столбцов и 1 строки - PullRequest
2 голосов
/ 16 апреля 2019

У меня есть 2 листа в Google Sheets.Один лист представляет собой индивидуальный список сотрудников, а другой - все ошибки, допущенные всеми 99 сотрудниками для каждого отдельного магазина.Каждый день мы добавляем данные в 2 новых хранилища данных.

На странице реестра я хочу иметь возможность поиска ошибок сотрудников на основе названия магазина (имена магазинов указаны в ячейке: D, E, F: 15 в списке сотрудников) и, очевидно, там имя (ссылка на ячейку: B5), и возвращает 6 типов ошибок, которые они сделали в день (Пропущенный элемент, Двойной сигнал, Пропущенная полка, Пропущенный отсек, Ошибка ключа,Итого из листа ошибок)

Для лучшего понимания вот мой лист Google: https://docs.google.com/spreadsheets/d/1awWIode75nPFbc9-d5YRUJZd0OyMWCCI8C7OKloeKjE/edit?usp=sharing

Какой код / ​​формула мне понадобится?Любая помощь с благодарностью.

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

вставьте в ячейку D16 и перетащите вправо:

=ARRAYFORMULA(IFERROR(VLOOKUP(
 {"Missed Item"; "Keying Error"; "Double Beep"; "Missed Shelf"; "Missed Bay"; "Total"}, 
 {TRANSPOSE(Errors!$B$3:$G$3), IF(
 TRANSPOSE(INDIRECT("Errors!"&ADDRESS(MAX(IF(Errors!$A:$A=$B$5,ROW($A:$A), )), 
 MATCH(FILTER(Errors!2:2, SEARCH(D15, Errors!2:2)), Errors!2:2, 0), 4)&
 ":"&ADDRESS(MAX(IF(Errors!$A:$A=$B$5,ROW($A:$A), )), 
 MATCH(FILTER(Errors!2:2, SEARCH(D15, Errors!2:2)), Errors!2:2, 0)+5, 4)))="", 0, 
 TRANSPOSE(INDIRECT("Errors!"&ADDRESS(MAX(IF(Errors!$A:$A=$B$5,ROW($A:$A), )), 
 MATCH(FILTER(Errors!2:2, SEARCH(D15, Errors!2:2)), Errors!2:2, 0), 4)&
 ":"&ADDRESS(MAX(IF(Errors!$A:$A=$B$5,ROW($A:$A), )), 
 MATCH(FILTER(Errors!2:2, SEARCH(D15, Errors!2:2)), Errors!2:2, 0)+5, 4))))}, 2, 0)))

0

0 голосов
/ 17 апреля 2019

вставьте в ячейку D16 и перетащите вправо:

=ARRAYFORMULA(MMULT(IF(TRANSPOSE(INDIRECT("Errors!"&ADDRESS(4, 
 MATCH(FILTER(Errors!2:2, SEARCH(D15, Errors!2:2)), Errors!2:2, 0), 4)&
 ":"&SUBSTITUTE(ADDRESS(3, 
 MATCH(FILTER(Errors!2:2, SEARCH(D15, Errors!2:2)), Errors!2:2, 0)+5, 4), 3, 105)))="", 0, 
 TRANSPOSE(INDIRECT("Errors!"&ADDRESS(4, 
 MATCH(FILTER(Errors!2:2, SEARCH(D15, Errors!2:2)), Errors!2:2, 0), 4)&
 ":"&SUBSTITUTE(ADDRESS(3, 
 MATCH(FILTER(Errors!2:2, SEARCH(D15, Errors!2:2)), Errors!2:2, 0)+5, 4), 3, 105)))), 
 ROW($A4:$A105)^0))

0

...