THUMGY Data 機能説明書

縦積

更新日 2025/06/17

機能

《縦積》は、開いているテーブルの、横に並んだ複数のフィールド(縦積対象フィールド)の値を、1つのフィールドに縦に積み重ねて、新しいテーブルを作成する機能です。固定フィールドに選択したフィールドの値は、各レコードにそのまま繰り返し出力されます。元のテーブルは変更されません。

売上日商品No単価数量
2024/04/10A0112004
2024/05/20B028003
2024/06/15A01120010
元のテーブル

→

売上日商品No縦積フィールド縦積対象フィールド
2024/04/10A011200単価
2024/05/20B02800単価
2024/06/15A011200単価
2024/04/10A014数量
2024/05/20B023数量
2024/06/15A0110数量
縦積したテーブル(固定:売上日、商品No 縦積対象:単価、数量)
  • 作成するテーブルには、固定フィールドが選択した順に並び、その後に「縦積フィールド」(縦積対象フィールドの値)と「縦積対象フィールド」(元のフィールド名)が追加されます。
  • レコードは、1つ目の縦積対象フィールドの全レコード、次に2つ目のフィールドの全レコードの順に並びます。それぞれの中は、元のテーブルの順です。
  • 「縦積フィールド」は文字型です。数値や日付は、表示されている値の文字になります(例:「2024/04/10」)。
  • 固定フィールドのデータ型・書式は、元のテーブルと同じです。同じ内容のレコードも、すべて出力されます。
  • 作成されるレコードの数は、元のレコードの数×縦積対象フィールドの数です(空白レコードを出力しない場合は、その分少なくなります)。

メニュー

《加工》-《縦積》

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

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

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

  • 固定フィールドと縦積対象フィールドが、コマンドに記述された順に選択されます。「ALLFIELDS」の場合は、すべてのフィールドが選択されます。テーブルにないフィールドは選択されません。
  • 「縦積対象フィールドの空白レコードを出力しない」は、コマンドに「EXCLUDE BLANKS」がある場合にオンになります。
  • 条件式と保存先は、コマンドの内容が入力されます。保存先には、「04_table」フォルダからの「フォルダ名¥テーブル名」が表示されます。

設定内容

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

縦積の結果

フィールドの選択とオプションによって、作成するテーブルは次のようになります。例は、特に記載がない場合「◇機能」と同じテーブルです。

縦積対象フィールドの選択順を変えた場合

縦積対象フィールドを「数量」「単価」の順に選択すると、数量のレコードが先に並びます。

売上日商品No単価数量
2024/04/10A0112004
2024/05/20B028003
2024/06/15A01120010
元のテーブル

→

売上日商品No縦積フィールド縦積対象フィールド
2024/04/10A014数量
2024/05/20B023数量
2024/06/15A0110数量
2024/04/10A011200単価
2024/05/20B02800単価
2024/06/15A011200単価
縦積したテーブル(固定:売上日、商品No 縦積対象:数量、単価)
  • 固定フィールドの選択順を変えると、作成するテーブルのフィールドの並び順が変わります(例:「商品No」「売上日」の順に選択すると、商品Noが先頭になります)。

「縦積対象フィールドの空白レコードを出力しない」の場合

オン(最初の設定)にすると、縦積対象フィールドの値が空欄のレコードは出力されません。例は、固定フィールド「商品No」、縦積対象フィールド「数量」「備考」の場合です。

商品No数量備考
A014返品
B023
A0110
元のテーブル(備考は文字型)

→

商品No縦積フィールド縦積対象フィールド
A014数量
B023数量
A0110数量
A01返品備考
縦積したテーブル(オンの場合)
  • オフにすると、備考が空欄の2件(B02、A01)も、「縦積フィールド」が空欄のレコードとして出力されます。
  • 空欄とみなされるのは、文字型の空欄の値だけです。空白文字(スペース)だけの値は出力されます。
  • 数値型の「0」、日付型の「1900/01/01」(空欄のまま取り込んだ値)は空欄とみなされず、出力されます。

固定フィールドにすべてのフィールドを選択した場合

元のテーブルのすべてのフィールドがそのまま残り、その後に2つのフィールドが追加されます。例は、縦積対象フィールド「数量」の場合です。

売上日商品No単価数量
2024/04/10A0112004
2024/05/20B028003
2024/06/15A01120010
元のテーブル

→

