Excelセル内の数字の数字を比較する


6

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に非常に不慣れであり、この式を受け入れません。

回答:


11

実際にはそれほど遠くはありません。

比較に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")

私が書いたものの部分を必ず理解してください。そうすれば、入力ミスやブラケットを忘れた場合に修正できます-確認するためのコンピューターがここになく、携帯電話で入力しています。


1
それは完全に多くのあなたは命の恩人ですおかげで、歓声働いていた
Bクーパー

6

アガンジュの答えはおそらくあなたが探しているものです。しかし、多くの場合、Excelの問題の解決策は、さまざまな方法でそれを見ることにあります。これは、バックポケットに保管できるいくつかのアイデアを持つ、少し異なるアプローチです。

左、右、中

すべてが3桁なので、数字を次のように考える方が簡単です。

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

個人的な好みであり、これはそれらの機能を使用する方法を文書化します。これは、左端の1文字、中央の位置2から長さ1、右端の1文字です。

逆思考

一致する数字の組み合わせを見つける方向からこれにアプローチしました。それには、IF、OR、および/またはANDの組み合わせが必要です。他の方向からアプローチする場合、除外したい条件は1つだけです。すべての数字が異なります。その単一のケースのテストをより簡単に行うことができます。

ブール演算

これを別のトリックと組み合わせます。あなたは探している1か、0その結果、あなたはすでに真と偽の代表者の観点で考えています。0およびのいくつかの数学プロパティを使用できます1

  • ゼロ回何でもゼロ
  • ゼロの束を掛けるとゼロになります
  • 1の束を乗算すると1が得られます
  • ゼロまたは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))

そしてことに気づく0又は1値が論理的試験によって直接生成されます。条件の評価に基づいてこれらの値を結果に割り当てる必要はありませんでした。


2
スマートでありながら、非常に理解しにくい。他の誰かがシートを調べてこれを見ると、彼らは式が何をテストしているのか理解できません。
ヤン・ドッグゲン

1

@ fixer1234のLEFT MIDRIGHTとゼロアイデアによる乗算を使用するもう1つの少し異なる方法を次に示します。

=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になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.