目次
このチュートリアルでは、Excelで大文字と小文字を区別せずに文字列を比較する方法と、2つのセルの値、文字列の長さ、特定の文字の出現回数で比較する数式のほか、複数のセルを比較する方法について学びます。
Excelを使ったデータ分析では、正確さが最も重要です。 間違った情報は、締め切りの遅れ、トレンドの判断ミス、間違った決断、収益の損失などにつながります。
Excelの計算式は常に完璧に正しいが、データに欠陥があるために計算結果が間違ってしまうことがある。 この場合、データの正確性をチェックするしかない。 2つのセルを手動で比較するのは大したことではないが、数百、数千の文字列の違いを見分けるのは不可能に等しい。
このチュートリアルでは、セル比較という面倒でミスの多い作業を自動化する方法と、特定のケースごとにどのような数式を使用するのが最適かを説明します。
Excelで2つのセルを比較する方法
Excelで文字列を比較する場合、大文字と小文字を区別して比較するかしないかによって、2種類の方法があります。
2つのセルを比較する大文字小文字を区別しない計算式
Excel無視のケースで2つのセルを比較するには、次のような簡単な数式を使用します。
=A1=B1
ここで、A1 と B1 は比較するセルです。 数式の結果は、ブール値 TRUE と FALSE です。
一致・相違のテキストを独自に出力したい場合は、IF関数の論理テストに上記の文を埋め込んでください。 例えば、以下のような感じです。
=IF(A1=B1, "等しい", "等しくない")
下のスクリーンショットにあるように、どちらの計算式もテキスト文字列、日付、数字を同じように比較します。
Excelで文字列を比較するための大文字小文字を区別する計算式
2つのセルのテキスト値を比較するだけでなく、大文字と小文字を比較することが重要な場合があります。 大文字と小文字を区別したテキスト比較は、ExcelのEXACT関数を使用して行うことができます。
EXACT (テキスト1、テキスト2)どこ テキスト1 と テキスト2 は、比較する2つのセルです。
文字列がセルA2とB2にあると仮定すると、数式は次のようになります。
=EXACT(A2, B2)
その結果、文字列が各文字の大文字小文字を含めて完全に一致する場合は TRUE、そうでない場合は FALSE が得られます。
EXACT関数で他の結果を得たい場合は、IF式に埋め込んで、独自のテキストを value_if_true と value_if_false の引数になります。
=IF(EXACT(A2 ,B2), "完全に等しい", "等しくない")
次のスクリーンショットは、Excelで大文字と小文字を区別して文字列を比較した結果を示しています。
Excelで複数のセルを比較する方法
2 列以上のセルを比較するには、上記の例で説明した数式と AND 演算子を組み合わせて使用します。 詳細は、以下のとおりです。
2つ以上のセルを比較するための大文字小文字を区別しない計算式
結果をどのように表示するかによって、次のいずれかの計算式を利用します。
=and(a2=b2, a2=c2)
または
=IF(AND(A2=B2, A2=C2), "等しい", "等しくない")
AND式は、すべてのセルに同じ値があれば「真」を、異なる値があれば「偽」を返します。 IF式は、入力したラベルを出力します。 イコール " と " イコールではない " をこの例で説明します。
以下のスクリーンショットに示すように、この数式は、テキスト、日付、数値など、あらゆるデータ型に対して完璧に機能します。
複数のセル内のテキストを比較するための大文字小文字を区別する数式
複数の文字列を比較して、完全に一致するかどうかを確認するには、以下の式を使用します。
=and(正確(a2,b2), 正確(a2,c2))
または
=IF(AND(EXACT(A2,B2), EXACT(A2,C2)), "Exactly equal", "Not equal")
前の例と同じように、最初の数式は「真」と「偽」の値を提供し、2番目の数式は一致と相違について独自のテキストを表示します。
セル範囲とサンプルセルを比較する
次の例は、指定した範囲内のすべてのセルに、サンプルセルと同じテキストが含まれているかどうかを確認する方法です。
セルとサンプルテキストを比較する大文字小文字を区別しない数式
文字の大文字小文字があまり重要でない場合は、以下の式でセルをサンプルと比較することができます。
列( レンジ )*COLUMNS( レンジ )=COUNTIF( レンジ , サンプルセル )IF関数の論理テストでは、2つの数値を比較します。
- 指定された範囲のセルの総数(行数×列数)、および
- サンプルセルと同じ値を含むセルの数(COUNTIF関数で返される)。
サンプルテキストがC2にあり、比較する文字列がA2:B6の範囲にあると仮定すると、数式は次のようになります。
=rows(a2:b6)*columns(a2:b6)=countif(a2:b6,c2)
結果をより使いやすくするために、つまり、TRUEやFALSEではなく、「すべて一致」「すべて一致しない」のように出力するには、前の例でやったようにIF関数を使用します。
=IF(ROWS(A2:B6)*COLUMNS(A2:B6)=COUNTIF(A2:B6,C2)), "All match", "Not all match")
上のスクリーンショットのように、この数式は文字列の範囲に完璧に対応しますが、数値や日付を比較することもできます。
サンプルテキストと文字列を比較するための大文字小文字を区別する数式
文字の大文字小文字が異なる場合は、以下の配列式で文字列をサンプルテキストと比較することができます。
IF(ROWS()の場合 レンジ )*COLUMNS( レンジ )=SUM(--EXACT() サンプルセル , レンジ )), " text_if_match ", " テキスト_if_not match ")ソース範囲をA2:B6に、サンプルテキストをC2に置くと、数式は以下のような形になります。
=IF(ROWS(A2:B6)*COLUMNS(A2:B6)=SUM(--EXACT(C2, A2:B6)), "すべて一致", "すべて一致でない")
通常のExcelの数式と異なり、配列の数式はCtrl + Shift + Enterで入力します。 正しく入力されると、スクリーンショットに示すように、Excelは配列の数式を{波括弧}で囲みます。
文字列の長さで2つのセルを比較する方法
各行の文字列の文字数が等しいかどうかを確認したい場合があります。 この場合の計算式は非常に簡単で、まずLEN関数で2つのセルの文字列の長さを求め、その数値を比較します。
比較する文字列がセルA2とセルB2にあるとすると、次のいずれかの数式を使用します。
=len(a2)=len(b2)です。
または
=IF(LEN(A2)=LEN(B2), "等しい", "等しくない")
すでにご存知のように、最初の数式はブール値のTRUEまたはFALSEを返すのに対し、2番目の数式はあなた自身の結果を出力します。
上のスクリーンショットで示したように、数式は数字だけでなく、文字列に対しても機能します。
ヒント:一見同じように見える2つの文字列が異なる長さを返す場合、ほとんどの場合、問題は リーディング または 後追い 空間 このような場合は、TRIM関数を使って余分なスペースを削除してください。 詳しい説明と計算式の例は、こちら:Excelでスペースを削除する方法
特定の文字の出現回数で2つのセルを比較する
これは、Excelの文字列比較のチュートリアルの最後の例で、かなり特殊なタスクの解決策を示します。 重要な文字を含む2列の文字列があるとします。 目標は、各行の2つのセルが、与えられた文字の出現回数が同じかどうかを確認することです。
例えば、出荷済み(B列)と受領済み(C列)の2つの注文リストがあるとします。 各行には特定の商品の注文が含まれ、その一意の識別子はすべての注文IDに含まれ、A列に同じ行にリストされています(以下のスクリーンショットを参照)。 各行には、出荷済みと受領済みの同数の商品が含まれていることを確認したいのです。の項目は、その特定のIDを持つ。
この問題を解くために、次のような論理で式を書きなさい。
- まず、SUBSTITUTE関数を使って、一意の識別子を何もない状態に置き換えます。
SUBSTITUTE(A1, character_to_count,"")
- そして、各セルにユニーク識別子が何回現れるかを計算する。 これは、ユニーク識別子を除いた文字列の長さを求め、文字列の全長から引く。この部分は、例えば、セル1とセル2について個別に記述するものとする。
LEN(セル1) - LEN(SUBSTITUTE(セル1, character_to_count, ""))
と
LEN(セル2) - LEN(SUBSTITUTE(セル2, character_to_count, ""))
- 最後に、上記の部分の間に等号(=)を入れて、2つの数字を比較するのです。
LEN( セル2 ) - len(代入( セル2 , 文字数 , ""))
この例では、一意の識別子がA2にあり、比較する文字列がセルB2とC2にあります。 したがって、完全な数式は次のようになります。
=len(b2)-len(substitute(b2,$a2,""))=len(c2)-len(substitute(c2,$a2,"")]のようになります。
この数式は、セル B2 と C2 に A2 と同じ数の文字が含まれていれば TRUE、そうでなければ FALSE を返します。 結果をユーザーにとってより意味のあるものにするために、数式を IF 関数に埋め込むことができます。
=IF(LEN(B2)-LEN(SUBSTITUTE(B2, $A2,""))=LEN(C2)-LEN(SUBSTITUTE(C2, $A2,"")), "Equal", "Not Equal")
上のスクリーンショットにあるように、この数式は、いくつかの追加的な複雑さがあるにもかかわらず、完全に動作します。
- カウントする文字(ユニーク識別子)は、テキスト文字列のどこにでも出現させることができる。
- 文字列には、可変長の文字と、セミコロン、カンマ、スペースなどの異なるセパレータが含まれます。
このチュートリアルで説明した数式を詳しく見るには、Excel Compare Strings Worksheetをダウンロードしてください。 読んでくださってありがとうございました!また、来週のブログでお会いしましょう。