Designer:ピボット処理の自動実行

次の記事で、Excelでのピボットテーブル、ピボットグラフの作成方法を解説しましたが、ピボットのテンプレートブックを使った、xoBlosでの自動実行処理について記事にします。

ピボットテーブル、ピボットグラフを活用しよう! http://xoblos.hatenablog.jp/entry/2017/08/13/180832

上記の記事では、28,384レコードのデータを基にピボットテーブルを作成していました。しかし、次回の処理ではレコード件数はもっと少ないかもしれないし、多いかもしれません。その都度、データを入力し直して、ピボットテーブルを更新していくのも面倒なので、xoBlosを利用して、入力したレコード件数分でのピボットテーブル、ピボットグラフを自動実行で作ってみましょう。上記の記事で使ったブックを例に解説します。

ピボット用のテンプレートブック(原本ブック)を用意する。

上記の記事で作成したブックのピボットシートで、[ピボットテーブル ツール]-[オプション]-[データソースの変更] を選びます。

f:id:xoblos:20170819232432p:plain

ダイアログの [テーブル/範囲] の最下行数を3行目に変更します。この例では、$J$28385から$J$3に変更しています。この3行目に変更するところが、xoBlosでの重要なポイントとなります。

f:id:xoblos:20170819232505p:plain

グラフのタイトルを、自由に変更します(この例では「顧客別・商品区分別販売分析」)。ピボットシート名は、作成時は「Sheet1」のような名前が付きますが、自由に変更します(この例では「ピボット」)。

f:id:xoblos:20170819232538p:plain

ピボットテーブルをポイントして、右クリック [ピボットテーブル オプション] を選びます。

f:id:xoblos:20170819232611p:plain

[データ] タブで、[ファイルを開くときにデータを更新する] をチェックオンにします。

f:id:xoblos:20170819232633p:plain

データシートのデータ行(2行目以下)をクリアします。

f:id:xoblos:20170819232709p:plain

ブックを保存します。この例では、[03_TEMPLATE] フォルダに、原本_販売分析データ.xlsx という名前で保存しています。

xoBlos Designerで、自動実行処理を組み立てる。

xoBlos Designerで設定する手順は3手順のみです。

手順1:入力データを抽出してXMLファイルにする。

ExcelファイルやCSVファイルから、データを抽出してXMLファイルにします。制御シートを使用する方法、CSVからXMLへの変換手順を使う方法などがあります。

f:id:xoblos:20170820001904p:plain

手順実行でXMLファイルになったことを確認します。

f:id:xoblos:20170820001925p:plain

手順2:ピボット用のテンプレートブック(原本ブック)を、出力用フォルダにコピーします。

f:id:xoblos:20170820001952p:plain

手順3:コピーした原本ブックに対して、抽出XMLデータをインポートします。

[ひな形シート名] は、データシートのシート名にしてください(この例では「データ」)。高速生成エンジンは必ずオフにしてください。

f:id:xoblos:20170820002020p:plain

f:id:xoblos:20170820002105p:plain

 フィルタリング操作のオン/オフで、必要なフィールドのみを絞り込んで表示できます。

f:id:xoblos:20170820091928p:plain

データ範囲を3行目までに設定した関係で、(空白) カテゴリーが作成されてしまいますが、気になるときは、軸フィールドのフィルタリングで (空白) をオフにしてください。

注記: (空白) カテゴリーをどうしても作成したくない場合は、ピボット作成時に(空白) カテゴリーを作成させない手法がありますので、こちらの記事を参照してください。

Designer:抽出データ編集のエラー

制御シートとは別の設定ファイル。

f:id:xoblos:20170816111151p:plain

xoBlos の基本である、データの「抽出」と「生成」。その間に「加工」という編集の工程が入る場合も勿論あります。加工方法は様々あり、中間処理として「加工の為の生成」と「加工生成した情報の抽出」と、2手順いれることも手段の一つです。これは前回記事で復習してください。

また一方で、上図のようにXML to XMLXML ファイルから XML ファイルにする)の 1手順で、データを加工編集することも可能です。制御シートが要らないということですね。

‥‥しかしこの手順を用いる場合には、制御シートよりも専門的な設定ファイルを別に用意する必要があります。

