June 13, 2015

ExcelのMATCH関数が原因不明のエラーを返す、上手く動かないに確認すること

ちょっとしたデータベースをExcelで処理する場合の定番の関数といえば、VLOOKUP、HLOOKUPや、MATCHとINDEXの組合せとなってくるわけですが、最近ちょっとハマッた事例があったのでメモにしておきます。

1. MATCH関数の第3引数のmatch_typeが省略されていないか

通常、IDを検索するような場合では0を指定すると思うのですが、厄介なのが指定を忘れて引数を省略してしまった場合であっても、関数としては機能してしまう場合がある、ということです。
本来、検索されるはずのIDがMATCHで検索されない場合、期待される結果が返ってこない場合には、match_typeのフラグを確認する必要がありそうです。

2. 数字のみで構成されるIDがMATCHで上手く検索することができないケースではないか

IDには、00098、11022など数字のみで構成されるものも良くあるかと思うのですが、普通にExcel上の検索機能では検索されるにも関わらず、MATCHで検索されない場合があります。どうもセルの書式の自動認識が悪さをしているようです、コピーして値のみ貼り付け、や、セルの書式設定から文字列を指定したところで、問題は解決されません。
解決方法の一つが、TEXT関数を使って強制的にセルの値をフォーマットしてやることです。たとえば、A1に00010と書いてあったとして、B1に=TEXT(A1, "00000")と入力してやれば、強制的に5桁のテキストからなるIDであることをExcelに認識させることができます。
この処理を行い、B列についてMATCH関数を適用すると問題なく検索できるかと思います。その場合も、上の項目で書きましたが第3引数のmatch_type=0の設定をお忘れなく。

No comments :

Post a Comment