比较 Excel 单元格中的数字

比较 Excel 单元格中的数字

在从 000 到 999 的 3 位数字列表中,我需要能够识别至少有 2 位数字相同的数字,您能帮我提供一个公式吗?
我试过了=IF(LEFT(A98,1) = "LEFT(A98,2)"OR LEFT(A98,2) = "LEFT(A98,3)" OR LEFT(A98,1) ="LEFT(A98,3)" , "0","1")。但我对 Excel 非常不熟悉,它不接受这个公式。

答案1

事实上,这并不是那么遥远。

使用MID()而不是LEFT(),因为它LEFT()会将所有字母而不仅仅是一个字母进行比较。

删除不必要的引号,它就可以工作了:

IF(OR(MID(A98,1,1)=MID(A98,2,1),MID(A98,1,1)=MID(A98,3,1),MID(A98,2,1)=MID(A98,3,1)),"1","0")

确保理解我所写内容的各个部分,这样如果我打错了或者忘记了括号,你就可以纠正它——我这里没有电脑可以验证,而且我在用手机打字。

答案2

Aganju 的答案可能正是您想要的。不过,很多时候,Excel 问题的解决方案来自于以不同的方式看待它。这里有一个稍微不同的方法,以及一些您可以记住的想法。

左、右、中

由于所有内容都是三位数,因此我发现将这些数字视为以下形式更容易:

LEFT(A98,1)
MID(A98,2,1)
RIGHT(A98,1)

这只是个人偏好,本文将记录如何使用这些函数。即最左边的 1 个字符、中间从位置 2 开始的长度为 1 的字符以及最右边的 1 个字符。

逆向思维

您从寻找匹配数字的任意组合的方向着手。这需要 IF、OR 和/或 AND 的某种组合。如果您从另一个方向着手,则只有一个条件需要排除——所有数字都不同。对这种单一情况的测试可以更简单地完成。

布尔运算

我将结合另一个技巧。您正在寻找10结果,因此您已经在考虑代表真和假的结果。您可以使用0和的一些数学属性1

  • 零乘以任意数都是零
  • 把一堆零相乘得到零
  • 将一堆 1 相乘得到 1
  • 一组零或一的乘积唯一能得出一的条件是它们全都是一

把它放在一起

Excel 将truefalse视为10。因此,无需 IF、AND 或 OR,您可以使用:

= (LEFT(A98,1)<>MID(A98,2,1)) * (LEFT(A98,1)<>RIGHT(A98,1)) * (MID(A98,2,1)<>RIGHT(A98,1))

1如果所有数字都不同,并且0任何组合都相同,则结果为1

= 1 - (LEFT(A98,1)<>MID(A98,2,1)) * (LEFT(A98,1)<>RIGHT(A98,1)) * (MID(A98,2,1)<>RIGHT(A98,1))

请注意,01值是由逻辑测试直接产生的;没有必要根据评估条件将这些值分配给结果。

答案3

这是另一种略有不同的方法,使用@fixer1234 的LEFT MID&RIGHT并乘以零的想法:

=IF((LEFT(A99,1)-MID(A99,2,1)) * (LEFT(A99,1)-RIGHT(A99,1)) * (MID(A99,2,1)-RIGHT(A99,1))=0,1,0)

如果任何一对相等,则乘法的结果为零,而乘法的结果IF为 1。

相关内容