縦積
機能
《縦積》は、開いているテーブルの、横に並んだ複数のフィールド(縦積対象フィールド)の値を、1つのフィールドに縦に積み重ねて、新しいテーブルを作成する機能です。固定フィールドに選択したフィールドの値は、各レコードにそのまま繰り返し出力されます。元のテーブルは変更されません。
| 売上日 | 商品No | 単価 | 数量 |
|---|---|---|---|
| 2024/04/10 | A01 | 1200 | 4 |
| 2024/05/20 | B02 | 800 | 3 |
| 2024/06/15 | A01 | 1200 | 10 |
→
| 売上日 | 商品No | 縦積フィールド | 縦積対象フィールド |
|---|---|---|---|
| 2024/04/10 | A01 | 1200 | 単価 |
| 2024/05/20 | B02 | 800 | 単価 |
| 2024/06/15 | A01 | 1200 | 単価 |
| 2024/04/10 | A01 | 4 | 数量 |
| 2024/05/20 | B02 | 3 | 数量 |
| 2024/06/15 | A01 | 10 | 数量 |
- 作成するテーブルには、固定フィールドが選択した順に並び、その後に「縦積フィールド」(縦積対象フィールドの値)と「縦積対象フィールド」(元のフィールド名)が追加されます。
- レコードは、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/10 | A01 | 1200 | 4 |
| 2024/05/20 | B02 | 800 | 3 |
| 2024/06/15 | A01 | 1200 | 10 |
→
| 売上日 | 商品No | 縦積フィールド | 縦積対象フィールド |
|---|---|---|---|
| 2024/04/10 | A01 | 4 | 数量 |
| 2024/05/20 | B02 | 3 | 数量 |
| 2024/06/15 | A01 | 10 | 数量 |
| 2024/04/10 | A01 | 1200 | 単価 |
| 2024/05/20 | B02 | 800 | 単価 |
| 2024/06/15 | A01 | 1200 | 単価 |
- 固定フィールドの選択順を変えると、作成するテーブルのフィールドの並び順が変わります(例:「商品No」「売上日」の順に選択すると、商品Noが先頭になります)。
「縦積対象フィールドの空白レコードを出力しない」の場合
オン(最初の設定)にすると、縦積対象フィールドの値が空欄のレコードは出力されません。例は、固定フィールド「商品No」、縦積対象フィールド「数量」「備考」の場合です。
| 商品No | 数量 | 備考 |
|---|---|---|
| A01 | 4 | 返品 |
| B02 | 3 | |
| A01 | 10 |
→
| 商品No | 縦積フィールド | 縦積対象フィールド |
|---|---|---|
| A01 | 4 | 数量 |
| B02 | 3 | 数量 |
| A01 | 10 | 数量 |
| A01 | 返品 | 備考 |
- オフにすると、備考が空欄の2件(B02、A01)も、「縦積フィールド」が空欄のレコードとして出力されます。
- 空欄とみなされるのは、文字型の空欄の値だけです。空白文字(スペース)だけの値は出力されます。
- 数値型の「0」、日付型の「1900/01/01」(空欄のまま取り込んだ値)は空欄とみなされず、出力されます。
固定フィールドにすべてのフィールドを選択した場合
元のテーブルのすべてのフィールドがそのまま残り、その後に2つのフィールドが追加されます。例は、縦積対象フィールド「数量」の場合です。
| 売上日 | 商品No | 単価 | 数量 |
|---|---|---|---|
| 2024/04/10 | A01 | 1200 | 4 |
| 2024/05/20 | B02 | 800 | 3 |
| 2024/06/15 | A01 | 1200 | 10 |
→
| 売上日 | 商品No | 単価 | 数量 | 縦積フィールド | 縦積対象フィールド |
|---|---|---|---|---|---|
| 2024/04/10 | A01 | 1200 | 4 | 4 | 数量 |
| 2024/05/20 | B02 | 800 | 3 | 3 | 数量 |
| 2024/06/15 | A01 | 1200 | 10 | 10 | 数量 |
- 縦積対象フィールドにすべてのフィールドを選択すると、固定フィールドに選択したフィールドも含めて、すべてのフィールドが縦積されます。
- 元のテーブルに「縦積フィールド」「縦積対象フィールド」という名前のフィールドがある場合、そのフィールドは「縦積フィールド_1」「縦積対象フィールド_1」に名前が変わります。
条件式を入力した場合
条件に合うレコードだけが縦積されます。例は、「◇機能」と同じ選択で、条件式「[数量] >= 4」の場合です。
| 売上日 | 商品No | 単価 | 数量 |
|---|---|---|---|
| 2024/04/10 | A01 | 1200 | 4 |
| 2024/05/20 | B02 | 800 | 3 |
| 2024/06/15 | A01 | 1200 | 10 |
→
| 売上日 | 商品No | 縦積フィールド | 縦積対象フィールド |
|---|---|---|---|
| 2024/04/10 | A01 | 1200 | 単価 |
| 2024/06/15 | A01 | 1200 | 単価 |
| 2024/04/10 | A01 | 4 | 数量 |
| 2024/06/15 | A01 | 10 | 数量 |
- 条件に合うレコードがない場合も、フィールドだけの(レコードが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
このページは役に立ちましたか?
ご回答ありがとうございました。