基于 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)))
我在 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)))