繁体   English   中英

使用 MAP 或 ARRAY FORMULA 将复杂公式应用于整列

[英]Apply complex formula to whole column using MAP or ARRAY FORMULA

这是我之前的问题的跟进。

@Martin@rockinfreakshow帮助我分别使用MAPBYROW转换以下公式。

F1单元格转换前的公式:

=if(Iferror(vlookup($D1, INDIRECT("$"&"A"&MATCH(E1,$B:$B,0)+1&":$B"),2,false),"")=E1,"",Iferror(vlookup($D1, INDIRECT("$"&"A"&MATCH(E1,$B:$B,0)+1&":$B"),2,false),""))

F1细胞中的公式溶液:

=MAP(D:D,E:E,LAMBDA(d,e,IFERROR(IF(d="","",INDEX(FILTER(B:B,A:A=d,ROW(B:B)>MATCH(e,B:B,0)),1))))) 

正如我所期望的那样,解决方案是ARRAYFORMULA包装,我会自己转换下一个公式,但事实并非如此。 所以我正在寻找你的帮助来转换这些:

G1 单元格中的公式:

=if(or(Iferror(vlookup($D1, INDIRECT("$"&"A"&MATCH(F1,$B:$B,0)+1&":$B"),2,false),"")=E1,Iferror(vlookup($D1, INDIRECT("$"&"A"&MATCH(F1,$B:$B,0)+1&":$B"),2,false),"")=F1)
,"",Iferror(vlookup($D1, INDIRECT("$"&"A"&MATCH(F1,$B:$B,0)+1&":$B"),2,false),""))

H1单元格中的公式:

=if(or(Iferror(vlookup($D1, INDIRECT("$"&"A"&MATCH(G1,$B:$B,0)+1&":$B"),2,false),"")=E1,Iferror(vlookup($D1, INDIRECT("$"&"A"&MATCH(G1,$B:$B,0)+1&":$B"),2,false),"")=F1,Iferror(vlookup($D1, INDIRECT("$"&"A"&MATCH(G1,$B:$B,0)+1&":$B"),2,false),"")=G1)
,"",Iferror(vlookup($D1, INDIRECT("$"&"A"&MATCH(G1,$B:$B,0)+1&":$B"),2,false),""))

现在,我的期望是,如果我们能够找到 G1、H1 公式的解决方案,我应该能够将它复制到其他单元格I1,J1,K1..中的公式。

我已经为您的测试链接了一张表格: https://docs.google.com/spreadsheets/d/13XLZvvdzK_mqr4Ous50cIEfernw2XrPJWvVgt1hFxtk/edit?usp=sharing

任何帮助深表感谢。

这是一个非常重的电子表格:您可以尝试删除 E:AU 中的所有数据并使用以下公式:

=ARRAYFORMULA(IFERROR (SPLIT(BYROW(D1:INDEX(D1:D,COUNTA(D1:D)),LAMBDA(v,TEXTJOIN(",",,FILTER(B:B,A:A=v)))),",")))

它加入每行的过滤值,然后将它们拆分到您想要的列中

我不确定这个公式到底是做什么的,但试试这个:

=ARRAYFORMULA(LAMBDA(res,if(res=E1:E11,,res))(XLOOKUP(D1:D11,A1:A11,B1:B11,,,-1)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM