オフィスソフト

「Excel」の列内で条件に一致する最後の値を探す--関数やフィルターを使う解決策

「Excel」の列内で条件に一致する最後の値を見つけるのは、難しいと思えるかもしれない。動的ではないが簡単に実行できる解決策と、多少手間はかかるものの動的な解決策を紹介する。

 仕事を片づけるために面倒な手順を踏みたいという人はいないが、単純な解決策を見つけられないこともある。手軽で簡単な答えがない場合は、やむを得ないと考えて、複雑な配列関数やコードに頼ることが多い。その好例が、列の最後の値を条件付きで返そうとするケースだろう。これは、条件に一致する行が最後の行とは限らないためだ。その条件を加えると、複雑さが格段に増すように思える。本記事では、実際に機能する簡単な方法をいくつか紹介するが、それらは優れた解決策ではない。その後、もう少し手間がかかるが、より動的な解決策を紹介する。

 筆者は「Windows 10」の64ビット版システムで「Microsoft 365」を使用しているが、古いバージョンを使っても構わない。作業用のデータは自分で用意してもいいし、デモ用の.xlsxファイルと.xlsファイルをダウンロードしてもいい。ただし、動的な解決策に必要なテーブルオブジェクトは、メニューバージョンではサポートされていない。本記事では、フィルタリングや関数の入力など、基本的なExcelスキルをすでに習得している前提で説明を進める。本記事の内容はブラウザー版でもすべて実行可能だ。

「最後」という用語の定義

 「最後」という言葉の意味は誰もが知っているが、データという文脈で定義することが重要だ。これはデータセット内で最後に一致するレコードという意味なのか。最も新しい日付を意味するのか。それとも、最も少ない値のことなのか。本記事のシンプルなデータセットを見ると分かるように、これら3つの質問の答えがすべて「はい」である可能性がある(図A)。

図A

「最後」という言葉の意味は、データやユーザーのニーズによって異なる。
「最後」という言葉の意味は、データやユーザーのニーズによって異なる。

 実際のところ、最も少ない値と日付の値の場合は、最小値を探すことになり、最後の値と同じとはいえないため、この2つは除外して構わない。したがって、残るのは、条件に一致する最後のレコードだ。

単純だが動的ではない解決策

 AcmeとABC, Inc.という2社のベンダーがある。各社について、データセット内で最後のレコードの日付と請求額を求めたいとしよう。VLOOKUP()の使用を考えるかもしれないが、この関数が返すのは最初に一致する値だ。最後に一致する値をVLOOKUP()に探させる方法はない。

 この問題は、データを操作すれば簡単に解決できる。レコードの順序を逆にして、VLOOKUP()を使用すると、データセットの順序が逆になっているので、最後の(最初の)レコードが見つかる。レコードの順番を逆にするには、ヘルパー列に続き番号を入力するのが最も簡単だ(図B)。

図B

続き番号のヘルパー列を追加する。
続き番号のヘルパー列を追加する。

 次に、日付と請求額を返すVLOOKUP()関数を追加しよう(図Bを参照)。2つのルックアップ関数があるが、それらの違いは戻り値の列だけだ。

G3: =VLOOKUP($F3,$B$3:$D$18,3,FALSE)

 

H3: =VLOOKUP($F3,$B$3:$D$18,2,FALSE)

 

「オフィスソフト」で読まれている記事

TechRepublic Japanで人気の記事

編集部オススメ

トレンドまるわかり![PR]

財務・経理
人事・労務
マーケ・営業
購買・調達
生産・製造
データ分析
コミュニケーション
通信・通話
文書・コンテンツ
PC・モバイル
PC
スマートフォン
タブレット
ウェアラブル
オフィスソフト
OCR
RPA
PCソフト
周辺機器
新興技術
ITインフラ
クラウドサービス
OS・ミドルウェア
開発
データベース
運用
セキュリティ

ホワイトペーパーランキング

  1. マンガでわかる「ルール駆動開発」レガシーモダナイズを成功させる開発手法を基礎から理解する
  2. 5分でわかる、レポート作成の心得!成果至上主義のせっかちな上司も納得のレポートとは
  3. APIエコシステムを狙うサイバー攻撃が急増、Webアプリにおける最新のAPIセキュリティ対策とは?
  4. クラウドやコンテナ利用が増える中、世界の企業が利用するAPI経由の安全なアプリ構築手法とは?
  5. ウェビナーによる営業活動が本格化、顧客接点が増加する一方で見えてきたハードルと解決策とは?

Follow TechRepublic Japan

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]