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

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

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

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

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

テーマ表

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

売上番号 日付 納入年 納入月 納入日 納入先 商品 納入金額
10001 2021/10/18 2021 10 18 ニシノ弁当 定期雑誌 28000
10002 2022/1/9 2022 1 9 ナイトウフルーツ 梱包材 8000
10003 2022/2/11 2022 2 11 ニシノ弁当 梱包材 30000
10004 2021/12/10 2021 12 10 イマガワシューズ 事務機 28000
10005 2022/1/20 2022 1 20 ナイトウフルーツ 定期雑誌 28000
10006 2022/2/21 2022 2 21 ホリ薬局 定期雑誌 35000
10007 2022/1/11 2022 1 11 ニシノ弁当 定期雑誌 35000
10008 2022/2/17 2022 2 17 イマガワシューズ 梱包材 20000
10009 2021/12/22 2021 12 22 ホリ薬局 梱包材 45000
10010 2021/11/21 2021 11 21 ホリ薬局 事務機 21000
10011 2022/1/15 2022 1 15 ホリ薬局 梱包材 20000
10012 2021/12/15 2021 12 15 サナダ歯科 定期雑誌 23000
10013 2021/11/25 2021 11 25 ニシノ弁当 定期雑誌 47000
10014 2022/1/9 2022 1 9 サナダ歯科 梱包材 6000
10015 2021/12/21 2021 12 21 ニシノ弁当 事務機 38000
10016 2022/2/21 2022 2 21 ホリ薬局 事務機 32000
10017 2021/10/15 2021 10 15 サナダ歯科 梱包材 50000
10018 2021/12/7 2021 12 7 イマガワシューズ 定期雑誌 29000
10019 2022/2/21 2022 2 21 ナイトウフルーツ 事務機 35000
10020 2022/1/19 2022 1 19 ナイトウフルーツ 定期雑誌 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でのデータ分析において、複数のフィールドの組み合わせをもとに重複するレコードを特定することは頻繁に行われる作業です。今回は、複数のフィールドを組み合わせて重...

     

     

    コメント

    PAGE TOP
    タイトルとURLをコピーしました