0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

excel で配列を用いて複数条件 100% match 検索

Posted at

office 2010 の excel

LOOKUP

これはそもそも、ダメ。日本語が混った時とか。

=lookup("あ",{"foo","bar"},{1,2})

これで、#N/A とならず、 2 となる。
そもそも学校の先生の点数範囲でランク付けとか、そこらで使うっぽい。

choose & match

=choose(match("あ",{"foo","bar"},0),1,2)

これは、完全一致が保証

んで。

複数条件の完全一致で、文字列を返す時とか。

val は uniq だとして。

key1 key2 key3 val
foo bar buz 1
bar buz foo 2
buz foo bar 3

の判定表の元

A1 B1 C1 D1
foo bar bar
bar buz bar
buz foo bar

を判定させたい場合

=CHOOSE(MATCH(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),0,−3)&OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),0,−2)&OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),0,-1),{"foobarbuz","barbuzfoo","buzfoobar"},0),1,2,3)

を、D2D3D4にペーストすればいい。存在しないものは、きちんと #N/A になってくれる。

INDIRECT(ADDRESS(ROW(),COLUMN())

は自身のアドレスの参照を取得。なぜ参照かと言うと OFFSET が参照を要求するから。
で、

OFFSET(ADDR,0,-3)

は ADDR から三つ左隣りのデータを取得。で、& で連結して検索文字列作成。と。

もちろん上記では、例えば 1,12,1 と11,2,1 がマッチしてしまうので、必要があれば、それなりのセパレータを挟んでやる必要有り。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?