Excel VLOOKUP関数で大文字小文字を区別する方法

2024年6月13日

English version.

VLOOKUP関数XLOOKUP関数は検索の際に

大文字・小文字を無視して検索してしまうため

意図した結果にならないことがあります。

VLOOKUP関数で大文字小文字を無視して検索してしまう場合のキャプチャ

この記事ではその問題を解決する方法を紹介します。

手順

IF関数SUMPRODUCT関数EXACT関数INDEX関数ROW関数を利用します。

=IF(SUMPRODUCT(EXACT(検索範囲, 検索値)*1)>0,INDEX(表示項目の範囲,SUMPRODUCT(EXACT(索範囲,検索値)*ROW(検索範囲))),"")

検索値VLOOKUP関数の第1引数検索範囲VLOOKUP関数の第2引数(の1列のみ)

表示項目の範囲VLOOKUP関数の第3引数(列番号ではなく列範囲)

考えると理解しやすいでしょう。

大文字と小文字を区別した検索を行う図解

VLOOKUP関数XLOOKUP関数ではこの場合、範囲は3行目から指定すれば良いですが

この数式では必ず1から指定する必要があります。

これにより大文字小文字を区別した検索が行われます。

数式の改善例(LET関数が使える場合)

2020年10月頃にMicrosoft(Office)365で追加された新機能のLET関数を利用すれば

検索範囲のセル指定の重複を除外することが可能です。

これによりセルアドレス指定が一か所になるため、

参照セルを変更する際に場合に変更する手間と間違えるリスクを減らすことが可能です。

=IF(
    SUMPRODUCT(EXACT($B$1:$B$6, E3)*1)>0,
    INDEX($C$1:$C$6,SUMPRODUCT(EXACT($B$1:$B$6,E3)*ROW($B$1:$B$6))),
    ""
)

↑改善前 ↓改善後(名前と改行、インデントは任意です)

=LET(
  検索範囲,$B$1:$B$6,
  表示項目の範囲,$C$1:$C$6,
  検索値,E3,
  IF(
     SUMPRODUCT(EXACT(検索範囲,検索値)*1)>0,
     INDEX(表示項目の範囲,SUMPRODUCT(EXACT(検索範,検索値)*ROW(検索範囲))),
     ""
  )
)

表示項目の範囲は重複していないためLET関数で名前を付ける意味は低いですが、

セル範囲の意図を明確にするために名前をつけています。

Excel完全マスター: 関数・テクニック・新機能を網羅した決定版ガイド

本書は、Excelの基礎から応用まで、包括的に学べるガイドブックです。当サイトの豊富な情報を、電子書籍向けに最適化し、読みやすく再構成しました。

【本書の特徴】

  • 情報量:Word-A4サイズ換算で1,400ページ相当
  • 基本操作から高度なテクニックまで、段階的に学習可能
  • 140種類の関数を詳細に解説
  • 109種類の実用的なテクニックと具体例を紹介
  • 最新機能(XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピル等)を徹底解説

【対象読者】

  • Excel初心者からプロフェッショナルまで
  • 体系的にExcelスキルを向上させたい方
  • 業務効率化を目指すビジネスパーソン
  • データ分析や可視化のスキルを磨きたい方

【本書の強み】

  • 実務に即した例題と解説
  • 視覚的な図表やスクリーンショットで理解を促進
  • 最新のExcelバージョンに対応した内容
  • 著者の長年の経験に基づく、実践的なTipsを多数収録

【更新とサポート】

  • 常に最新の情報を反映するため、定期的に内容を更新
  • 最新版の入手方法:Amazonカスタマーサポートへお問い合わせください

【入手方法】

  • 買い切り:950円
  • Kindle Unlimited:読み放題プランで利用可能

Excelマスターを目指す方、業務効率を劇的に向上させたい方に、自信を持っておすすめできる一冊です。この1冊で、Excelの可能性を最大限に引き出す力が身につきます。

関連記事