
Excel 関数 一度抽出された値を検索対象から外すには?
Excelの関数について教えて頂きたいことがあります。例えばある検索範囲があり、vlookupか何かで対象の値を引っ張ってきたいのですが、検索値に対象となる値が複数ある場合、一度抽出された値を検索範囲から外し、次のvlookupではそれ以外の対象となる検索値から値を引っ張る、そしてそのまた次のvlookupでは既に抽出された2つの値を対象から外し検索値を探す、そしてそのまた・・・といったような関数の設定は可能でしょうか?
もう少し詳しく状況を説明しますと、日付の"年"と"月"を検索値とし、範囲に該当する値が複数ある時に(仮に検索値を"2010年3月"とし、検索範囲の中に2010年3月1日、2010年3月8日、2010年3月15日を=year()&"/"&month()で表示させた値がある場合)、=vlookup("2010年3月",A:B,2,false)でまず一つ目を抽出し、次のvlookupでの検索の時に一つ目を検索対象から外して再度検索させ、さらに次では一つ目と二つ目を検索対象外として検索させたい、と考えています。
どなたかこのような関数の組み方をご存知の方、教えて頂きたく思います。別にvlookupにはこだわりませんので、近い方法でもいいのでどうぞ宜しくお願いします。
No.1ベストアンサー
- 回答日時:
3月のデータがたくさんあるときにVLOOKUP関数を使ってそのようなことをするには複雑な式になってしまうでしょうし、データがたくさんになれば対応ができません。
同じ月のデータがあるときにそれを抽出するためには次のようにすればよいでしょう。例えばA列の2行目から下方に日付が、B列の2行目から下方には=IF(A2="","",YEAR(A2)&"/"&MONTH(A2))の式で下方にオートフィルドラッグコピーしたものが表示されているとします。また、C列には別の項目のデータが例えば氏名が入力されているとします。
作業列を使って対応するのが簡単です。
例えばE2セルには次の式を入力して下方にオートフィルドラッグします。
=IF(B2="","",B2&COUNTIF(B$2:B2,B2))
そこで例えば2010年3月のC列にあるデータを抽出したい場合にはVLOOKUP関数の代わりに次のような式を入力して、下方にオートフィルドラッグします。
=IF(COUNTIF($E:$E,"2010/3"&ROW(A1))=0,"",INDEX($C:$C,MATCH("2010/3"&ROW(A1),$E:$E,0)))
これで2010年3月のデータを連続して抽出し、表示させることができます。
No.5
- 回答日時:
こんばんは!
外していたらごめんなさい。
↓の画像でとりあえず二段階で検索条件以外のものを表示させるようにしてみました。
E1セルの「3月」は3/1のシリアル値を入れて、
表示形式をユーザー定義から m"月"としています。
まず、E2セルに
=IF(SUMPRODUCT(($A$2:$A$100<>"")*(MONTH($A$2:$A$100)<>MONTH($E$1)))<ROW(A1),"",INDEX(A$2:A$100,SMALL(IF(MONTH($A$2:$A$100)<>MONTH($E$1),ROW($A$1:$A$99)),ROW(A1))))
これは配列数式になってしまいますので、
この画面からE2セルにコピー&ペーストしただけではエラーになると思います。
貼り付け後、F2キーを押す、又はE2セルをダブルクリック、又は数式バー内で一度クリックします。
編集可能になりますので Shift+Ctrl+Enterキーで確定してください。
数式の前後の{ }マークが入り配列数式になります。
これを列方向と行方向にオートフィルでコピーします。
同様に第二段階の元データがこの表になりますので
H2セルに
=IF(SUMPRODUCT(($F$2:$F$100<>"")*($F$2:$F$100<>$H$1))<ROW(A1),"",INDEX(E$2:E$100,SMALL(IF($F$2:$F$100<>$H$1,ROW($A$1:$A$99)),ROW(A1))))
これも配列数式ですので、Shift+Ctrl+Enterキーで確定です。
この数式を列方向と行方向にオートフィルでコピーすると
画像のような感じになります。
尚、エラー処理はしていません。数式は最初のデータの100行目まで対応できるようにしていますが
データ量によって範囲指定の領域はアレンジしてみてください。
以上、長々と書きました。
参考になれば良いのですが
的外れなら読み流してくださいね。m(__)m