f:id:xoblos:20170816111159p:plain

上図例は単純に、入力データの既存項目「氏名」をコピーし、「氏名_Filler」という新たな列を追加させています。無論、コピーなので「氏名_Filler」にも「氏名」と同じ情報が保持されます。

加工編集とは言っても様々ありますので、その内容を xoBlos に教えてあげる為の設定ファイルは必要になります。またこの設定ファイルは、制御シートとは異なり XML形式でなければなりません。

f:id:xoblos:20170816111207p:plain

さて、一通り設定ファイルの作成と業務の設定が完了し、実行してみました。‥‥ファイルを設置しパス(設置場所)も合っているのに、ファイルが存在しないと言われてしまいましたね。ファイルのアクセス権が問われているのであれば、エラーにその旨は出る筈。ともなれば‥‥ファイルの形式を疑ってみましょうか。

XML ファイルは、専用のエディタを使わない限りは大抵、メモ帳などのテキストエディタで作成することになると思います。保存する時は、拡張子やファイル形式に充分注意しなければなりません。拡張子の表示/非表示は、Windows の「フォルダオプション」にて変更しましょう。

f:id:xoblos:20170816111218p:plain

アプリケーションの関連付け等を行っている場合はより判断が難しくなりますが、上図のようにアイコンの判断だけでは足りないのが明らかですね。右側のファイルの「種類」も確認するようにしましょう。

f:id:xoblos:20170816111229p:plain

注意深く XML 形式でファイルも再保存しました。‥‥しかしまだ問題があるようですね。「無効な文字」やその位置情報も詳細に出してくれていますが、どうにも問題になるような内容を記述していないと思ったら、文字コードを気にしてみましょう。

f:id:xoblos:20170816111242p:plain

上図のように、XML ファイルの先頭行にはどういう文字コードとして扱うかを明示します。しかし、ファイルを保存する際に設定する文字コードと内容に差があっては、正しく判断することができません。必ず一致させるようにしましょう。

Excel:ピボットテーブル、ピボットグラフを活用しよう!

Excelの機能の中でも、特に便利で優れた機能として、ピボットテーブルピボットグラフがあります。様々な観点からデータ集計・表示・ドリルダウン(詳細表示)ができ、クロス集計(縦横計算)とも呼ばれる機能です。

xoBlosでピボットテーブル、ピボットグラフを扱う方法は別の記事にまとめますが、この記事ではピボットテーブル、ピボットグラフの作成方法を簡単に紹介したいと思います。Excelのバージョンは、Excel 2010を使用しました。

まず、データシート内のセル(どれでも良い)を選択します。

f:id:xoblos:20170813175929p:plain

リボン [挿入] タブの [ピボットテーブルの挿入] を実行します。[ピボットテーブルの作成] ダイアログに、自動的にデータ範囲が設定されますので、確認して [OK] ボタンを選びます。 

f:id:xoblos:20170813175944p:plain

シート上に作成のヒントが表示され、フィールドリストが作業ウィンドウに表示されます。

f:id:xoblos:20170813180001p:plain

縦軸の観点にしたいフィールドを、[行ラベル] のボックスにドラッグします。ここでは、まず「顧客区分名」をドラッグし、次に「顧客名」をドラッグしています。

f:id:xoblos:20170813180014p:plain

横軸の観点にしたいフィールドを、[列ラベル] のボックスにドラッグします。ここでは、「商品区分名」をドラッグしています。

f:id:xoblos:20170813180044p:plain

集計したい値フィールドを、[値] ボックスにドラッグします。ここでは、「実績_売上高」をドラッグしています。

f:id:xoblos:20170813180053p:plain

[ピボットテーブル ツール]-[オプション]-[集計方法] で、集計方法を選びます。ここでは、「合計」を選んでいます。

f:id:xoblos:20170813180113p:plain

金額を3ケタカンマ区切りにしたいときは、値セルの列を範囲指定し、右クリック [セルの書式設定] で設定します。

f:id:xoblos:20170819231428p:plain

クロス集計表が、瞬く間に完成します。

f:id:xoblos:20170813180152p:plain

集計結果をピボットグラフにするには、[ピボットテーブル ツール]-[オプション]-[ピボットグラフ] から、グラフの種類を選択します。

