比較 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

阿甘朱的答案可能是您正在尋找的。但很多時候,Excel 問題的解決方案來自於以不同的方式看待它。這裡有一個稍微不同的方法,其中有一些你可以放在口袋裡的想法。

左、右、中

由於一切都是三位數,我發現更容易將數字視為:

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

只是個人喜好,這將記錄如何使用這些功能。這是最左邊的 1 個字符,中間從位置 2 開始長度為 1,最後是最右邊的 1 個字符。

逆向思維

您是從尋找匹配數字的任意組合的方向來解決這個問題的。這需要 IF、OR 和/或 AND 的某種組合。如果您從另一個方向接近它,則只需排除一個條件 - 所有數字都不同。單一案例的測試可以更簡單地完成。

布林運算

我會將其與另一個技巧結合。您正在尋找“1或”0結果,因此您已經在考慮那些代表真與假的結果。您可以使用0和的一些數學屬性1

  • 零乘以任何東西都是零
  • 一堆零相乘得到零
  • 一堆相乘得到一個
  • 一堆 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))

並注意0or1值是由邏輯測試直接產生的;沒有必要根據評估條件將這些值分配給結果。

答案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)

如果任何對相等,則乘法結果為零,而結果為IF1。

相關內容