No.4
- 回答日時:
データの検索ではなく、条件にあったデータの抽出(一覧表の作成)といったことでしょうか。
もう少し、補足していただければ別案が出ると思います。
1、データは日付順に並んでいるのでしょうか?
2、同じ日付のデータがいくつもあるのか、日付はひとつづつなのか?
といったところです。
仮に、データが日付順でれば
データシートに(シート名 データ)
A B
日付
2000/1/1
・・・
2010/3/1
2010/3/8
2010/3/15
・・・・
2010/4/2 と並んでいるとして
別シートの A1に 2010 と年の数値、B1に 3 と月の数値を入れているとして
表示したいセルに
=INDEX(データ!A:A,MATCH(DATE(A$1,B$1,0.5),データ!A:A)+ROW(A1))
いれて下へコピィしてみてください。
参考ですのでエラー処理や空白の処理はしていません。
まずは式の意味を理解して応用してください。
No.3
- 回答日時:
現在エクセルを操作できない環境なので考え方のみの回答になりますが
1)vlookupを利用する場合、検索範囲を絶対値で指定せずにoffset関数等を利用して検索範囲を狭めていく
・元データーにrow関数を利用して行番号を設置、vlookupで取得した時に行番号も一緒に取得、次の検索範囲は直前に取得した行番号+1行から下を検索範囲と指定
2)オートフィルターを利用して必要データーのみを抽出してコピーして貼り付け
3)マクロを作成
・2の操作をマクロ化するのが簡単です
No.2
- 回答日時:
先ほどはC列だけのデータを表示させる方法ですが例えばC列とD列のデータを表示させるのでしたら、最後の式は次のようになりますね。
=IF(COUNTIF($E:$E,"2010/3"&ROW(A1))=0,"",INDEX($C:$D,MATCH("2010/3"&ROW(A1),$E:$E,0),COLUMN(A1)))
この式をあるセルに入力した後で右横方向に1列だけオートフィルドラッグコピーしたのちに下方にもオートフィルドラッグコピーします。
ご回答どうもありがとうございました。
Countifやindexとmatch関数の組み合わせの勉強になりました。これで作成したかったシートも出来そうです。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Excel(エクセル) Excelの関数についての質問です。(vlookup関数) A列 B列. C 1 大阪 50. 検索 6 2023/08/11 13:35
- Excel(エクセル) Excelで関数を使って入力した値を、関数を抜いた値として扱いたい 1 2022/07/08 02:10
- Excel(エクセル) Excelについて質問です。 シート1の検索値例えば *ABC* をシート2.3.4から検索して、シ 5 2023/02/17 23:30
- Excel(エクセル) Excel_マクロ_複数のシートのVLOOKUPで表示された#N/A以外に色付けをしたいです 1 2023/02/16 22:37
- Excel(エクセル) VLOOKUP関数についての質問です。検索値に数式が入っていた場合エラーが出るのでしょうか?また、対 3 2023/07/07 19:07
- Excel(エクセル) エクセルのvlookupについて質問です 3 2023/01/05 15:15
- その他(Microsoft Office) EXCEL VLOOKUPに関する質問 5 2023/02/08 11:38
- Excel(エクセル) ExcelのVLOOKUP関数 7 2022/08/23 06:46
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELのVBAで複数のシートを追...
-
オートフィルターの絞込みをし...
-
勤怠表について ABS、TEXT関数...
-
【マクロ】【画像あり】関数が...
-
空白のはずがSUBTOTAL関数でカ...
-
Excelで4択問題を作成したい
-
エクセルについて
-
エクセルシートの見出しの文字...
-
【Officer360?Officer365?の...
-
エクセルの複雑なシフト表から...
-
Excelに貼ったXのURLのリンク...
-
グループごとの人数のカウント
-
グループごとの個数をカウント...
-
ページが変なふうに切れる
-
エクセル
-
エクセル ドロップダウンリスト...
-
グループごとの人数のカウント
-
エクセル GROUPBY関数について...
-
特定のセルだけ結果がおかしい...
-
VBA チェックボックスをオーバ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報