f:id:xoblos:20170813180205p:plain

グラフウィンドウにグラフが表示されますので、ウィンドウをマウスでリサイズして、適当な大きさ、位置に調整します。

f:id:xoblos:20170813180220p:plain

グラフウィンドウの軸フィールドを選び、チェックボックスのオン・オフで、該当データをフィルタリングすることもできます(「顧客区分名」が「ネットショップ」、「商品区分名」が「缶詰」、「冷凍食品」など)。

ピボット操作が意外と簡単なのに驚かされますが、ルーティンワーク化したピボット処理を、xoBlosを使って自動実行する方法に関しては、別の記事にまとめます。

Windows:サブフォルダの下も、すべてのフォルダ階層のファイルリストを作成する

次のファイルリスト作成の記事に関する補足です。

Designer+Windows:フォルダの中のファイルリストを作成するhttp://xoblos.hatenablog.jp/entry/2017/04/10/002209

Designer:ヘッダー(項目名行)なしのファイルリストhttp://xoblos.hatenablog.jp/entry/2017/05/28/133513

 

指定されたフォルダおよびそのサブフォルダの、すべてのファイルリストを作成するには、dir コマンドの /S オプションを使用します。

dir C:\data\売上 /S /B /A-D > filelist.txt

 

dir コマンドヘルプの内容(dir /? で表示される)
ディレクトリ中のファイルとサブディレクトリを一覧表示します。

DIR [ドライブ:][パス][ファイル名] [/A[[:]属性]] [/B] [/C] [/D] [/L] [/N]
  [/O[[:]ソート順]] [/P] [/Q] [/R] [/S] [/T[[:]タイムフィールド]] [/W] [/X] [/4]

  [ドライブ:][パス][ファイル名]
              一覧表示するドライブ、ディレクトリ、またはファイルを指定します。

  /A          指定された属性のファイルを表示します。
  属性        D  ディレクトリ                R  読み取り専用
              H  隠しファイル                A  アーカイブ
              S  システム ファイル           I  非インデックス対象ファイル
               L  再解析ポイント             -  その属性以外
  /B          ファイル名のみを表示します (見出しや要約が付きません)。
  /C          ファイル サイズを桁区切り表示します。これは
              既定の設定です。/-C とすると桁区切り表示されません。
  /D          /W と同じですが、ファイルを列で並べ替えた一覧を表示します。
  /L          小文字で表示します。
  /N          ファイル名を右端に表示する一覧形式を使用します。
  /O          ファイルを並べ替えて表示します。
  ソート順    N  名前順 (アルファベット)     S  サイズ順 (小さい方から)
              E  拡張子順 (アルファベット)   D  日時順 (古い方から)
              G  グループ (ディレクトリから) -  降順
  /P          1 画面ごとに停止して表示します。
  /Q          ファイルの所有者を表示します。
  /R          ファイルの代替データ ストリームを表示します。
  /S          指定されたディレクトリおよびそのサブディレクトリのすべての
              ファイルを表示します。
  /T          どのタイム フィールドを表示するか、または並べ替えに使用するかを
              指定します。
  タイムフィールド
              C  作成
              A  最終アクセス
              W  最終更新
  /W          ワイド一覧形式で表示します。
  /X          このオプションは MS-DOS 形式以外のファイル名に対する短い名前を
              表示します。長い名前の前に短い名前を表示する点を除けば、
              /N オプションと同じです。短い名前がない場合は、ブランクに
              なります。
  /4          4 つの数字で年を表示します。

環境変数 DIRCMD にスイッチを設定できます。
/-W のように - (ハイフン) を前に付けると、そのスイッチは無効になります。

corabo:「xoBlos Lock Service」を起動できないとき

サーバーにxoBlos coraboをセットアップ時、「corabo導入運用(管理)ガイド」

5.xoBlos Lock Service をWindows サービスに登録する の中の

  • サービスの一覧から「xoBlos Lock Service」を選択し、プロパティ画面で設定を行います。(中略)
  • 「開始」ボタンを押して、サービスを開始しておきます。

の手順で、下記のようなメッセージが出た場合。

ローカル コンピューター 上の xoBlos Lock Service サービスは起動して停止しました。サービス中には、ほかのサービスやプログラムで使用されていない場合は自動的に停止するものがあります。