売上日商品No単価数量縦積フィールド縦積対象フィールド
2024/04/10A01120044数量
2024/05/20B0280033数量
2024/06/15A0112001010数量
縦積したテーブル(固定:すべて 縦積対象:数量)
  • 縦積対象フィールドにすべてのフィールドを選択すると、固定フィールドに選択したフィールドも含めて、すべてのフィールドが縦積されます。
  • 元のテーブルに「縦積フィールド」「縦積対象フィールド」という名前のフィールドがある場合、そのフィールドは「縦積フィールド_1」「縦積対象フィールド_1」に名前が変わります。

条件式を入力した場合

条件に合うレコードだけが縦積されます。例は、「◇機能」と同じ選択で、条件式「[数量] >= 4」の場合です。

売上日商品No単価数量
2024/04/10A0112004
2024/05/20B028003
2024/06/15A01120010
元のテーブル

→

売上日商品No縦積フィールド縦積対象フィールド
2024/04/10A011200単価
2024/06/15A011200単価
2024/04/10A014数量
2024/06/15A0110数量
縦積したテーブル
  • 条件に合うレコードがない場合も、フィールドだけの(レコードが0件の)テーブルが作成されます。

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

《実行》ボタンをクリックしたときに、固定フィールドまたは縦積対象フィールドが選択されていない、保存先が空欄などの誤りがあると、画面の左下にメッセージが表示され、該当する項目が赤枠で示されます。項目を修正するとメッセージは消え、《実行》ボタンが使用できるようになります。

縦積 の画面
  • 条件式に誤りがある場合(フィールドがない、文字と数値を比較しているなど)は、実行時に誤りの内容を示す画面が表示されます。画面は閉じないので、条件式を修正してもう一度実行してください。

操作ログ

OPEN "元のテーブル"
VSTACK ON [固定1] ・・・ STACKFIELDS [対象1] ・・・ EXCLUDE BLANKS IF 条件式 TO "保存先" OPEN

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

キーワード内容設定内容
OPEN “元のテーブル”縦積する元のテーブルを開きます1
VSTACK ON [固定1] ・・・固定フィールド。選択した順に記述します3
STACKFIELDS [対象1] ・・・縦積対象フィールド。選択した順に記述します5
ALLFIELDSすべてのフィールド(ONやSTACKFIELDSのフィールドの代わり)3・5
EXCLUDE BLANKS縦積対象フィールドの値が空欄のレコードを出力しません6
IF 条件式縦積するレコードの条件8
TO “保存先”作成するテーブルの名前(保存先)10
OPEN(最後)作成したテーブルを開きます―
  • すべてのフィールドを行の順に選択した場合は、フィールド名の代わりに「ALLFIELDS」と記述されます(固定フィールド・縦積対象フィールドそれぞれ)。
  • 下線部は、「縦積対象フィールドの空白レコードを出力しない」がオンの場合、条件式を入力した場合に記述されます。

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

  • フィールド名は「[ ]」で、テーブル名は「”」で囲んで記述します。フィールド名の大文字・小文字は区別されます。
  • 固定フィールド(1つ以上)、縦積対象フィールド(1つ以上)と「TO “保存先”」は省略できません。
  • 同じフィールドを「ON」または「STACKFIELDS」の中に2回記述したり、テーブルにないフィールドを記述したりするとエラーになります。「ON」と「STACKFIELDS」に同じフィールドを記述することはできます。
  • 元のテーブルと同じ名前を保存先にするとエラーになります。

オプションの例(「◇縦積の結果」と同じテーブル。「TO “保存先” OPEN」は省略)

コマンドの記述縦積の結果
VSTACK ON [売上日] [商品No] STACKFIELDS [単価] [数量]単価、数量の順に縦積します(「◇機能」の例)
VSTACK ON [売上日] [商品No] STACKFIELDS [数量] [単価]数量のレコードが先に並びます
VSTACK ON [商品No] STACKFIELDS [数量] [備考] EXCLUDE BLANKS備考が空欄のレコードは出力しません
VSTACK ON ALLFIELDS STACKFIELDS [数量]すべてのフィールドの後に2つのフィールドを追加します
VSTACK ON [売上日] [商品No] STACKFIELDS [単価] [数量] IF [数量] >= 4数量が4以上のレコードだけを縦積します

例

OPEN "売上¥月別売上"
VSTACK ON [社員番号] [氏名] STACKFIELDS [4月] [5月] [6月] EXCLUDE BLANKS TO "月別_縦積" OPEN
OPEN "売上¥月別売上"
VSTACK ON ALLFIELDS STACKFIELDS [4月] [5月] IF [4月] > 0 TO "月別_4月5月" OPEN