如何修改公式以根据最多四个标准(而不是仅一个)提取值?

问题描述 投票:0回答:1

我有一个如下所示的电子表格:

enter image description here

我在单元格 N2 中有以下公式:

=let(Λ,transpose(bycol(B2:F,lambda(Σ,if(xmatch(O1,Σ),vstack(index(1:1,column(Σ)),join(", ",filter(A2:A,Σ=O1))))))),filter(Λ,index(Λ,,2)<>""))

这个公式:

  1. 在数据集 B2:F 中搜索 O1 中的值。
  2. 返回B1:F1对应的结果,去掉空格。
  3. 检查L列的值,如果为0,则不显示;如果大于0,则会显示结果。
  4. 显示 A2 列中找到的相应值匹配:如果有多个,则用逗号分隔

我想要做的是扩展此公式以考虑最多四个条件(从单元格 O1 到 R1),同时仍将 A 列中的相应值保留在相应的列中。此外,如果 O1:R1 中的任何单元格为空白,则不应将其视为标准。

以下是预期结果的示例:

enter image description here

工作表链接:https://docs.google.com/spreadsheets/d/1tprQIYEMgLRuyCMCQ0cDO_JDzWKdW-eTyXH76HJTeic

google-sheets google-sheets-formula
1个回答
0
投票

在 N2 中尝试以下操作,而不是原来的公式:

=arrayformula(let(
flatTbl,query(to_text(split(tocol(B1:F1&"|"&A2:A14&"|"&B2:F14),"|",,1)),"where Col2 is not null and Col3 is not null",0),
uniquePerCol,tocol(map(O1:R1,lambda(x,ifna(unique(filter(choosecols(flatTbl,1),choosecols(flatTbl,3)=x))))),1),
shared,sort(unique(filter(uniquePerCol,countif(uniquePerCol,uniquePerCol)=counta(O1:R1)))),
lookups,makearray(counta(shared),columns(O1:R1),lambda(r,c,textjoin(", ",1,ifna(query(flatTbl,"select Col2 where Col1='"&chooserows(shared,r)&"' and Col3='"&choosecols(O1:R1,c)&"'",0))))),
{shared,lookups}))

我不会尝试解释这一点!

© www.soinside.com 2019 - 2024. All rights reserved.