THUMGY Data 機能説明書

グループ抽出

更新日 2026/08/31

機能

《グループ抽出》は、開いているテーブルのレコードを、「グループキーフィールド」の値ごと、または指定したレコード数ごとに分けて、複数の新しいテーブルを作成する機能です。作成するテーブルには、「抽出フィールド」で選択したフィールドが出力されます。「フォルダキーフィールド」を選択すると、その値ごとにフォルダが作成され、テーブルはそのフォルダの中に作成されます。元のテーブルは変更されません。

例は、キー「商品No」、抽出フィールド「単価」「数量」、フォルダ「グループ抽出」、テーブル名「売上」の場合です。商品Noの値ごとに3つのテーブル(「グループ抽出¥A01¥売上_A01」など)が作成されます。図の「テーブル」の列は、レコードが入るテーブルの名前です。

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

→

テーブル商品No単価数量
売上_A01A0112004
売上_A01A0112002
売上_A01A0110001
売上_B02B028003
売上_B02B028005
売上_C03C035001
作成されるテーブル(3つ)
  • 作成するテーブルのフィールドは、キーにしたフィールドが先頭に並び、その後に「抽出フィールド」で選択したフィールドが選択した順に並びます。フィールド名・データ型・書式は元のテーブルと同じです。
  • 各テーブルのレコードは、元のテーブルの順のままです。
  • 大文字・小文字、全角・半角は区別されます(例:「A01」と「a01」「A01」は別のテーブルです)。記号だけが違う値(「A/01」と「A 01」など)も別のテーブルです。
  • テーブルの名前と保存先は、「◇グループ抽出の結果」の「■ 作成されるテーブルの名前と保存先」を参照してください。

メニュー

《加工》-《グループ抽出》

  • テーブルを開いている場合に使用できます。開いているテーブルが分ける元のテーブルになります。
  • テーブルの画面で条件式を設定している場合は、その条件式が「条件式」に入力された状態で開きます。
  • 操作ログからグループ抽出のコマンドを修正することもできます(「■ 操作ログからコマンドを修正する場合」参照)。

操作ログからコマンドを修正する場合

操作ログでグループ抽出のコマンドを修正すると、コマンドの内容が設定された状態で画面が開きます。

  • 「フォルダキーフィールド」「グループキーフィールド」「抽出フィールド」は、コマンドに記述された順に選択されます。フォルダキーのないコマンドの場合、「フォルダキーフィールド」は選択されません。
  • テーブルにないフィールドは選択されません。
  • レコード数で分けるコマンドの場合は、「レコード数」が選択され、レコード数が入力されます。
  • 条件式は、コマンドの内容がそのまま入力されます。テーブルの画面の条件式は使用されません。
  • フォルダを作成しないコマンドの場合は、「作成しない」が選択されます。フォルダ名の欄には、初期値の「グループ抽出」が表示されます。
  • 「テーブル名」と「元のテーブル名を使う」は、コマンドのとおりに設定されます。

設定内容

