重複
機能
《重複》は、開いているテーブルから、「重複検査フィールド」の値が同じレコードが2件以上あるもの(重複しているレコード)を探し出す機能です。結果は、画面に表示するか、新しいテーブルとして保存できます。元のテーブルは変更されません。
| 売上日 | 商品No | 単価 | 数量 |
|---|---|---|---|
| 2024/04/10 | A01 | 1200 | 4 |
| 2024/04/12 | B02 | 800 | 3 |
| 2024/05/20 | A01 | 1200 | 2 |
| 2024/05/25 | C03 | 500 | 1 |
| 2024/06/15 | B02 | 800 | 5 |
| 2024/06/20 | A01 | 1000 | 1 |
→
| 商品No | 売上日 | 数量 |
|---|---|---|
| A01 | 2024/04/10 | 4 |
| A01 | 2024/05/20 | 2 |
| A01 | 2024/06/20 | 1 |
| B02 | 2024/04/12 | 3 |
| B02 | 2024/06/15 | 5 |
- 値が1件しかないレコード(例の「C03」)は、結果に含まれません。
- 結果は「重複検査フィールド」の値の昇順に並びます。同じ値のレコードは、元のテーブルの順のままです。
- 文字の比較では、大文字・小文字、全角・半角、前後の空白が区別されます(例:「A01」と「a01」「A01」「A01 」は別の値です)。
- 空欄どうしは、同じ値とみなされます。数値は値で比較されます(例:「200」と「200.00」は同じ値です)。日付は日付で比較されます。
メニュー
《分析》-《重複》
- テーブルを開いている場合に使用できます。開いているテーブルが重複を探すテーブルになります。
- テーブルの画面で条件式を設定している場合は、その条件式が「条件式」に入力された状態で開きます。
- テーブルの画面で列(フィールド)を選択してから《重複》をクリックすると、この画面は開かずに、選択した列を「重複検査フィールド」としてすぐに実行され、結果が画面に表示されます(重複する値ごとに1行。「◇重複の結果」参照)。
- 操作ログから重複のコマンドを修正することもできます(「■ 操作ログからコマンドを修正する場合」参照)。
操作ログからコマンドを修正する場合
操作ログで重複のコマンドを修正すると、コマンドの内容が設定された状態で画面が開きます。
- 「重複検査フィールド」「出力フィールド」は、コマンドに記述された順に選択されます。
- テーブルにないフィールドは選択されません。
- 「グループの追加」、条件式、「出力先」は、コマンドのとおりに設定されます。テーブルの画面の条件式は使用されません。
- テーブルに保存したコマンドの場合は、保存先に「04_table」フォルダからの「フォルダ名¥テーブル名.hdf5」が表示されます。
設定内容

