Excel:オートフィルの基本

出力単位別に取り扱う。

オートフィルは Excel の標準機能であり、セルの「選択値/選択範囲」によって、出力の規則性は変わります。下図のように、規則の基本となる値を置き、通常のマウスドラッグと[Ctrl]キーを押しながらのマウスドラッグとでは、出力の内容に違いがあるのを覚えておきましょう。

f:id:xoblos:20170127145513p:plain

f:id:xoblos:20170127160053p:plain

f:id:xoblos:20170127145522p:plain

f:id:xoblos:20170127145527p:plain

この機能/操作に慣れることで、下図のような制御シートの作成も楽になります。

f:id:xoblos:20170127145532p:plain

上図のような R1C1 形式【(1,1)、(1,2)、(1,3)...】は、列方向のオートフィルでも規則性を認識できますが、A1 形式【A2、B2、C2...】での列方向のオートフィルはどうあっても一手間いるようですね。前回記事に挙げた方法を是非活用してみてください。

おまけ

ユーザ定義なる規則を設定するには、下図のような流れになります。

f:id:xoblos:20170127145736p:plain

f:id:xoblos:20170127145743p:plain

Designer:変数の「実行時に入力する」の真意

連携の発生とは。

「corabo で指定したパラメータ値を Designer が受け取って処理を行う」のは連携が発生していることになります。それは「Designer から Designer」の形態でも同じことが言えます。業務ファイルに設定できる変数は、連携する相手側には勿論、それを受け取るためのお皿が必要です。

f:id:xoblos:20170126140241p:plain

上図「パラメータのやり取り.xob」を呼び出し元の業務ファイル、「呼ばれる業務.xob」を呼び出し先の業務ファイルとします。業務の内容は、前者業務では「data.txt」を「dataCopy_実行時に指定された内容.txt」と命名してコピーし、後者業務にて正常にコピーされたかを確認します。各業務ファイルの中身は下図のとおりです。

・パラメータのやり取り.xob

f:id:xoblos:20170126140247p:plain

f:id:xoblos:20170126140254p:plain

・呼ばれる業務.xob

f:id:xoblos:20170126140302p:plain

それでは、「呼ばれる業務.xob」側の変数の設定を下図のようにし、「パラメータのやり取り.xob」を実行してみましょう。

f:id:xoblos:20170126140508p:plain

f:id:xoblos:20170126140514p:plain

呼び出し元の方に、呼び出し先の業務の実行結果が返ってきました。変数の内容が渡されていないので、コピーされた「dataCopy_実行時に指定された内容.txt」を見つけることができませんでした。前回記事のようなケースでも、お皿を用意するだけでは足りませんでしたね。

「Designer から Designer」の形態も、連携が発生しているので、「呼ばれる業務.xob」側の業務の設定内、『d.実行時に入力しますか?』項を「はい」にします。

f:id:xoblos:20170126140523p:plain

f:id:xoblos:20170126140530p:plain

連携は、当該設定の「はい」で初めて成立することを覚えておきましょう。

Designer:制御シートの書き換え設定で「固定値」に値を設定するとき

Designer からの「制御シートの書き換え設定」

f:id:xoblos:20170125113247p:plain

制御シート

f:id:xoblos:20170125113254p:plain

上図のような仕組みで、変数の「受注時間」を、制御シートの「#受注時間」に文字列でセットしたいとします。

「1503」(15時3分)という値だとうまくいき、「0928」(9時28分)という値だと、出力が「928」と前ゼロがとれてしまう場合は、ExcelD17の「セルの書式設定」を見直しましょう。

表示形式が「標準」になっていたら、「文字列」に変更しましょう。

f:id:xoblos:20170125114205p:plain

Designer:2つのxbt/xobファイルを1つにまとめる方法

2つのxbt/xobファイルを1つにまとめる方法
  1. 2つの xbt/xob ファイルを、それぞれダブルクリックして2 Designerで開きます。
  2. コピー元の手順を右クリックし、[手順をコピー] を選びます。手順が複数(2つ以上)ある場合は、Shiftキーを押しながら、該当する複数手順をまとめて選んでからコピーします。
  3. コピー先(別xbt/xobファイル)の挿入したい箇所の手順を右クリックし、[コピーした手順を挿入] を選びます。
  4. コピー先の1つにしたxbt/xobファイルを、名前を付けて保存します。
  5. テスト後、不要になった元の2つのファイルは、バックアップ移動したり削除したりして構いません。 

