基于 2 列和 1 行的条件查找和 return 数据的最佳方法

Best way to lookup and return data for conditions based on 2 columns and 1 row

我在 Google 表格中有 2 个 sheet。一个 sheet 是一个员工的个人花名册,另一个 sheet 包含所有 99 名员工为每家商店犯下的所有错误。每天我们都会添加 2 个新商店的数据。

在花名册页面上,我希望能够根据商店名称查找员工错误(商店名称在单元格引用中:员工花名册中的 D、E、F:15 sheet ) 显然有名称(单元格引用:B5),以及 return 他们当天犯的 6 种错误类型(遗漏物品、双响、遗漏货架、遗漏隔间、键控错误、错误总计 sheet)

为了更好地理解这里是我的googlesheet:https://docs.google.com/spreadsheets/d/1awWIode75nPFbc9-d5YRUJZd0OyMWCCI8C7OKloeKjE/edit?usp=sharing

我需要哪种 code/formula?非常感谢任何帮助。

粘贴到 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))

粘贴到 D16 单元格并向右拖动:

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