重複するレコードを特定し、その番号を表示する計算式を作る(1:単一フィールド)

Excelで重複するレコードを特定し、番号を表示する方法

Excelのデータ分析において、重複するレコードや値を特定することは非常に一般的な要求です。今回は、特定の列において値が重複するレコードを発見し、その重複するレコードの売上番号を表示する方法を学びます。

このタスクを達成するために、TEXTJOIN関数IF関数を組み合わせて使用します。

  • TEXTJOIN: 複数の値や文字列を一つの文字列に結合する関数です。
  • IF: 条件を満たす場合と満たさない場合で、それぞれ異なる値を返す関数です。

テーマ表

以下に、具体的な手順と使用する式を示します(A1:H21の表)。まず、以下の表をご確認ください。この中で同じ「日付」を持つ売上番号を右のI列に表示させる予定です。

売上番号日付納入年納入月納入日納入先商品納入金額
100012021/10/1820211018ニシノ弁当定期雑誌28000
100022022/1/9202219ナイトウフルーツ梱包材8000
100032022/2/112022211ニシノ弁当梱包材30000
100042021/12/1020211210イマガワシューズ事務機28000
100052022/1/202022120ナイトウフルーツ定期雑誌28000
100062022/2/212022221ホリ薬局定期雑誌35000
100072022/1/112022111ニシノ弁当定期雑誌35000
100082022/2/172022217イマガワシューズ梱包材20000
100092021/12/2220211222ホリ薬局梱包材45000
100102021/11/2120211121ホリ薬局事務機21000
100112022/1/152022115ホリ薬局梱包材20000
100122021/12/1520211215サナダ歯科定期雑誌23000
100132021/11/2520211125ニシノ弁当定期雑誌47000
100142022/1/9202219サナダ歯科梱包材6000
100152021/12/2120211221ニシノ弁当事務機38000
100162022/2/212022221ホリ薬局事務機32000
100172021/10/1520211015サナダ歯科梱包材50000
100182021/12/72021127イマガワシューズ定期雑誌29000
100192022/2/212022221ナイトウフルーツ事務機35000
100202022/1/192022119ナイトウフルーツ定期雑誌15000

使用する関数の紹介

TEXTJOIN関数の基本的な動作

TEXTJOIN関数関数は、複数の値を指定した区切り文字で結合するための関数です。この関数の特徴として、結合する際に空の文字列を無視することができる点が挙げられます。

=TEXTJOIN(区切り記号, 空のセルは無視, テキスト1, [テキスト2], ...)

引数の説明

  1. 区切り記号:テキスト値を結合する際の区切り記号を指定します。引用符(“”)で囲んで指定してください。例: “,”, “/”, “、” など。
  2. 空のセルは無視:この引数にTRUEを指定すると、空のセルは無視して結合を行います。FALSEを指定した場合、空のセルも区切り記号で結合されます。
  3. テキスト1、テキスト2…:結合するテキスト値を指定します。複数のテキスト値を指定することができます。また、この引数にはセル範囲(例:A2:C2)を指定することも可能です。これにより、一度に複数のセルの値を結合することができます。

IF関数での条件分岐

IF関数は、指定した条件を満たすかどうかに応じて、2つの異なる値のいずれかを返す関数です。

=IF(論理式, [真の場合の値], [偽の場合の値])

引数の説明

  1. 論理式: 評価する条件式。この条件が真の場合、真の場合の値を返し、偽の場合は偽の場合の値を返します。例:A1>15
  2. 真の場合の値: 条件が真の場合に返す値。例1:〇 例2:500 例3:B1+400
  3. 偽の場合の値: 条件が偽の場合に返す値。例1:× 例2:200 例3:B1+200

計算式の実際の動作

計算式の完成例

以下の式を使用して、B列の日付が重複する場合に、対応するA列の売上番号をカンマで区切って表示します。たとえばI2へ入力してみてください。

=TEXTJOIN(",", TRUE, IF($B$2:$B$21=B2, $A$2:$A$21, ""))

また、各列に範囲名を設定しておけば読みやすくシンプルな計算式とすることができます。絶対参照の設定も不要になります。

=TEXTJOIN(",", TRUE, IF(日付=B2, 売上番号, ""))

この式の動作は以下の通りです:

動作の詳細

  1. IF($B$2:$B$21=B2, $A$2:$A$21, “”)
    • $B$2:$B$21=B2: B列の2行目から21行目までの各セルが、現在の行のB列のセル(B2)と等しいかどうかを確認します。
    • 一致する場合(TRUEの場合):$A$2:$A$21 の対応するセルの値(売上番号)を取得します。
    • 一致しない場合(FALSEの場合):空の文字列 "" を返します。
  2. TEXTJOIN(“,”, TRUE, …)
    • 上記のIF関数の結果を元に、カンマ , を区切り文字として、結果の文字列を結合します。
    • 2番目の引数に TRUE が指定されているため、空の文字列は結果から除外されます。これにより、不要なカンマが結果に現れることを防ぎます。

例えば、B2の値がB列の他のいくつかのセルと一致する場合、この式はそれらのセルに対応するA列の売上番号をカンマで区切った形で返します。一致する値がない場合、結果は空の文字列になります。

このように、この式は特定の値がB列のどのセルと一致するかを確認し、対応するA列の値をカンマで区切って表示する役割を果たしています。

    この式をセルI2へ作成し、コピーした結果が下図となります。また、この式は配列数式であるためExcel 2019以前を使用している場合には確定時に「Ctrl + Shift + Enter」を用いてください。

    例えば、B2の値がB列の他のいくつかのセルと一致する場合、この式はそれらのセルに対応するA列の売上番号をカンマで区切った形で返します。一致する値がない場合、結果は空の文字列になります。

    このように、この式は特定の値がB列のどのセルと一致するかを確認し、対応するA列の値をカンマで区切って表示する役割を果たしています。

    まとめと次のテーマ

    今回の記事では、Excelで重複するレコードを特定し、そのレコードの売上番号を表示する方法を学びました。このようなテクニックは、データの整合性を確認したり、重複するデータを特定したりする際に非常に役立ちます。

    次の記事:重複するレコードを特定し、その番号を表示する計算式を作る(2:複数フィールド)

    次の記事では複数の列を取り扱い、同じ組み合わせを持つレコードの一覧を表示する計算式の作成方法を紹介します。

    重複するレコードを特定し、その番号を表示する計算式を作る(2:複数フィールド)
    Excelで複数のフィールドを組み合わせて重複するレコードを特定する方法Excelでのデータ分析において、複数のフィールドの組み合わせをもとに重複するレコードを特定することは頻繁に行われる作業です。今回は、複数のフィールドを組み合わせて重複...

     

     

    コメント