アルツの備忘録

最近、年のせいで物忘れが激しい。
そこで、いろんなことをここに記録して行きたいと思います。

Excelで業務自動化システム その4 <EXCEL DATA横変換>

2020年01月23日 17時14分53秒 | Kindle
■DATA横変換
・Excelの縦に並んだデータを横に変換する。
<機能概要>
 ・DBから任意のSQLでデータ抽出が可能
              ORACLE
    Microsft SQLServer
    ACCESS(MDB、ACCDB)
    EXCEL:(xls、xlsx)
    CSV:(CSV、TXT)
 ・日程表の日付範囲指定可能
 ・表示日程を、暦日とデータ内日付のみ、との選択可能
 ・横並びのヘッダーは文字データでも可能
 ・データ部分は、データの個数表示でも可能
<操作方法>

①DB設定ボタン
  データベースとの接続方法を指定 
       
  ア:接続方法を登録してある中から指定する。
  イ:接続方法設定する。
   ・システム指定:ドロップダウンリストから選択
       ※実行するには、それぞれのドライバがインストールされている必要があります。
             ORACLE:ORACLE製OraOLEDB.Oracle
             MS_ORA:Microsoft製MSDAORA
             MSSQL:Microsft SQLServer (SQLOLEDB)
             ACCESS:MDBファイル (Microsoft.Jet.OLEDB.4.0)
             Access:ACCDBファイル(Microsoft.ACE.OLEDB.12.0)
             EXCEL2007:xlsxファイルExcel2007以降 (Microsoft.ACE.OLEDB.12.0/Excel 12.0)
              EXCEL2007_U:xlsxファイル Excel2007以降更新処理(Microsoft.ACE.OLEDB.12.0/Excel 12.0)
              EXCEL:xlsファイルExcel2003以前(Microsoft.Jet.OLEDB.4.0/Excel 8.0)
               EXCEL_U:xlsファイルExcel2003以前更新処理(Microsoft.Jet.OLEDB.4.0/Excel 8.0) 
               CSV:CSV、TXTファイル(Microsoft Text Driver (*.txt; *.csv))
               ORA_INST:Oracle in instantclientのドライバ名を指定
               ODBC:ODCBのドライバ名を指定
               DSN:DSNサーバ名を指定

     ※ここでは、Excel、Access、CSV、TXTファイルの説明をします。
      ・Excel、Accessの場合
           >データベース名に対象ファイルを指定
      ・CSV、TXTの場合
     >データベース名に対象ファイルの場所を指定する。
  >「ヘッダーラベルあり(Excel,Csv)」:先頭行の名称がある場合はチェックを付ける

      ウ、接続テストボタン:データベースへの接続可否の確認が可能  
      エ、追加、修正、削除ボタン:接続情報の追加、チェックを付けた接続情報の修正、削除が可能
      オ、戻るボタン:接続情報画面を閉じる。
  ②データ抽出
  ・SQLシートに記述されているSQLを実行し結果をSheet1に書き出します。
    ※任意に書き換えて下さい。
  ・現状は③記述されているデータで抽出処理が実行されます。

           ア:イとウを合わせて実行されるSQLとしている。
   イ:select文を記述
     >Excelの場合:テーブル名は〔シート名$〕とする。
                            例select * from [売上データ$]
                            例select A.アイテムコード, A.受注注番, B.受注注番from [sheet1$] A,[sheet2$] B
                                 WHERE A.アイテムコード=B.アイテムコード
    >CSV,TXTの場合:テーブル名はファイル名とする。
                             例select * from売上データ.csv
        例select IT.CODE,HE.NAME from TxITEM.CSV as IT,TxHEAD.CSV as HE
                                where IT.CODE=HE.CODE  
    ウ:抽出文を記述
                ・現状は、メニューの③の指示と連動、指示が無ければ表示されない構文になっている  
               1行目(B4)=IF(メニュー!C3<>""," Where売上日Like '" &メニュー!C3 & "%' ","") 
                 2行目(B5)=IF(メニュー!D3<>"",IF(メニュー!C3<>""," AND商品名Like '%" & メニュー!D3 & "%' ", " WHERE商品名Like '" &メニュー!D3 & "%' "),"")
              3行目(B6)=IF(メニュー!E3<>"",IF(B4&B5<>""," AND得意先CD Like '" & メニュー!E3 & "%' "," WHERE得意先CD Like '" &メニュー!E3 & "%' "),"")
    エ、ソート文
      ・ここでは品目CD,顧客CD順の指定
  
   ➃、データ編集ボタン
   ・出力フォーマットの内容でsheett1のデータをSheet2へ出力
  ⑤出力フォーマット
           1、キー項目
              ・日程データを集計するキー項目に 1 をセット
              ※キー項目でデータがソートされている必要があります。
            2、出力ヘッダー
            ・出力Sheet2の項目名
                 ・横変換:対象列、タイプに横変換情報を記述
       3,対象列
    ・対象データSheet1のセル列指定
    ・タイプが固定の場合 : 出力する文字を指定
    ・タイプが式の場合 : [ ]内に式を、出力シートの2行目に記述する形で記入
      例 連番表示 [=MINA(A1)+1]
                └→1列目は文字のためMINAでは0が返る
    ・タイプが横xx[XX]の場合 : ヘッダー出力セル列[データ出力セル列] を指定   
    ・タイプが横合計の場合 : [ ]内に集計式を、出力シートの2行目に記述する形で記入
                但し最終セルは ? とする 例 [=SUM(D2:?)]
    4.タイプ:出力タイプ
     ・文字:そのまま出力
     ・固定:対象列に指定された文字を出力
     ・数値:数値として出力
     ・日付:yyyy/mm/dd 変換
     ・MID(位置,長さ):抽出文字位置
     ・式:[式]の形式で対象列へ記述する
       1行目はヘッダーになるので、2行行目に記述する形でセル位置を記述する。
     ・横合計:横に並べたデータの集計値出力
     ・横<日付|文字>タイプ[文字|数値|個数] :  この指定は最終パラメタとすること
       >日付タイプの種類
         日付;表示形式を"yyyy/mm/dd"にする。
         日付2;表示形式を"mm/dd"にする。
         日付3;表示形式を"dd"にする。
       >[ ]内の指定内容によるデータの処理
         文字 : 改行して結合
         数値 : 合計
         個数 : データの個数

        例 横日付2[文字]   
          例 横文字[個数]
    5、対象開始行
     ・読み込んだデータの、出力対象スタート位置を指定する。
     ・無指定は1行目、ヘッダーがある場合は 2 を指定する。
    6、対象終了行
     ・読み込んだデータの、出力対象最終位置を指定する。
     ・無指定は最終行
    7.日程開始日
     ・日程表のスタート日を指定する。
     ・無指定はデータ内の最小値をスタート日
    8.日程終了日
     ・日程表のエンド日を指定する。
     ・無指定はデータ内の最大値をエンド日
    9.日程表区分  
     ・1 : データに存在する日付けのみで日程作成
     ・2 : カレンダーの日付で日程作成

 ■編集結果
  >Sheet1  
  
  >sheett2 

■編集例
   > 顧客別数量編集 

   
  >顧客別件数編集

   
   

■DATA横変換のダウンロード  DATA横変換  

  ※ユーザーフォームにリストビューを使っているので、設定をいないと動かない場合があるかも???

    



■ダウンロードは  こちらのページ をご覧ください。


最新の画像もっと見る

コメントを投稿