THUMGY Data 機能説明書

重複

更新日 2024/11/29

機能

《重複》は、開いているテーブルから、「重複検査フィールド」の値が同じレコードが2件以上あるもの(重複しているレコード)を探し出す機能です。結果は、画面に表示するか、新しいテーブルとして保存できます。元のテーブルは変更されません。

売上日商品No単価数量
2024/04/10A0112004
2024/04/12B028003
2024/05/20A0112002
2024/05/25C035001
2024/06/15B028005
2024/06/20A0110001
元のテーブル

→

商品No売上日数量
A012024/04/104
A012024/05/202
A012024/06/201
B022024/04/123
B022024/06/155
重複の結果(重複検査フィールド:商品No、出力フィールド:売上日、数量)
  • 値が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/10A0112004
2024/04/12B028003
2024/05/20A0112002
2024/05/25C035001
2024/06/15B028005
2024/06/20A0110001
元のテーブル

→

商品No
A01
B02
結果(重複検査フィールド:商品No)
  • テーブルの画面で列を選択して《重複》をクリックした場合も、この形で表示されます。

「グループの追加」をオンにした場合

先頭に「グループ番号」フィールド(数値型)が追加されます。同じ値のレコードには同じ番号が入ります。

売上日商品No単価数量
2024/04/10A0112004
2024/04/12B028003
2024/05/20A0112002
2024/05/25C035001
2024/06/15B028005
2024/06/20A0110001
元のテーブル

→

グループ番号商品No売上日数量
1A012024/04/104
1A012024/05/202
1A012024/06/201
2B022024/04/123
2B022024/06/155
結果(出力フィールド:売上日、数量)

「重複検査フィールド」を複数選択した場合

選択したすべてのフィールドの値が同じレコードが、重複とみなされます。
「商品No」と「単価」を選択した例では、単価が1000の「A01」は同じ組み合わせがないため除かれます。

売上日商品No単価数量
2024/04/10A0112004
2024/04/12B028003
2024/05/20A0112002
2024/05/25C035001
2024/06/15B028005
2024/06/20A0110001
元のテーブル

→

商品No単価売上日
A0112002024/04/10
A0112002024/05/20
B028002024/04/12
B028002024/06/15
結果(重複検査フィールド:商品No、単価)
  • 結果は、1つ目のフィールドの昇順、同じ値の中では2つ目のフィールドの昇順…に並びます。選択する順を変えると、列の順と並び順が変わります。

「条件式」を入力した場合

条件に合うレコードの中から重複を探します。条件式「[売上日] >= `20240501`」では、「B02」が1件だけになるため、結果に含まれません。

売上日商品No単価数量
2024/04/10A0112004
2024/04/12B028003
2024/05/20A0112002
2024/05/25C035001
2024/06/15B028005
2024/06/20A0110001
元のテーブル

→

商品No売上日数量
A012024/05/202
A012024/06/201
結果(出力フィールド:売上日、数量)
  • 重複しているレコードがない場合も、エラーにはならず、フィールドだけの(レコードが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