我正在尝试比较 Excel 电子表格中的数量和条目数。
例如,
QTY RefDes # of Entries QTY Match RefDes?
3 R1,R5,R22 3 MATCH
3 C1,C2,C3 3 MATCH
3 U1-U3 1 MISMATCH
4 U1-U3, U5 2 MISMATCH
通过使用=LEN(TRIM(B2))-LEN(SUBSTITUTE(TRIM(B2),",",""))+1
列出的条目数列,我可以轻松比较列出的数量与 ReDes,当值单独用逗号分隔时,如 R1、R5、R22。
(数量匹配参考说明?只是比较数量列是否与条目数列匹配。)
但是,我也遇到过 U1-U3 表示从 U1 到 U3 或 U1,U2,U3 的范围的情况。实际数量是 3,但上面的公式返回值是 1,因为没有逗号分隔。我该如何解释这种情况?
答案1
这可以通过公式来完成,但有一个警告。
Excel 有一个方便的函数,称为 EVALUATE(),它可以将文本字符串作为方程式进行求值并生成数字结果。需要注意的是,该函数的使用方式存在限制。
我猜想 U 列中的范围可以是任意大小,因此获取计数的一个好方法是进行减法。例如,对于 U1-U3,提取“1-3”并进行计算。此公式可实现此目的:
=IFERROR(ABS(EVALUATE((REPLACE(MID(B2,FIND("-",B2)-1,4),3,1,"")))),0)
以 B5 为例,MID() 部分获取“-”两侧的字符,并给出 1-U3。REPLACE() 删除 U,EVALUATE() 执行减法,给出 -2。ABS() 给出 2,IFERROR() 处理没有 U 范围的行。以下是 E 列中带有上述公式的数据,以及 F 列中此列与上述公式之和:
现在谈谈警告。无论出于什么原因,EVALUATE() 仅在用于命名范围的定义时才可用。因此,要使用上述等式,请单击任何单元格,为该单元格命名(我在这里使用了“Funk”),然后将等式粘贴到“引用:”框中。
现在名称可以像函数一样使用了。在 E2 中输入“=Funk”(不带引号)并向下填充。
如果您没有辅助列,您可以在名称定义中合并两个方程式。但我要提醒您,在小框中排除公式故障是一件非常麻烦的事。遗憾的是,如果不经过这些麻烦,此功能就无法使用。
我希望这有帮助。