「StiLL」 デザイン情報210 StiLLコマンド-- 列(横)方向に繰返される項目群を行単位(縦)に加工する
                             
  【テーマ】
列(横)方向に展開されたデータを行(縦)方向のデータに加工する考え方をご紹介します。
    【方法】
StiLLボタン「繰返し実行(BtLoop)」、「Excelデータ抽出(BtRecordQuery)」を使った処理を構築します。
    【参考】
必要に応じて最後に「並べ替え(BtSort)」ボタンを実行して支店順等で並べ替えて表示できます。
元データの項目名(部門等)に番号が無い場合は番号つきの項目名を別に用意し「BtCellCopy」で上書きコピーしてから処理を実行します。
 
                 
                             
■ 今回の内容                          
今回は下図のように列(横:C〜K列)方向に3回繰返される項目群を行(縦)方向のデータに加工する考え方をご紹介します。
画面の領域
画面の領域
加工後のイメージ →
・ポイント
 ・「繰返し実行(BtLoop)」ボタンで「Excelデータ抽出(BtRecordQuery)」を3回繰返し、順にデータを抽出します。
   このとき「繰返し実行」ボタンの実行回数を使い、項目名と出力セル位置を制御します。
・3回繰返し実行を行いデータを抽出した時点での出力イメージ
画面の領域
 ・最後にもう一つの「Excelデータ抽出(BtRecordQuery)」で2回目以降の不要な見出し行(4、7行目)を取り除きます。
■ ボタンの作成と設定                        
今回使用するStiLLボタンを示します。(下図赤枠の2種類を使用します)
画面の領域
今回のボタン配置およびセルの式の設定例を示します。
画面の領域
←項目式(セルA1:E2)
←出力セル位置(セルD7)
←検索式(セルA6:A7)
予め各セル(項目式、検索式等を含む)を設定しておきます。
また以下のセルには実行回数(セルE6:1〜3)で変化する式を入力します。
セルC1:="部門"&E6 ・・・ 実行回数の変化で「部門1〜部門3」に変化します。
セルD1:="計画"&E6 ・・・ 同様に「計画1〜計画3」に変化します。
セルE1:="実績"&E6 ・・・ 同様に「実績1〜実績3」に変化します。
セルD7:=ADDRESS(1+(E6-1)*COUNTA(Sheet1!A:A),1,1,1,"Sheet2")
      ※上記式の COUNTA(Sheet1!A:A) は元データの見出し行を含む行数を取得します。
      ※また (E6-1) は実行回数に応じた出力セル位置(行)を算出するための係数です。
      ※上記式は ="Sheet2!A"&1+(E6-1)*COUNTA(Sheet1!A:A) と記述することもできます。
A「Excelデータ抽出(BtRecordQuery)」ボタンの設定
  設定の順序としてはじめに「Excelデータ抽出」ボタンをシートに貼り付けて、下図のように設定します。
  設定内容
画面の領域
   1.設定ダイアログを開き下図のように元データ範囲に(Sheet1!A1)を入力します。
   2.項目式範囲は(Sheet3!A1:E2)を入力します。
   3.出力セル位置には(|Sheet3!D7|)を入力します。
      ※セル値の内容を参照する "|" 記号で囲み直接手入力します。
   4.OKボタンでダイアログを閉じて設定完了です。
@「繰返し実行(BtLoop)」ボタンの設定
  設定内容
画面の領域
   1.設定ダイアログを開き下図のようにオブジェクト名に上記Aの「Excelデータ抽出(BtRecordQuery)」ボタンを設定します。
   2.本例での項目群の繰返しは 3ですので回数指定で 3 を設定します。
   3.実行回数出力位置にSheet3!E6を入力します。
      ※Sheet3!E6に出力された繰返し回数(本例では1〜3)でAの出力セル位置と項目名を制御します。
   4.OKボタンでダイアログを閉じて設定完了です。
B「Excelデータ抽出(BtRecordQuery)」ボタンの設定
  不要な見出し行を取り除く「Excelデータ抽出(BtRecordQuery)」ボタンを設定します。
  設定内容
   ボタンの見出しを Excelデータ抽出2としています。
画面の領域
   1.設定ダイアログを開き下図のように元データ範囲に(Sheet2!A1)を入力します。
   2.検索式範囲に(Sheet3!A6:A7)を入力します。
      ※この検索式で不要な見出し行を取り除きます。
   3.出力セル位置には1.と同じ(Sheet2!A1)を入力します。
   4.OKボタンでダイアログを閉じて設定完了です。
■ ボタンの実行                        
1.@(繰返し実行)、B(Excelデータ抽出2)の順でボタンをクリックして実行します。
2.作成したボタンを「ボタン連続実行(BtPush)」ボタンのリストに設定して実行することで、
 冒頭の加工後イメージまでをワンクリックで処理できるようになります。
   「ボタン連続実行(BtPush)」ボタンへの設定例
画面の領域
■ ご参考までに                        
1.必要に応じて最後に「並べ替え(BtSort)」ボタンを実行して支店順等で並べ替えて表示できます。
並べ替えのイメージ(年度をソートキー1、支店名をソートキー2として実行)
画面の領域
2.元データの項目名(部門など)に番号が無い場合は番号つきの項目名を別に用意し「BtCellCopy」で上書きコピー
   してから処理を実行します。
   また逆に、処理後の項目名(部門1など)の番号が気になる場合も別に用意した項目見出しで上書きコピーしてください。
(各ボタンの設定内容の詳細はStiLLヘルプをご確認ください)  
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます