Excel基于逗号分隔的字符串值查找值

hrirmatl  于 2023-11-20  发布在  其他
关注(0)|答案(1)|浏览(158)

我需要Excel公式的帮助。我必须根据另一个单元格中的逗号分隔值列表查找单元格值
例如,这里G5将具有ID列包含值1或2(E5中逗号分隔的列表)的估计结束日期列(H)的最大值。同样,上面的列表中可能有2个以上的值
x1c 0d1x的数据
所以这里G5应该是09/03/22,因为它是04/03/22和09/03/22的最大值。

hfsqlsce

hfsqlsce1#

假设你有Excel 365,步骤如下:
1.将CSV转换为数组
1.将数组Map到找到的行号
1.获取结果数组的max
我没有TEXT_SPLIT函数,所以我必须滚动我自己的。我有几个帮助函数(注意这些保存为名称,在公式->定义名称中,所以你需要添加它们)。

  • csvText*
=LAMBDA(txt,"," & txt & ",")

字符串

  • csvCount*
=LAMBDA(txt,LEN(txt)-LEN(SUBSTITUTE(txt,",",""))-1)

  • csvPosOf*
=LAMBDA(n,txt,FIND("@",SUBSTITUTE(txt,",","@",n)))

  • csvLenOf*
=LAMBDA(n,txt,csvPosOf(n+1,txt)-csvPosOf(n,txt)-1)

  • csvArray*
=LAMBDA(txt,MAKEARRAY(1,csvCount(txt),LAMBDA(r,c,TRIM(MID(txt,csvPosOf(c,txt)+1,csvLenOf(c,txt))))))


这涵盖了将CSV文本拆分为数组。
ID到行号和MAX调用的Map就是这个公式:

=MAX(MAP(csvArray(csvText(C3)),LAMBDA(v,INDEX($A:$H,MATCH(VALUE(v),$A:$A,0),8))))


您需要将此公式添加到G列的每一行中。再次根据需要调整单元格引用。请注意,您必须对LAMBDA表达式调用VALUE函数,因为您不能隐式地将数字的文本表示MATCH转换为实际数字。

相关问题