今回は「Excelデータ抽出」について。
前に行った「Excelデータ取得」と同じようだが、この「・・抽出」の方は同じブック内にあるデータについて扱う。
これまでの項目式作成では、元データの項目を選択してきたが元データにない項目も作成できるのでそれを操作してみる。
まずデータをシート(825演習)のセルB16(項目名)から入力した。
「Excelデータ取得」ボタンのダイアログで元データ範囲を指定してから(項目式作成)をクリックして作成画面を表示する。
先に作成画面の入力内容をみてもらうと下図の通り。
左の元データの項目を右に選択するのだが、移送前のカーソル位置で元データに存在しない項目目を入力することができる。ここでは(社員コードと商品コード)という項目名を3行目に入力した。
既に(社員コードと商品コード)に対する式(=B17&C17)が図の下に見えているが、これはB列とC列をつなげたものをこの項目の値とするという指定だ。
順番としては先に図左下の項目名のチェックボックスをチェックすることで入力できるようになる。このように元データにはない項目を作ることができる。
シート名(%SHEET%)、ファイル名(%FILE%)、セル参照(%CELL=セル%)も参照できるように変数が用意されている。
他にVLOOKUPなどの関数を使うことができ、別に用意したマスタテーブルから値を参照し表示できる。
ただし、この部分は直接元データの開始位置(見出し行を除く)を入力することになるので、今回のようにセルB16から始めず、A1などわかりやすいセル位置とした方がよい。
例えば、元データを利用して社員マスタを参照し、社員名と所属名を表示させるときの式は以下の通り。

(関数名の大文字・小文字は関係ない)
ここでは、社員マスタについて(社員マスタ)と名前を定義している。(ややこしいが)
(社員マスタのイメージ)
出力項目は元データから選択した社員コードと、項目作成した社員名、所属名の3項目とした。
その出力結果が次の通り。
元データからそのまま抽出したので全件(内容が同じ行)が表示されている。
ここで関数式に戻ると、社員名の式は等号(=)が1つで、所属名の式は等号が2つある。
この違いは、等号が1つの場合は入力した式が出力セルにも設定され、2つの場合は結果の値のみ表示される違いだ。
行数が多いと関数でシートが重くなることもあるから基本は2つの等号で値の表示とする方がよいと思う。
因みに等号を入力するときは、先頭に半角でアッパーカンマ(')を付ける。
式を表示する形式で上の出力結果を再表示すると以下のようになる。
(参照する行が自動的に展開された式が作られている)
社員名は式が設定されているが、所属名には値が入っている。
以上。
PR