二つのキーでレコードを特定

昨日は、テーブル内のレコードをMatch関数とIndex関数で参照してみた。
infoment.hatenablog.com

昨日はまだ、品名だけを頼りに単価を求めればよかった。しかし現実は、
そう甘くなかった。
f:id:Infoment:20200609221145p:plain

今回は、こんな価格表。大分類が大まかに、中分類で詳細を区分している。
f:id:Infoment:20200609221637p:plain

大分類だけで判別しようとすると、A001とB001が各々3つあって特定できない。
かといって中分類は意味のない通し番号になっていて、1~3が各々2つあるため、
これまた特定に使用できない。昨日と同様、マクロも使用できない。
さて、どうしたものか・・・。

色々考えたが、スッパリ諦めて、今回は判別用の列を追加することにした。
f:id:Infoment:20200609222107p:plain

この列は、大分類と中分類を単に結合(列記)しただけのもの。
これで、品名と単価を特定してみる。

まず、表示する側に3列追加する。

  1. 大分類
  2. 中分類
  3. 行番号

↓ こんな感じだ。予め、セルには名前をつけておく。
f:id:Infoment:20200609222412p:plain

次いで、大分類と中分類の情報から、テーブル内の行番号を求める。
f:id:Infoment:20200609222755p:plain

これで、テーブルの何行目を参照すればよいか判明した。品名を表示してみよう。
f:id:Infoment:20200609223102p:plain

今回は簡単のため、配列は品名列を決め打ちした。
配列は1列しかないので、何列目か数える必要が無くなった。

最後に、単価も表示して完了だ。
f:id:Infoment:20200609223336p:plain

本当は、価格表のようなマスターに手を加えるのは、あまり好きではない。
しかし、考えても解決方法が見つからなければ、仕方ない。潔く諦めよう。

参考まで。