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 B は A OR B { (A AND B) } の否定は{ (Aの否定) OR (Bの否定) } と同じ
A OR B は A 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でそのようなことを しようと思えば 「取得データの組合せ」または「取得データの切り出し」 を使うことになります。