「StiLL」 デザイン情報282 StiLLコマンド-- 【データ加工】元データを任意の件数作成する方法 | ||||||||||||||||||||||||||||
【テーマ】 今回はデータ加工の処理で元データを任意の件数作成(コピー)する方法についてご紹介します。 この方法ではデータ個々に作成件数を指定できます。 |
【方法】 StiLLボタンの「セルデータコピー(BtCellCopy)」ボタンと「Excelデータ抽出 (BtRecordQuery)」ボタンを使います。 |
【参考】 作成件数に0を指定した場合は当該データは表示されません。 |
||||||||||||||||||||||||||
■ 今回の内容 | ||||||||||||||||||||||||||||
元データを指定件数分作成(コピー)する手順をご紹介いたします。 | ||||||||||||||||||||||||||||
(元のデータ) (処理後のイメージ) | ||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||
(作成件数)に設定した行数分明細データを作成(コピー)します ⇒ | ||||||||||||||||||||||||||||
本例ではシステムテンプレート「DLDATA」と「WORKT」を使用しています。 | ||||||||||||||||||||||||||||
・ポイント | ||||||||||||||||||||||||||||
1. 最初にセルデータコピーボタンで「DLDATA」シートの作成件数の最大値(本例では5)で全明細を作成します。 | ||||||||||||||||||||||||||||
2. 作成する行(F列の基準値)と(作成件数)とを比較し有効な行(抽出対象)を判別します。(下段:セルG12の説明参照) | ||||||||||||||||||||||||||||
3. 最後に抽出対象を1以上のデータに絞り込むことで完成します。(上図:処理後のイメージ参照) | ||||||||||||||||||||||||||||
今回の処理は過去のデザイン情報215の仕組みを応用する(列展開数を作成件数に読み替える)ことで実装可能です。 | ||||||||||||||||||||||||||||
下段ではその手順に沿って説明します。 | ||||||||||||||||||||||||||||
・過去のバックナンバーは以下をご覧ください。 | ||||||||||||||||||||||||||||
【バックナンバー 215】 列方向に繰返される項目群を行単位に加工する(2) | ||||||||||||||||||||||||||||
■ ボタンの作成と設定 | ||||||||||||||||||||||||||||
今回使用するボタンを赤枠で示します。(リボン - StiLL - ボタンテンプレート) | ||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||
今回のボタン配置およびセルの数式の設定例を示します。 | ||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||
本例では「WORKT」シートに「DLDATA」で取得したデータを加工して出力します。 | ||||||||||||||||||||||||||||
項目名のコード、備考は「DLDATA」のE列、F列のデータを参照して出力します。 | ||||||||||||||||||||||||||||
@セル内容の説明 | ||||||||||||||||||||||||||||
セルE3にはシート名[WORKT]、F3にはデータの出力開始行[15]を入力しています。 | ||||||||||||||||||||||||||||
セルG3には元データの明細数(処理数)を取得する式[=COUNTA(DLDATA!F:F)-1]を入力しています。 | ||||||||||||||||||||||||||||
セルH3には「DLDATA」シートの最大作成件数を取得する数式[=MAX(DLDATA!G:G)]を入力しています。 | ||||||||||||||||||||||||||||
・本例では一旦すべてのデータを最大件数分作成します。 | ||||||||||||||||||||||||||||
セルI3には下段12行目の数式をコピーする範囲[=E3&"!E"&F3&":J"&G3*H3+F3-1]を設定する式を入力しています。 | ||||||||||||||||||||||||||||
・本例でのデータ出力範囲はE列からJ列なので固定値で設定しています。 | ||||||||||||||||||||||||||||
各項目式の説明(12行目) | ||||||||||||||||||||||||||||
セルE12:明細を行方向に展開する基準値(行)の式[=INT((ROW()-$F$3)/$H$3)+1]を入力しています。 | ||||||||||||||||||||||||||||
セルF12:同様に明細を列方向に展開する基準値(列)の式[=MOD(ROW()-$F$3,$H$3)]を入力しています。 | ||||||||||||||||||||||||||||
セルG12:抽出対象を判定する式[=IF(F12<INDEX(DLDATA!G:G,$F$3+$E12-1),1,0)]を入力します。 | ||||||||||||||||||||||||||||
・この数式で抽出対象(有効な行)に1を設定します。 | ||||||||||||||||||||||||||||
セルH12:元データのコードを参照する式[=INDEX(DLDATA!E:E,$F$3+E12-1)]を入力します。 | ||||||||||||||||||||||||||||
セルI12:コード別の連番を取得する式[=COUNTIFS($E12:$E$15,E12,$G12:$G$15,">0")]を入力します。 | ||||||||||||||||||||||||||||
・この数式の$E12、$G12の行が可変して、コードごとに1からの連番を出力します。 | ||||||||||||||||||||||||||||
セルJ12:元データの備考を参照する式[=INDEX(DLDATA!F:F,$F$3+E12-1)]を入力します。 | ||||||||||||||||||||||||||||
A「セルデータコピー(BtCellCopy)」ボタンの設定 | ||||||||||||||||||||||||||||
設定内容 | ||||||||||||||||||||||||||||
1.設定ダイアログを開き下図のように元データ範囲のセル範囲に(WORKT!E12:J12)を入力します。 | ||||||||||||||||||||||||||||
2.出力セル位置はセルの値を参照にチェックし(WORKT!I3)を入力します。 | ||||||||||||||||||||||||||||
3.貼り付け種類の複数選択をチェックして、3.数式、11.出力先を値のみコピーをチェックします。(赤枠内) | ||||||||||||||||||||||||||||
※ここではボタン見出しを数式展開としています。 | ||||||||||||||||||||||||||||
B「Excelデータ抽出(BtRecordQuery)」ボタンの設定 | ||||||||||||||||||||||||||||
設定内容 | ||||||||||||||||||||||||||||
1.設定ダイアログを開き下図のように元データ範囲のセル範囲に(WORKT!E14)を入力します。 | ||||||||||||||||||||||||||||
2.検索式範囲に(WORKT!E7:E8)を入力します。 | ||||||||||||||||||||||||||||
※この検索式で抽出対象が0より大きいデータに絞ります。 | ||||||||||||||||||||||||||||
3.出力セル位置は1.と同じ(WORKT!E14)を入力します。 | ||||||||||||||||||||||||||||
※ここではボタン見出しをデータ整備としています。 | ||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
■ ボタンの実行 | ||||||||||||||||||||||||||||
1.上記2つのボタンを 「ボタン連続実行(BtPush)」 ボタンのリストに設定して実行します。 | ||||||||||||||||||||||||||||
「ボタン連続実行(BtPush)」ボタンの設定例 | ||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||
■ ご参考までに | ||||||||||||||||||||||||||||
1. 作成件数に 0 を指定した場合は当該データは表示されません。 | ||||||||||||||||||||||||||||
(各ボタンの設定内容の詳細はStiLLヘルプをご確認ください) | ||||||||||||||||||||||||||||
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます | ||||||||||||||||||||||||||||