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

时间:2019-04-16 19:49:50

标签: performance google-sheets formula vlookup google-sheets-formula

我在Google表格中有2张纸。一张纸是雇员的个人花名册,另一张纸是所有99名雇员为每个商店所做的所有错误。每天我们都会添加2个新的数据存储区。

在花名册页面上,我希望能够根据商店名称(在雇员花名册中的商店名称位于单元格引用中:D,E,F:15)查找员工错误,并且显然还有名称(单元格引用:B5),并返回当天发生的6种错误类型(缺失项,双哔哔声,缺失的货架,缺失的托架,键控错误,错误表中的总计)

要在这里加深了解,请访问我的Google工作表:https://docs.google.com/spreadsheets/d/1awWIode75nPFbc9-d5YRUJZd0OyMWCCI8C7OKloeKjE/edit?usp=sharing

我需要什么样的代码/公式?任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

paste in D16 cell and drag to the right:

=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

答案 1 :(得分:0)

paste in D16 cell and drag to the right:

=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