- 1元のテーブル:重複を探すテーブルの、フォルダ名とテーブル名が表示されます。
- 2《フィールド選択》ボタン:「フィールド選択」画面を開き、フィールドをまとめて選択・解除できます。
- 3重複検査フィールド(必須):値が同じかどうかを比較するフィールドの行をクリックして選択します(もう一度クリックで解除)。
- 複数選択した場合は、選択したすべてのフィールドの値が同じレコードが重複とみなされます。
- 左端の番号は選択した順番です。この順に結果が並べ替えられ、結果の列もこの順に並びます。
- 見出しのチェックボックス(またはCtrl+A)で、すべてのフィールドを選択・解除します。すべてのフィールドを選択した場合は、選択した順に関係なく、テーブルのフィールドの順になります。
- 4《フィールド選択》ボタン:「フィールド選択」画面を開き、フィールドをまとめて選択・解除できます。
- 5出力フィールド(任意):「重複検査フィールド」のほかに、結果に出力するフィールドを選択します。選択方法は3と同じです。
- 選択すると、重複しているすべてのレコードが出力されます。選択しない場合は、重複している値ごとに1行です。
- 「重複検査フィールド」と同じフィールドを選択しても、同じ列が2つ出力されることはありません。
- 6グループの追加:オンにすると、結果の先頭に「グループ番号」フィールドを追加し、重複している値ごとに1、2、3…の番号を入れます。初期値はオフです。
- 7出力先(必須):結果の出力先を選択します。初期値は「画面」です。
- 「画面」:結果をメイン画面に表示します。テーブルは作成されません。
- 「テーブル」:結果を新しいテーブルとして保存し、開きます。11に保存先を入力します。
- 8《式ビルダー》ボタン:「式ビルダー」画面を開き、フィールドや関数を選んで条件式を作成できます。
- 9条件式(任意):重複を探す対象のレコードを絞り込む条件を入力します。空欄の場合は、すべてのレコードが対象です。
- 条件に合わないレコードは、重複を探す前に除かれます。
- 入力中に、関数やフィールドの候補が表示されます(Ctrl+Spaceで表示、Escで閉じます)。
- 「×」で入力内容を消去します。正しい条件式であることを確認すると、緑の「✓」が表示されます。
- 10《検証》ボタン:条件式が正しいかを確認します(Ctrl+Enter)。誤りがある場合は、メッセージが表示されます。
- 11ファイル保存先(テーブル):「テーブル」の場合に、作成するテーブルの名前を入力します。
- テーブル名だけの場合は「04_table」フォルダに、「フォルダ名¥テーブル名」の場合はそのフォルダに作成されます。フォルダがない場合は作成されます。
- 拡張子(.hdf5)は省略できます。「04_table」フォルダ以外の場所には保存できません。
- テーブル名の長さは、64文字までです。
- 記号(「-」「.」「#」など)や全角スペースは使用できません。名前の最後に「¥」「/」、途中に「..」は入力できません。
- 元のテーブルと同じ名前は使用できません(大文字・小文字やフォルダが違っても同じ名前とみなされます)。
- 同じ名前のテーブルがすでにある場合は、上書きしてよいかの確認メッセージが表示されます。「いいえ」を選択すると、実行せずに画面に戻ります。
- 12《参照》ボタン:保存画面を開き、保存先を選択できます(「テーブル」の場合)。
- 13コマンド:現在の設定で実行されるコマンドが表示されます(「◇操作ログ」参照)。「重複検査フィールド」を選択すると表示されます。
- 14《コピー》ボタン:コマンドをクリップボードにコピーします。
- 15《キャンセル》ボタン:実行せずに画面を閉じます(Escキー)。確認メッセージで「はい」を選択すると閉じます。
- 16《実行》ボタン:実行します(Enterキー)。正常に終了すると画面が閉じ、結果が表示されるか、作成したテーブルが開きます。
「出力先」で「画面」を選択した場合
「ファイル保存先」と《参照》ボタンは使用できません。入力済みの保存先は残りますが、チェックされず、使用されません。

重複の結果
オプションの設定によって、結果は次のようになります。例は「◇機能」と同じテーブルです。
「出力フィールド」を選択しない場合
重複している値ごとに1行だけ出力されます。結果のフィールドは「重複検査フィールド」だけです。
| 売上日 | 商品No | 単価 | 数量 |
|---|---|---|---|
| 2024/04/10 | A01 | 1200 | 4 |
| 2024/04/12 | B02 | 800 | 3 |
| 2024/05/20 | A01 | 1200 | 2 |
| 2024/05/25 | C03 | 500 | 1 |
| 2024/06/15 | B02 | 800 | 5 |
| 2024/06/20 | A01 | 1000 | 1 |
→
| 商品No |
|---|
| A01 |
| B02 |
- テーブルの画面で列を選択して《重複》をクリックした場合も、この形で表示されます。
「グループの追加」をオンにした場合
先頭に「グループ番号」フィールド(数値型)が追加されます。同じ値のレコードには同じ番号が入ります。
| 売上日 | 商品No | 単価 | 数量 |
|---|---|---|---|
| 2024/04/10 | A01 | 1200 | 4 |
| 2024/04/12 | B02 | 800 | 3 |
| 2024/05/20 | A01 | 1200 | 2 |
| 2024/05/25 | C03 | 500 | 1 |
| 2024/06/15 | B02 | 800 | 5 |
| 2024/06/20 | A01 | 1000 | 1 |
→
| グループ番号 | 商品No | 売上日 | 数量 |
|---|---|---|---|
| 1 | A01 | 2024/04/10 | 4 |
| 1 | A01 | 2024/05/20 | 2 |
| 1 | A01 | 2024/06/20 | 1 |
| 2 | B02 | 2024/04/12 | 3 |
| 2 | B02 | 2024/06/15 | 5 |
「重複検査フィールド」を複数選択した場合
選択したすべてのフィールドの値が同じレコードが、重複とみなされます。
「商品No」と「単価」を選択した例では、単価が1000の「A01」は同じ組み合わせがないため除かれます。
| 売上日 | 商品No | 単価 | 数量 |
|---|---|---|---|
| 2024/04/10 | A01 | 1200 | 4 |
| 2024/04/12 | B02 | 800 | 3 |
| 2024/05/20 | A01 | 1200 | 2 |
| 2024/05/25 | C03 | 500 | 1 |
| 2024/06/15 | B02 | 800 | 5 |
| 2024/06/20 | A01 | 1000 | 1 |
→
| 商品No | 単価 | 売上日 |
|---|---|---|
| A01 | 1200 | 2024/04/10 |
| A01 | 1200 | 2024/05/20 |
| B02 | 800 | 2024/04/12 |
| B02 | 800 | 2024/06/15 |
- 結果は、1つ目のフィールドの昇順、同じ値の中では2つ目のフィールドの昇順…に並びます。選択する順を変えると、列の順と並び順が変わります。
「条件式」を入力した場合
条件に合うレコードの中から重複を探します。条件式「[売上日] >= `20240501`」では、「B02」が1件だけになるため、結果に含まれません。
| 売上日 | 商品No | 単価 | 数量 |
|---|---|---|---|
| 2024/04/10 | A01 | 1200 | 4 |
| 2024/04/12 | B02 | 800 | 3 |
| 2024/05/20 | A01 | 1200 | 2 |
| 2024/05/25 | C03 | 500 | 1 |
| 2024/06/15 | B02 | 800 | 5 |
| 2024/06/20 | A01 | 1000 | 1 |
→
| 商品No | 売上日 | 数量 |
|---|---|---|
| A01 | 2024/05/20 | 2 |
| A01 | 2024/06/20 | 1 |
- 重複しているレコードがない場合も、エラーにはならず、フィールドだけの(レコードが0件の)結果になります。
- 結果のフィールドの並びは、「グループ番号」(オンの場合)、「重複検査フィールド」(選択した順)、「出力フィールド」(選択した順)です。フィールド名・データ型・書式は元のテーブルと同じです。
入力内容に誤りがある場合
《実行》ボタンをクリックしたときに、「重複検査フィールド」が選択されていない、保存先が空欄などの誤りがあると、画面の左下にメッセージが表示され、該当する項目が赤枠で示されます。項目を修正するとメッセージは消え、《実行》ボタンが使用できるようになります。

- 条件式に誤りがある場合(フィールドがない、文字と数値を比較しているなど)は、実行時に誤りの内容を示す画面が表示されます。画面は閉じないので、条件式を修正してもう一度実行してください。
操作ログ
OPEN "元のテーブル" DUPLICATES ON FIELDS [フィールド1] ・・・ OTHER [フィールド2] ・・・ ADDGROUP IF 条件式 TO SCREEN
各キーワードの意味は、次のとおりです。
| キーワード | 内容 | 設定内容 |
|---|---|---|
| OPEN “元のテーブル” | 重複を探すテーブルを開きます | 1 |
| ON FIELDS [フィールド1] ・・・ | 重複検査フィールド。選択した順に記述します | 3 |
| ON ALLFIELDS | すべてのフィールドを比較します | 3 |
| OTHER [フィールド2] ・・・ | 出力フィールド。選択した順に記述します | 5 |
| OTHER ALLFIELDS | すべてのフィールドを出力します | 5 |
| ADDGROUP | 先頭に「グループ番号」を追加します | 6 |
| IF 条件式 | 重複を探す対象のレコードの条件 | 9 |
| TO SCREEN | 結果を画面に表示します | 7 |
| TO “保存先” OPEN | 結果をテーブルに保存して開きます | 11 |
- 「テーブル」の場合は、「TO SCREEN」の代わりに「TO “保存先” OPEN」と記述されます。
- すべてのフィールドを選択した場合は、「FIELDS [ ] ・・・」の代わりに「ALLFIELDS」と記述されます。
- 「OTHER」は、「出力フィールド」を選択しない場合も記述されます。
- 下線部は、「出力フィールド」の選択、「グループの追加」のオン、条件式の入力をした場合に記述されます。
コマンドを直接記述する場合(スクリプトなど)
- フィールド名は「[ ]」で、テーブル名は「”」で囲んで記述します。
- 「ON」「OTHER」「TO」は省略せず、上の順に記述します。
- 「ALLFIELDS EXCLUDE [フィールド] ・・・」と記述すると、指定したフィールド以外のすべてのフィールドになります(ON、OTHERの両方で使用できます)。
- テーブルにないフィールドを記述すると、実行時にエラーになります。
オプションの例
| オプションの記述 | 重複の結果 |
|---|---|
| ON FIELDS [商品No] OTHER | 「A01」「B02」の2行 |
| ON FIELDS [商品No] OTHER [売上日] [数量] | 「A01」の3件と「B02」の2件(「◇機能」の例) |
| … OTHER [売上日] [数量] ADDGROUP | 先頭の「グループ番号」に「1」「2」が入ります |
| ON FIELDS [商品No] [単価] OTHER [売上日] | 単価が「1000」の「A01」は除かれます |
| … IF [売上日] >= `20240501` | 2024/05/01以降の「A01」の2件だけ |
| ON ALLFIELDS EXCLUDE [売上日] [数量] OTHER [売上日] | 「商品No」「単価」で比較します(4件) |
- 例は「◇重複の結果」と同じテーブルです。
例
OPEN "売上¥売上明細" DUPLICATES ON FIELDS [商品No] OTHER [売上日] [数量] ADDGROUP TO SCREEN DUPLICATES ON FIELDS [商品No] [単価] OTHER ALLFIELDS TO "売上¥売上明細_重複" OPEN DUPLICATES ON FIELDS [商品No] OTHER [売上日] IF [売上日] >= `20240401` TO SCREEN
このページは役に立ちましたか?
ご回答ありがとうございました。