维修价格表
如图,维修价格表提供了每个产品每次维修的价格,但在需求明细表中产品和数量都在维修说明一个单元格中,如何计算总的维修金额,公式如下:
=LET(x,IFERROR(TEXTSPLIT(B2,"*","、"),1),
y,XLOOKUP(INDEX(x,,1),数据!$A$2:$A$4,数据!$B$2:$B$4),SUMPRODUCT(y*INDEX(x,,2)))
公式思路:先拆分维修说明单元格再根据拆分出的名称查找对应的单价,最后取乘积。
textsplit函数的应用要注意行列的设置顺序,不同的顺序带来的结果完全不同,特别是分隔符缺失的情况下,如本例这样的写法得到的结果为:
电风扇 | 1 |
火炉 | 2 |
空调 | 1 |
如果换一下行列的字符,IFERROR(TEXTSPLIT(B2,"、","*"),1),拆分结果为:
电风扇 | 火炉 |
2 | 空调 |
很明显这样是错误的,原因在于textsplit函数的运算顺序,它先分行,再分列 ,此例会根据*先分为两行,再根据,分列两列,所以会出现错误。
评论 (0)