グループ抽出 の画面
  • 1元のテーブル:分ける元のテーブルの、フォルダ名とテーブル名が表示されます。
  • 2《フィールド選択》ボタン:「フィールド選択」画面を開き、フォルダキーにするフィールドをまとめて選択・解除できます。
  • 3フォルダキーフィールド(任意):フォルダを分けるキーにするフィールドの行をクリックして選択します(もう一度クリックで解除)。選択すると、その値ごとにフォルダが作成され、テーブルはそのフォルダの中に作成されます(「■ フォルダキーを選択した場合」参照)。
    • 選択しない場合は、これまでどおり、キーの値ごとにフォルダが作成されます(「レコード数」の場合はフォルダなし)。
    • 複数選択した場合は、選択したすべてのフィールドの値の組み合わせごとにフォルダが作成されます。左端の番号は選択した順番です。
    • 「グループキーフィールド」と同じフィールドも選択できます。「フィールド」「レコード数」のどちらでも使用できます。
    • 選択すると、テーブル名の下の説明が「フォルダ名は「フォルダキーの値」、テーブル名は「テーブル名_キーの値」になります。」に変わります。
    • フォルダキーのフィールドは、作成するテーブルには出力されません。出力する場合は、「抽出フィールド」でも選択してください。
  • 4フィールド:「グループキーフィールド」の値ごとにテーブルを分けます。初期値です。
  • 5レコード数:6に入力したレコード数ごとに、元のテーブルの順にテーブルを分けます(「■ 「レコード数」を選択した場合」参照)。
  • 6レコード数の値(レコード数):1つのテーブルに入れるレコード数を、1以上の整数で入力します。「レコード数」を選択した場合に入力できます。
    • 数字だけを入力できます。
  • 7《フィールド選択》ボタン:「フィールド選択」画面を開き、キーにするフィールドをまとめて選択・解除できます。
  • 8グループキーフィールド(フィールド):テーブルを分けるキーにするフィールドの行をクリックして選択します(もう一度クリックで解除)。1つ以上選択します。
    • 複数選択した場合は、選択したすべてのフィールドの値の組み合わせごとにテーブルが作成されます。
    • 左端の番号は選択した順番です。この順に、作成するテーブルの先頭にフィールドが並び、テーブル名のキーの値がつながります。
    • 見出しのチェックボックス(またはCtrl+A)で、すべてのフィールドを選択・解除します。
    • 「レコード数」を選択すると使用できなくなり、選択は解除されます。「フィールド」に戻した場合は、選択し直してください。
  • 9《フィールド選択》ボタン:「フィールド選択」画面を開き、「抽出フィールド」をまとめて選択・解除できます。
  • 10抽出フィールド(必須):作成するテーブルに出力するフィールドの行をクリックして選択します。1つ以上選択します。
    • 選択した順に、キーのフィールドの後ろに並びます。キーと同じフィールドを選択しても、1回だけ出力されます。
    • 見出しのチェックボックス(またはCtrl+A)で、すべてのフィールドを選択・解除します。
  • 11《式ビルダー》ボタン:「式ビルダー」画面を開き、フィールドや関数を選んで条件式を作成できます。
  • 12条件式(任意):テーブルを分ける前に、レコードを絞り込む条件を入力します。空欄の場合は、すべてのレコードが対象です。
    • 入力中に、関数やフィールドの候補が表示されます(Ctrl+Spaceで表示、Escで閉じます)。
    • 「×」で入力内容を消去します。正しい条件式であることを確認すると、緑の「✓」が表示されます。
  • 13《検証》ボタン:条件式が正しいかを確認します(Ctrl+Enter)。誤りがある場合は、メッセージが表示されます。
  • 14フォルダ作成:作成する:「04_table」フォルダの中に、作成するテーブルをまとめるフォルダを作成します。初期値です。
  • 15フォルダ作成:作成しない:「04_table」フォルダに、直接テーブルを作成します。16は使用できません。
  • 16フォルダ名(作成する):作成するフォルダの名前を入力します。初期値は「グループ抽出」です。
    • 空欄の場合は、「作成しない」と同じです。
    • 記号(「*」など)や「..」を含む名前は、実行時にエラーになります。
  • 17元のテーブル名を使う:オンにすると、作成するテーブルの名前が「元のテーブル名_キーの値」になります。18は使用できません。初期値はオフです。
  • 18テーブル名(任意):作成するテーブルの名前の先頭に付ける文字を入力します。テーブル名は「入力した文字_キーの値」になります。
    • 空欄の場合は、キーの値だけがテーブル名になります。
    • 「フォルダ名¥テーブル名」のように入力すると、16のフォルダの中に、そのフォルダが作成されます。
    • テーブル名の長さは、64文字までです。「04_table」フォルダ以外の場所は指定できません。
    • 記号(「-」「.」「#」など)や全角スペースは使用できません。
    • 名前の最後に「¥」「/」、途中に「..」は入力できません。
    • 「入力した文字_キーの値」が64文字を超える場合は、入力した文字の後ろが短くされます(キーの値は残ります)。
    • 元のテーブルと同じ名前は使用できません(大文字・小文字が違っても同じ名前とみなされます)。
  • 19コマンド:現在の設定で実行されるコマンドが表示されます(「◇操作ログ」参照)。キー(またはレコード数)と「抽出フィールド」を指定すると表示されます。
  • 20《コピー》ボタン:コマンドをクリップボードにコピーします。
  • 21《キャンセル》ボタン:実行せずに画面を閉じます(Escキー)。確認メッセージで「はい」を選択すると閉じます。
  • 22《実行》ボタン:実行します(Enterキー)。正常に終了すると画面が閉じ、作成したテーブルがテーブルの一覧に追加されます。
    • 作成されるテーブルが100を超える場合は、続行してよいかの確認メッセージが表示されます。「いいえ」を選択すると、実行せずに画面に戻ります。

「レコード数」を選択した場合

「グループキーフィールド」は灰色になり、使用できません。6にレコード数を入力します。

グループ抽出 の画面

「元のテーブル名を使う」をオンにした場合

「テーブル名」は使用できません。入力済みのテーブル名は残りますが、チェックされず、使用されません。

グループ抽出 の画面

グループ抽出の結果

設定によって、作成されるテーブルは次のようになります。例は「◇機能」と同じテーブルです。

キーを複数選択した場合

キー「商品No」「単価」の値の組み合わせごとに、テーブルが作成されます。テーブル名のキーの値は「_」でつながります。

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

→

テーブル商品No単価数量
売上_A01_1200A0112004
売上_A01_1200A0112002
売上_A01_1000A0110001
売上_B02_800B028003
売上_B02_800B028005
売上_C03_500C035001
作成されるテーブル(4つ)
  • 作成するテーブルの先頭には、キーにしたフィールドが選択した順に並びます。選択する順を変えると、列の順とテーブル名が変わります(例:「売上_1200_A01」)。

「レコード数」を選択した場合

レコード数「4」の例です。元のテーブルの順に4件ずつ分けられ、テーブル名は「テーブル名_最初の番号_最後の番号」になります。

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

→

テーブル売上日商品No数量
売上_1_42024/04/10A014
売上_1_42024/04/12B023
売上_1_42024/05/20A012
売上_1_42024/05/25C031
売上_5_62024/06/15B025
売上_5_62024/06/20A011
作成されるテーブル(2つ)
  • 最後のテーブルは、指定したレコード数より少なくなることがあります。レコード数がテーブルのレコード数以上の場合は、1つのテーブル(例:「売上_1_6」)になります。
  • キーの値ごとのフォルダは作成されません。作成するテーブルには、「抽出フィールド」だけが出力されます。
  • 条件式を入力した場合は、条件に合うレコードだけを数えます。テーブル名の番号は、条件に合うレコードの中での順番です。

条件式を入力した場合

条件に合うレコードだけがテーブルに分けられます。条件式「[数量] >= 2」では、「C03」のレコードがないため、「C03」のテーブルは作成されません。

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

→

テーブル商品No単価数量
売上_A01A0112004
売上_A01A0112002
売上_B02B028003
売上_B02B028005
作成されるテーブル(2つ)
  • 条件に合うレコードがない場合も、エラーにはならず、レコードが0件のテーブルが1つ作成されます。

フォルダキーを選択した場合

フォルダキー「店舗」、キー「商品No」、抽出フィールド「数量」の例です。店舗の値ごとにフォルダが作成され、その中に商品Noの値ごとのテーブルが作成されます。

店舗商品No数量
東京A014
大阪B023
東京A012
大阪A011
東京B025
大阪A011
元のテーブル(店舗別売上)

→

テーブル商品No数量
大阪¥売上_A01A011
大阪¥売上_A01A011
大阪¥売上_B02B023
東京¥売上_A01_1A014
東京¥売上_A01_1A012
東京¥売上_B02_1B025
作成されるテーブル(4つ)
  • テーブル名は、1回の実行の中で同じ名前にならないように、後から作成されるテーブルに「_1」「_2」…が付きます(フォルダが違っても同じです)。フォルダは値の順(例:「大阪」→「東京」)に作成されます。
  • フォルダキーの「店舗」は、作成するテーブルには出力されません。
  • 「レコード数」と組み合わせた場合は、フォルダごとに、元のテーブルの順にレコード数ずつ分けられます。テーブル名の番号は、フォルダごとに1から数えます(例:「大阪¥売上_1_2」「東京¥売上_1_2_1」)。

作成されるテーブルの名前と保存先

テーブルは「04_table」フォルダの中に、次のように作成されます(「◇機能」の例。元のテーブルは「売上明細」)。

設定作成されるテーブル(「04_table」フォルダから)
フォルダ「グループ抽出」、テーブル名「売上」グループ抽出¥A01¥売上_A01(「◇機能」の例)
テーブル名が空欄グループ抽出¥A01¥A01
「元のテーブル名を使う」をオングループ抽出¥A01¥売上明細_A01
テーブル名「月別¥売上」グループ抽出¥月別¥A01¥売上_A01
「作成しない」A01¥売上_A01
「レコード数」グループ抽出¥売上_1_4
「レコード数」、「作成しない」、テーブル名が空欄1_4
フォルダキー「店舗」グループ抽出¥大阪¥売上_A01
フォルダキー「店舗」、「レコード数」グループ抽出¥大阪¥売上_1_4
  • 「フィールド」の場合は、キーの値ごとにフォルダが作成され、その中にテーブルが作成されます。
  • テーブル名のキーの値は、記号や空白が「_」に置き換えられます(例:「A/01」→「A_01」、「-30.00」→「_30_00」)。
  • 日付は「2024/04/10」→「2024_04_10」、日付時刻は「2024/04/10 09:00:00」→「2024_04_10t09_00_00」になります。
  • 文字型の空欄の値は、「_」1文字として名前に使われます。フォルダキーの値からフォルダ名を作る場合も同じです。
  • Windowsで使用できない名前(「CON」「NUL」「COM1」など)には、最後に「_」が付きます(例:「CON_」)。
  • 名前は64文字までです。同じ名前になる場合は、フォルダは「(1)」「(2)」…、テーブルは「_1」「_2」…が付きます(大文字・小文字の違いは同じ名前とみなされます)。
  • 保存先のパスが長すぎる場合は、Windowsの上限に収まるようにフォルダ名・テーブル名が短くされます。

入力内容に誤りがある場合

《実行》ボタンをクリックしたときに、「抽出フィールド」やキーが選択されていない、レコード数が整数でない、テーブル名に使用できない文字があるなどの誤りがあると、画面の左下にメッセージが表示され、該当する項目が赤枠で示されます。項目を修正するとメッセージは消え、《実行》ボタンが使用できるようになります。

グループ抽出 の画面
  • 条件式に誤りがある場合(フィールドがない、文字と数値を比較しているなど)は、実行時に誤りの内容を示す画面が表示されます。
  • フォルダ名の誤りや、レコード数が「0」の場合も、実行時に誤りの内容を示す画面が表示されます。
  • いずれも画面は閉じないので、内容を修正してもう一度実行してください。

操作ログ

OPEN "元のテーブル"
GROUPEXTRACT FOLDERKEY [フォルダキー1] ・・・ ON [キー1] [キー2] ・・・ OTHER FIELDS [フィールド1] ・・・ IF 条件式 FOLDER "フォルダ名" TO "テーブル名"

各キーワードの意味は、次のとおりです。

キーワード内容設定内容
OPEN “元のテーブル”分ける元のテーブルを開きます1
FOLDERKEY [フォルダキー1] ・・・フォルダキーフィールド。選択した順に記述します3
FOLDERKEY ALLFIELDSすべてのフィールドをフォルダキーにします3
ON [キー1] ・・・グループキーフィールド。選択した順に記述します8
ON ALLFIELDSすべてのフィールドをキーにします8
ON RECORDS レコード数指定したレコード数ごとに分けます5、6
OTHER FIELDS [フィールド1] ・・・抽出フィールド。選択した順に記述します10
OTHER ALLFIELDSすべてのフィールドを出力します10
IF 条件式テーブルに分けるレコードの条件12
FOLDER “フォルダ名”作成するフォルダの名前16
TO “テーブル名”テーブル名の先頭に付ける文字18
ORIGIN TABLE NAME元のテーブル名をテーブル名に使います17
  • 「レコード数」の場合は、「ON [キー1] ・・・」の代わりに「ON RECORDS レコード数」と記述されます。
  • すべてのフィールドを行の順に選択した場合は、「ON ALLFIELDS」「OTHER ALLFIELDS」と記述されます。
  • 下線部は、フォルダキーを選択した場合、条件式、フォルダ名(「作成する」の場合)、テーブル名を入力した場合に記述されます。
  • 「元のテーブル名を使う」をオンにした場合は、「TO “テーブル名”」の代わりに「ORIGIN TABLE NAME」と記述されます。

コマンドを直接記述する場合(スクリプトなど)

  • フィールド名は「[ ]」で、フォルダ名とテーブル名は「”」で囲んで記述します。オプションは上の順に記述します。
  • 「ON」の後のキー(「ALLFIELDS」「RECORDS レコード数」)と「OTHER」の後のフィールドは省略できません。
  • 「RECORDS」のレコード数は、1以上の整数を記述します。0以下はエラーになります。
  • 「FOLDERKEY」は「ON」の前に記述し、フィールド(または「ALLFIELDS」)を1つ以上記述します。省略した場合は、フォルダキーなしになります。
  • テーブルにないフィールドを記述したり、「OTHER FIELDS」に同じフィールドを2回記述したりすると、エラーになります。
  • 「TO」に「C:¥」から始まるような絶対パスは記述できません。
  • 「TO」「FOLDER」に「..」を含めたり、「FOLDER」に「*」などの記号を使ったりすると、エラーになります。

オプションの例(「◇グループ抽出の結果」と同じテーブル。「FOLDER」「TO」は省略)

コマンドの記述作成されるテーブル
ON [商品No] OTHER FIELDS [単価] [数量]「A01」「B02」「C03」の3つ(「◇機能」の例)
ON [商品No] [単価] OTHER FIELDS [数量]「A01_1200」「A01_1000」「B02_800」「C03_500」の4つ
ON RECORDS 4 OTHER FIELDS [売上日] [商品No] [数量]「1_4」「5_6」の2つ
ON [商品No] OTHER FIELDS [単価] [数量] IF [数量] >= 2「A01」「B02」の2つ
ON [商品No] OTHER ALLFIELDS3つのテーブルに、すべてのフィールドを出力します
FOLDERKEY [店舗] ON [商品No] OTHER FIELDS [数量]「大阪」「東京」フォルダに2つずつ(「■ フォルダキーを選択した場合」の例)

例

OPEN "売上¥売上明細"
GROUPEXTRACT ON [商品No] OTHER FIELDS [単価] [数量] FOLDER "グループ抽出" TO "売上"
GROUPEXTRACT ON RECORDS 1000 OTHER ALLFIELDS FOLDER "売上_分割" ORIGIN TABLE NAME
GROUPEXTRACT ON [商品No] OTHER ALLFIELDS IF [売上日] >= `20240401` FOLDER "商品別"
OPEN "売上¥店舗別売上"
GROUPEXTRACT FOLDERKEY [店舗] ON [商品No] OTHER FIELDS [数量] FOLDER "店舗別" TO "売上"