gpt4 book ai didi

arrays - 添加具有多个真实 filterxml 变量的 ifs 函数

转载 作者:行者123 更新时间:2023-12-04 21:28:12 25 4
gpt4 key购买 nike

我有一个 Excel 电子表格,其中包含一列中的字符串列表。字符串列表由多个不同长度的数字组成,用“/”和“;”分隔字符串的第一个条目是代码 id(长度始终为 3),后跟“/”,然后是数量(长度不同),后跟“;”如果字符串继续。 (以下文本示例)
我可以使用此功能隔离金额:

TRANSPOSE(FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(B2,"/",";"),";","</s><s>")&"</s></t>","//s[position() mod 2 = 0]"))
但是,我仍然需要 ifs 函数来将字符串中的变量相乘,因此我为数组分配了 set 变量:
LET(X,FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(B2,"/",";"),";","</s><s>")&"</s></t>","//s[position() mod 2 = 0 and .<=10]"))
LET(Y,FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(B2,"/",";"),";","</s><s>")&"</s></t>","//s[position() mod 2 = 0 and .>10 and .<=20]"))
LET(Z,FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(B2,"/",";"),";","</s><s>")&"</s></t>","//s[position() mod 2 = 0 and .>20]"))
然后我创建了它应该工作的 IFS 函数(这只是一个例子,实际的 IFS 函数要长得多):
IFS(AND(A2=2,X<=10),X*1.09,AND(A2=2,Y>10,Y<=20),Y*1.14,AND(A2=2,Z>20),Z*1.21)
我试图把这些放在一起,我想出了这个:
=TRANSPOSE(LET(X,FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(B30,"/",";"),";","</s><s>")&"</s></t>","//s[position() mod 2 = 0 and .<=10]"),Y,FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(B30,"/",";"),";","</s><s>")&"</s></t>","//s[position() mod 2 = 0 and .>10 and .<=20]"),Z,FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(B30,"/",";"),";","</s><s>")&"</s></t>","//s[position() mod 2 = 0 and .>20]"),IFS(AND(A30=2,X<=10),X*1.09,AND(A30=2,Y>10,Y<=20),Y*1.14,AND(A30=2,Z<=20),Z*1.21)))
但是,这只返回小于或等于 10 的变量 X。
有没有办法让所有变量 X、Y 和 Z 都起作用?
公式返回什么
018/2;274/21;218/15 -> 2*1.09 
它需要返回什么
018/2;274/21;218/15 -> 2*1.09 21*1.21 15*1.14
编辑:
我之前提到的公式中的A2也是一个变量,在1到28之间变化,根据这个变量乘数会发生变化,如下例所示:
enter image description here

最佳答案

似乎以下内容可以满足您的需求(经过我们长时间的交谈):

=IF(A2<>"",LET(MNT,TRANSPOSE(FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(B2,"/",";"),";","</s><s>")&"</s></t>","//s[position() mod 2 = 0]")),MUL,INDEX({1.65\1.35\0.14,1.85\1.47\0.24,2.05\2.48\0.5},MATCH(A2,{1,2,4,6,8,10,12,16,20,24,28},0),0),IFS(MNT<=10,MNT*INDEX(MUL,1),MNT<=20,MNT*INDEX(MUL,2),MNT>20,MNT*INDEX(MUL,3)+35)),"")

关于arrays - 添加具有多个真实 filterxml 变量的 ifs 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64913110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com