既に別のアプリを動かしているサーバーにxoBlos coraboをセットアップしたときに起こる可能性がありますので、イベントビューアーのイベントログに、以下のようなエラーが出ていないかを確認してください。

f:id:xoblos:20170729110626p:plain

サービスを開始できません。System.ServiceModel.AddressAlreadyInUseException: HTTP が URL http://+:80/xoBlosLockSvcHost/ を登録できませんでした。TCP ポート 80 は別のアプリケーションが使用しています。

上図およびメッセージのように、TCPポート 80 で別のアプリが動いているようなので、下記のconfigファイルの設定変更をすることにより解決します。

xoBlosインストールフォルダの下の [svc] フォルダ(例:C:\xoBlos\svc)にある、xoBlosLockSvcHost.exe.config をメモ帳で開きます。次の箇所を変更して保存します。

<host>
    <baseaddresses>
        <add baseaddress="http://localhost/xoBlosLockSvcHost/" />
    </baseaddresses>
</host>

↓ 「localhost」部分を、「localhost:使用していないポート番号」に書き換える

<host>
    <ba:seaddresses>
        <add baseaddress="http://localhost:8081/xoBlosLockSvcHost/" />
    </baseaddresses>
</host>

この例では、使用していない :8081 を指定しています。

Designer:セル参照を行番号、列番号指定方式(オフセット方式)にするとメンテナンスしやすい

Excel表からの抽出、Excel表の生成。どちらの手順も、その制御シートでは該当項目の指定に「セル参照」を使います。

例えばExcelシートから、項目1~項目12まで横並びの列(データの先頭は2行目)からデータを抽出する場合を考えてみます。下図の例のように、A2、B2、C2~L2と、「A1形式の相対参照方式」で指定すれば事足りるのですが、もしこのデータ列が100列以上あったらどうでしょうか?

f:id:xoblos:20170722201941p:plain

100列の場合の抽出指定は、A2、B2、C2~CV2と指定しなければならず、設定作業が面倒な感じ。また、列が減ったり増えたり、並び順が変わるなどメンテナンス時の再設定作業も大変そうです。「A1形式」の代わりに、「オフセット方式」で設定してみましょう。まず、A1の代わりに (2, 1) と指定します。これがオフセット方式で、(行番号, 列番号) の形式でセル参照を表現します。(2, 1) は2行目の1列目、つまりA2のセルを参照します。

f:id:xoblos:20170722201954p:plain

(2, 1) と指定したセルの矩形右下の□をポイントすると+に変わるので、そのまま「項目12」の下のセルまで右側にずるっとドラッグしていきます。Excelのオートフィル操作ですね。

f:id:xoblos:20170722202007p:plain

手を離すと、(2, 1) ~ (2, 12) まで簡単に設定できました。(2, 12) はL2と同等です。

f:id:xoblos:20170722202020p:plain

この手法で、100列でも200列以上でも同じ操作で大丈夫です。列が減ったり増えたり、並び順が変わるなどメンテナンス時には、(2, 1) のセルをつまんで、またドラッグして引き直せば、再設定が即座に完了します!

参考記事

Excel:オートフィルの基本
http://xoblos.hatenablog.jp/entry/2017/01/27/161031

Excel:列方向のオートフィル
http://xoblos.hatenablog.jp/entry/2016/12/16/125707

Designer:ヘルプページが開かない

Designer からヘルプページを起動。

f:id:xoblos:20170720174353p:plain

業務ファイル(.xob)や、制御シートのセクション/キーワード等の詳細は、上図のようなメニューから参照することができます。

稀な事象ですが‥‥インターネットの設定によっては、たとえインターネットに繋げられる環境であったとしても、次の図のような真っ白なページが表示されて終わってしまうことがあります。

f:id:xoblos:20170720174401p:plain

ヘルプサイトは、一度管理ページへアクセスしてから、本来のページにリダイレクトする仕組みになっています。これを無効にする設定になっていると、参照することができません。

参照できない場合、以下のような設定を試してみてください。

f:id:xoblos:20170720174408p:plain

f:id:xoblos:20170720174419p:plain

f:id:xoblos:20170720174430p:plain