抽出データ編集のエラー

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

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

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:20170813180139p:plain

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

f:id:xoblos:20170813180152p:plain

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

f:id:xoblos:20170813180205p:plain

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

f:id:xoblos:20170813180220p:plain

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

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

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

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

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

ヘッダー(項目名行)なしのファイルリスト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 のように - (ハイフン) を前に付けると、そのスイッチは無効になります。

「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 を指定しています。

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

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) のセルをつまんで、またドラッグして引き直せば、再設定が即座に完了します!

参考記事

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

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

ヘルプページが開かない

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

カレンダーを素早く作り、素早く仕組みを組み立てる

Excelでカレンダーを表現する場合、最もシンプルな方法でカレンダー作成することをお勧めします。

とかく、複雑な形式で時系列を表現しがちですが、思い切って簡素化を図ってみましょう。ひな形のカレンダー作成には、Excelのオートフィル操作が威力を発揮します。この例では、年月日を左寄せ、曜日を中央寄せに、前もって書式設定しています。

f:id:xoblos:20170716112252p:plain

1日と曜日を入力したら、2セルを範囲指定して矩形の右下(■)をつまみます。■が+に変わったら、

f:id:xoblos:20170716112305p:plain

下の方にドラッグして31日分を自動作成します。

f:id:xoblos:20170716112318p:plain

f:id:xoblos:20170716112334p:plain

この例は1か月分ですが、どんどん下にドラッグしていけば、12ヵ月分でも3年分でも作成することができます。「セルの書式設定」で、日だけの表示、年月日表示、右寄せなど、お好みの表示形式にしましょう。カレンダーができたら、先頭の方の行に表タイトルを入れたり、項目名見出しの行を入れたりと、体裁を調整します。

後は、xoBlosのExcelインポート機能を使って、縦軸の年月日を目印に、データを挿し込み入力したり、加算集計していく仕組みを作るだけで、効果的なソリューションが開発できてしまいます。以下の参考記事を参照してください。

参考記事

縦軸も横軸も「禁」さえ覚えておけば大丈夫
http://xoblos.hatenablog.jp/entry/2017/07/13/031411