In einer Liste mit dreistelligen Zahlen von 000 bis 999 muss ich in der Lage sein, die Zahlen zu identifizieren, bei denen mindestens zwei Ziffern gleich sind. Können Sie mir bitte mit einer Formel helfen?
Ich habe es versucht =IF(LEFT(A98,1) = "LEFT(A98,2)"OR LEFT(A98,2) = "LEFT(A98,3)" OR LEFT(A98,1) ="LEFT(A98,3)" , "0","1")
. Aber ich habe keine große Erfahrung mit Excel und es akzeptiert diese Formel nicht.
Antwort1
Das ist eigentlich gar nicht so weit weg.
Verwenden Sie MID()
anstelle von LEFT()
, da LEFT()
zum Vergleichen alle Buchstaben und nicht nur ein einziger verwendet werden.
Entfernen Sie die unnötigen Anführungszeichen, dann sollte es funktionieren:
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")
Stellen Sie sicher, dass Sie die Teile dessen, was ich geschrieben habe, verstehen, damit Sie es korrigieren können, wenn ich einen Tippfehler gemacht oder eine Klammer vergessen habe – ich habe hier keinen Computer zur Überprüfung und tippe auf einem Mobiltelefon.
Antwort2
Aganjus Antwort ist wahrscheinlich genau das, wonach Sie suchen. Häufig ergibt sich die Lösung eines Excel-Problems jedoch aus einer anderen Betrachtungsweise. Hier ist ein etwas anderer Ansatz mit ein paar Ideen, die Sie sich merken können.
LINKS, RECHTS, MITTE
Da alles dreistellig ist, finde ich es einfacher, mir die Ziffern folgendermaßen vorzustellen:
LEFT(A98,1)
MID(A98,2,1)
RIGHT(A98,1)
Nur persönliche Vorlieben, und hier wird dokumentiert, wie diese Funktionen verwendet werden. Das ist das äußerste linke Zeichen 1, das mittlere beginnend bei Position 2 für eine Länge von 1 und das äußerste rechte Zeichen 1.
Umgekehrtes Denken
Sie sind aus der Richtung an die Sache herangegangen, eine beliebige Kombination übereinstimmender Ziffern zu finden. Dazu ist eine Kombination aus WENN, ODER und/oder UND erforderlich. Wenn Sie es aus der anderen Richtung angehen, gibt es nur eine Bedingung, die Sie ausschließen möchten – dass alle Ziffern unterschiedlich sind. Das Testen für diesen Einzelfall kann einfacher durchgeführt werden.
Boolesche Arithmetik
Ich kombiniere das mit einem anderen Trick. Sie suchen nach einem 1
oder 0
-Ergebnis, also denken Sie bereits in Begriffen, die wahr und falsch darstellen. Sie können einige mathematische Eigenschaften von 0
und verwenden 1
:
- Null mal irgendetwas ist Null
- die Multiplikation einer Reihe von Nullen ergibt Null
- die Multiplikation mehrerer Einsen ergibt eins
- Das Produkt einer Reihe von Nullen und Einsen kann nur dann eine Eins ergeben, wenn sie alle Einsen sind.
Etwas zusammensetzen
Excel behandelt true
und false
als 1
und 0
. Ohne IF, AND oder OR können Sie also Folgendes verwenden:
= (LEFT(A98,1)<>MID(A98,2,1)) * (LEFT(A98,1)<>RIGHT(A98,1)) * (MID(A98,2,1)<>RIGHT(A98,1))
Dies ergibt 1
, wenn alle Ziffern unterschiedlich sind und 0
wenn eine beliebige Kombination gleich ist. Das unterscheidet die Dinge. Wenn Sie jedoch der Meinung sind, dass es umgekehrt sein sollte, wie Sie in der Frage beschrieben haben, können Sie es umkehren, indem Sie 1
diese Formel abziehen:
= 1 - (LEFT(A98,1)<>MID(A98,2,1)) * (LEFT(A98,1)<>RIGHT(A98,1)) * (MID(A98,2,1)<>RIGHT(A98,1))
Und beachten Sie, dass die 0
„oder 1
“-Werte direkt durch die logischen Tests erzeugt werden; es war nicht notwendig, diese Werte dem Ergebnis basierend auf der Auswertung der Bedingungen zuzuweisen.
Antwort3
Hier ist eine weitere, leicht abgewandelte Methode, bei der @fixer1234s LEFT
MID
& RIGHT
und die Idee der Multiplikation mit Null verwendet werden:
=IF((LEFT(A99,1)-MID(A99,2,1)) * (LEFT(A99,1)-RIGHT(A99,1)) * (MID(A99,2,1)-RIGHT(A99,1))=0,1,0)
Wenn eines der Paare gleich ist, ist das Ergebnis der Multiplikation Null und das Ergebnis der IF
Multiplikation 1.