| 「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) アイエルアイ総合研究所 無断転載を禁じます | ||||||||||||||||||||||||||||