Designer:繰り返し実行指定ファイルの中身が空のときは?

「手順の繰り返し実行」を設定した手順で、繰り返し指定ファイル(パラメーターリスト)の中身が空のときはどうなるでしょうか?

f:id:xoblos:20170910085143p:plain

上図のようにデフォルト設定では、その繰り返し手順は警告終了となりますので、後続手順が実行されます。

繰り返し指定ファイルの中身が空のときに、後続手順を実行させたくないときは、以下のように後続手順の [判定条件] 設定で、[先行手順の実行結果が次のとき実行する][警告終了]「いいえ」に設定します。 

f:id:xoblos:20170910090251p:plain

f:id:xoblos:20170910090307p:plain

Designer:ユーザーの一時フォルダにサイズの大きな .tmp ファイルが作成されるとき

現象

xoBlosを実行すると、ユーザーの一時フォルダ
  C:\Users\<ユーザー名>\AppData\Local\Temp
にサイズの大きな .tmp ファイルが作成される。

原因と対処方法

Excel 表から抽出」手順で、サイズの大きな抽出対象ファイルをCSV形式で指定している場合は、その手順を見直してみましょう。

CSV形式からの抽出で、高速エンジンの使用が「はい」になっている場合は、「いいえ」で設定してみてください。「Excel 表から抽出」手順では、CSVファイルを一旦 Excelファイルとして処理するため、.tmp ファイルが作成されてしまうことがあります。

CSVファイルをXMLファイルに変換するには、「変換(CSV→抽出データ)」手順やxobQueryを使用する方法もありますので、検討してみてください。

 

Designer:『非出力項目』の役割

どういう時に使うの?

f:id:xoblos:20170831112151p:plain

データ抽出の際、作成される XML ファイル内に不要な項目があれば、キーワード『非出力項目』を「yes」にすることで、出力を阻止することができます。上図で、もし「その他情報」が要らない場合は、「その他情報」の列に「yes」を設定します。

「抽出するのに不要とはどういうこと?」

「最初から出力項目の対象としなければ良いじゃない!」

f:id:xoblos:20170831112158p:plain

ご意見は尤もです。しかし、上図のように処理値として扱う際には、明示が必要です。

抽出するデータの条件として「その他情報」が空白であるものを設定(空白でないものをスキップ)しています。更には『取得データの組合せ』で、データ情報を加工したものを出力しようとしています。「その他情報」その物は不要としていますが、判定等で使う場合には具体明示しなければなりません。

「不要情報も XML ファイル上にあるだけで、生成時に使わなければ良いじゃない!」

こういったご意見もあるかと思います。しかし大量データで、一項目減るだけで容量が大きく削減できるのであれば、持たないことが望ましいです。また、CSV に変換して別のシステムにあて込むという要件があった場合には、列構成を合わせる為に余計な情報は確実除去しなければならない――というケースも充分あり得ます。

Designer+Windows:ピボット作成時に (空白) カテゴリーを作らない方法

次の記事の補足情報です。

Designer:ピボット処理の自動実行
http://xoblos.hatenablog.jp/entry/2017/08/19/233737

上記の記事の方法でピボットテーブル、ピボットグラフを作成すると、ひな形データシートの3行目までを範囲とするため、余分な (空白) カテゴリーができてしまいます。ピボット集計上は何ら問題ないため、そのままにするか、気になる場合は軸フィールドのフィルタリングでオフにする方法で問題ないと思います。

どうしても (空白) カテゴリーを作りたくない場合は、下記の2つの方法があります。1. の方法は、処理速度が遅いため、データ量が多いときはお勧めではありません。

  1. データシートの最終行を #S 記号で削除する方法
  2. 外部スクリプトで、自動的にピボットテーブルを更新する方法

1. データシートの最終行を #S 記号で削除する方法

ひな形シートの3行目までをピボットテーブルからデータソース参照しているため、余分な空白行(最終行)をカテゴリーにしてしまうので、その行を削除する手法です。

原本ひな形データシートの3行目、再右列の隣に「#S」記号を入れておきます。

f:id:xoblos:20170820161558p:plain

#S は、Spacerの意味合いで、処理後に削除する行(分類項目の列位置)に指定します。

データをインポートする制御シートに、#行番号 を設定しておきます。

f:id:xoblos:20170820161612p:plain

「#行番号」は、[固定値] を「%ROW」にして行番号を生成し、[区分] を分類項目(この例では「詳細行」)にしておきます。[整形対象部分の右下] を、ひな形データシートの3行目、#S 記号を記入した列のセルにしておきます。

この方法で (空白) カテゴリーはできなくなりますが、各行が分類カテゴリー(#行番号)となるため、データ量が多いときはかなり処理時間がかかります。

2. 外部スクリプトで、自動的にピボットテーブルを更新する方法

この手法を使う場合、原本ピボットテーブルの [データソースの変更] で3行分の範囲指定を前もってしておく必要はありません。 外部スクリプトがデータシートのレコード数を判断して、自動的に [データソースの変更] を行うからです。また同様に、[ファイルを開くときにデータを更新する] をチェックオンにしておく必要もありません。

また、処理速度も 1. の手法よりもかなり速く実行できます。

データインポート手順の下に、外部アプリ実行手順を加え、外部スクリプトVBScript)を実行してピボットテーブルの更新を行います。

f:id:xoblos:20170820213203p:plain

実行するファイル SCRIPT\PivotUpdate.vbs (この例では [SCRIPT] フォルダに配置)
         スクリプトソースコード(現在、このリンクは存在しません。)
コマンドライン引数
  第1引数 出力ブックのパス名
  第2引数 データシート名(この例では「データ」)
  第3引数 ピボットシート名(この例では「ピボット」)
  第4引数 ピボットテーブル名(この例では「"ピボットテーブル1"」)
作業フォルダ . (カレントフォルダを指定)

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を使って自動実行する方法に関しては、別の記事にまとめます。