Designer:制御シートリファレンスマニュアル

xoBlos Designer のマニュアルの中でも、頻繁に参照されるのが「制御シートリファレンスマニュアル」です。 

  • リファレンスマニュアル(Export).xls
  • リファレンスマニュアル(Import).xls

このリファレンスマニュアルは、Designerの [ヘルプ] から参照できます。

xoBlos Designer ヘルプ
https://xobdoc.wiki.zoho.com/xoBlosDesignerHelp/

手順の設定
 ↓
各手順の説明

  • Excel表から抽出」のページ
  • Excel表を生成」のページ

上記各ページの中に「リファレンスマニュアル」への リンクがあります。

 

Designer:AND、OR、NOTとド・モルガンの法則

xoBlosではいろいろな条件を表すキーワードがあります。

Exporter(抽出処理)での「高度なスキップする行の条件」(長い!!汗)や Importer(作成処理)の「高度選択条件」「高度スキップ条件」等ですね。

これらは全て横に並べた条件はANDで、縦に並べた条件はORという原則が適用されます。

で、何が「高度」なのかというと、条件の指定の仕方に全て否定形(NOT)が用意されているというのがあります。例えば Like '%abc%' に対して NotLike '%ABC%'

=(等しい)に対して !=(等しくない)、>= に対して < 等です。

「高度なスキップする行の条件」で E列が30以上で50未満を抽出したくないなら

高度なスキップする行の条件 E1   >= 30   E1   < 50

とすれば良いですね。これは横に並べたからANDです。つまり

(E1 >= 30)  AND  (E1 < 50)

です 。

では、E列が30以上で50未満を抽出したい ならどうしますか?

逆を考えましょう。抽出したい条件を否定したものが抽出しない条件になります。

じっくり考えれば

(E1 < 30)  OR  (E1 >= 50)

とわかるでしょうが、これを機械的にやる方法があります。ド・モルガンの法則を 使うというものです。今、(E1 < 30)のような条件を A とか B で表すことにします。  

また、A の否定を A と表します。ド・モルガンの法則では

A AND BA OR B    { (A AND B) } の否定は{ (Aの否定) OR (Bの否定) } と同じ

A OR BA AND B    { (A OR B) } の否定は { (Aの否定) AND (Bの否定) }と同じ

となります。イメージとしては、全体の否定は各部の否定のANDとORを入れ替えた組合せ になるということです。(簡単ですね!!)

ということで

(E1 >= 30)  AND  (E1 < 50)  は  (E1 >= 30)  OR  (E1 < 50)

となり、(E1 >= 30)の否定は (E1 < 30) で (E1 < 50)の否定は (E1 >= 50)ですから、 結局 (E1 < 30) OR (E1 >= 50) となります。ORは縦に並べるですから

高度なスキップする行の条件 E1   < 30

高度なスキップする行の条件 E1   >= 50

が答えです。

Importer(作成処理)の場合はどうでしょうか?

例えば 年齢が 30以上で50未満のものだけを取込みたいなら、

高度選択条件で (年齢 >= 30) AND (年齢 < 50) としたい訳ですが、Importerでは 「年齢」という項目は一つしかなく、横に並んでいないので値をコピーでもしないと ANDにできません。しかし、Importerには逆の「高度スキップ条件」があります。 またまた、ド・モルガンの出番です。

入力項目名     年齢

高度スキップ条件  < 30

高度スキップ条件  >= 50

とすればOKです。ド・モルガン様々ですね。

 

蛇足、

なぜImporterには「高度選択条件」「高度スキップ条件」があるのに、Exporterには 「高度なスキップする行の条件」しかないのか?その理由の一つがExporterでは同じ 項目(列)が簡単に横に並べてANDを作り出せるからです。Importerでそのようなことを しようと思えば 「取得データの組合せ」または「取得データの切り出し」 を使うことになります。