【问题标题】:Excel - Add an excel formula within FilterXMLExcel - 在 FilterXML 中添加 Excel 公式
【发布时间】:2021-02-18 05:14:03
【问题描述】:

我有一个 Excel 电子表格,其中包含一列中的字符串列表。字符串列表由多个不同长度的数字组成,用“/”和“;”分隔字符串的第一个条目是代码 id(其长度始终为 3)(示例中为红色),后跟一个“/”,然后是一个数量(长度不同)(示例中为绿色),后跟一个“;”如果字符串继续。

在成员的帮助下,我现在可以使用以下公式隔离绿色数字:

=IF(ISBLANK(A4);"";TRANSPOSE(FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(A4;"/";";");";";"</s><s>")&"</s></t>";"//s[position() mod 2 = 0]")))

但是,如果满足条件,我仍然需要一个将绿色数字与变量相乘的公式。

示例函数:

=IFS(B2<=10;B2*1,25;B2<=20;B2*1,18;B2<=100;B2*1,05;B2<=250;B2*1,01;B2>250;B2)

有没有办法将这两个功能结合起来?

【问题讨论】:

    标签: excel string excel-formula


    【解决方案1】:

    处理这个问题的一个非常好的方法是通过LET() 将整个数组分配给一个名称,比如说一个变量。所以B2 中的公式将变为:

    =IF(A2<>"",LET(MNT,TRANSPOSE(FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(A2,"/",";"),";","</s><s>")&"</s></t>","//s[position() mod 2 = 0]")),IFS(MNT<=10,MNT*1.25,MNT<=20,MNT*1.18,MNT<=100,MNT*1.05,MNT<=250,MNT*1.01,MNT>250,MNT)),"")
    

    但是,它确实需要 Excel O365。但是由于您正在转置数组,因此您确实拥有它。

    【讨论】:

    • 非常感谢!如果我可以问的话,你从哪里学到的大部分内容?
    • @Den8,不客气。出于兴趣,我多年来一直在玩弄公式,从而学到了最多的东西。
    猜你喜欢
    • 2019-01-29
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多