我需要Excel公式的帮助。我必须根据另一个单元格中的逗号分隔值列表查找单元格值例如,这里G5将具有ID列包含值1或2(E5中逗号分隔的列表)的估计结束日期列(H)的最大值。同样,上面的列表中可能有2个以上的值x1c 0d1x的数据所以这里G5应该是09/03/22,因为它是04/03/22和09/03/22的最大值。
hfsqlsce1#
假设你有Excel 365,步骤如下:1.将CSV转换为数组1.将数组Map到找到的行号1.获取结果数组的max我没有TEXT_SPLIT函数,所以我必须滚动我自己的。我有几个帮助函数(注意这些保存为名称,在公式->定义名称中,所以你需要添加它们)。
=LAMBDA(txt,"," & txt & ",")
字符串
=LAMBDA(txt,LEN(txt)-LEN(SUBSTITUTE(txt,",",""))-1)
型
=LAMBDA(n,txt,FIND("@",SUBSTITUTE(txt,",","@",n)))
=LAMBDA(n,txt,csvPosOf(n+1,txt)-csvPosOf(n,txt)-1)
=LAMBDA(txt,MAKEARRAY(1,csvCount(txt),LAMBDA(r,c,TRIM(MID(txt,csvPosOf(c,txt)+1,csvLenOf(c,txt))))))
型这涵盖了将CSV文本拆分为数组。ID到行号和MAX调用的Map就是这个公式:
MAX
=MAX(MAP(csvArray(csvText(C3)),LAMBDA(v,INDEX($A:$H,MATCH(VALUE(v),$A:$A,0),8))))
型您需要将此公式添加到G列的每一行中。再次根据需要调整单元格引用。请注意,您必须对LAMBDA表达式调用VALUE函数,因为您不能隐式地将数字的文本表示MATCH转换为实际数字。
VALUE
MATCH
1条答案
按热度按时间hfsqlsce1#
假设你有Excel 365,步骤如下:
1.将CSV转换为数组
1.将数组Map到找到的行号
1.获取结果数组的max
我没有TEXT_SPLIT函数,所以我必须滚动我自己的。我有几个帮助函数(注意这些保存为名称,在公式->定义名称中,所以你需要添加它们)。
字符串
型
型
型
型
这涵盖了将CSV文本拆分为数组。
ID到行号和
MAX
调用的Map就是这个公式:型
您需要将此公式添加到G列的每一行中。再次根据需要调整单元格引用。请注意,您必须对LAMBDA表达式调用
VALUE
函数,因为您不能隐式地将数字的文本表示MATCH
转换为实际数字。