『複数列の検索と抽出』(あたふた初心者)
エクセルの検索についての質問です。
「社員マスタ」というシートに、A列から順に社員番号、氏名、生年月日、所属等の従業員のデータが登録されており、K列に保有している資格名、L列にその資格の有効期限、さらにM列に資格名、O列に有効期限、、、と続き、資格を登録できる列がKからACまで計10列、その右の列にそれぞれの有効期限が入力されています。(このデータは、テーブルとして設定してあります)
別シート(検索シート)のB2に入力した資格名を検索値として、「社員マスタ」シートを検索し、検索値の資格を持っている社員を抽出し、社員名と有効期限、所属を検索シートに一覧として表示させたい。
社員によって保有している資格の数も種類も違うため、資格名が入力されている複数の列を検索範囲に指定しなければいけないのですが、FILTER関数が使えず、クエリに関しても全く知識がないため検索してみましたが答えにたどり着けません。
説明がわかりにくくて申し訳ないのですが、詳しい方にご教示いただけますと幸いです。よろしくお願い致します。
< 使用 Excel:Excel2019、使用 OS:Windows11 >
AE2セルに =COUNTIF(K2:AC2,検索!B$2)+AE1 (AE1セルは0) ↓コピペを作業列とすると 検索値とマッチする行は 1・2・3・・とカウントアップするので MATCH関数の検索値をROW(A1) 検索範囲をAE列で取得した行番号を INDEX関数で検索する (はてな) 2025/07/07(月) 17:13:15
(匿名)様、質問時のマナー違反、大変失礼いたしました。
ご指摘いただきましてありがとうございます。
次回利用させていただく際にはサンプルデータの添付を忘れないようにいたします。
(あたふた初心者) 2025/07/08(火) 08:18:15
社員マスタシートのAE列、検索シートのJ列を作業列にする。
社員マスタシートのAE2 =IF(COUNTIF(K2:AC2,検索!$B$2),ROW(),"") 下にコピー
検索シートのJ2 =IFERROR(SMALL(社員マスタ!AE:AE,ROW(A1)),"") 下にコピー
検索シートに抽出 社員名:=IF(J2="","",INDEX(社員マスタ!B:B,J2)) 所属 :=IF(J2="","",INDEX(社員マスタ!D:D,J2)) D列で合ってる? 期限 :=IF(J2="","",INDEX(社員マスタ!L:AD,J2,MATCH($B$2,INDEX(社員マスタ!K:AC,J2,0),0))) 期限は表示形式を日付に 3列とも下にコピー
(?!) 2025/07/08(火) 11:01:01
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.