Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2016)
データの抽出について
投稿日時: 24/08/01 19:05:06
投稿者: そーまん

初めまして
Excelのデータ抽出を関数のみで行いたいです
別のシートを使うことなど、作業用の列追加などはしたくないです
やりたいことが完全に理解できておらず、下手な質問で申し訳ないです。
 
A列は登録日
B列は番号
C列は種類(1,2)
D列は決定日
E列は抽出先
 
A列の登録日はB列の番号ごとに入力されていて種類1,2存在します
その登録日は種類1,2で別の日付です
 
B列の番号は同じ物が複数存在します
(種類1,2で違う日付)
 
D列の決定日は種類1のA列登録日が抽出されています
 
今回聞きたいのは、
種類2のA列登録日を、D列の決定日が入力されているB列番号を使い
E列に抽出したいです
D列に決定日が入ってない時は、種類2の日付をそのまま抽出です
 
ざっくり言うとA列登録日を、種類1の日付が書かれてるD列決定日が入力されている時の
番号の時に、種類2の登録日をE列に抽出したいということです
 
説明が下手で本当に申し訳ないです、不明な点を送ってくださればお答えします
書いてる途中でも頭が混乱してしまいました
 
1行目はタイトルが入ってます、データは1000件ほどあります
A列(登録日)   B列(番号)  C列(種類)   D列(決定日)  E列(抽出先)
2024/01/01     500     1   2024/01/01
2024/01/02       600      2             2024/01/02
2024/01/02     600       2             2024/01/02
2024/01/01     600       1    2024/01/01   2024/01/02
 
 

回答
投稿日時: 24/08/01 20:05:24
投稿者: んなっと

途中で面倒になってしまいましたね?
この質問文では理解不能ですので、適当に回答します。
 
    A   B   C    D    E
1 登録日 番号 種類 決定日 抽出先
2   1/1  500   1   1/1    
3   1/2  600   2       1/2
4   1/2  600   2       1/2
5   1/1  600   1   1/1   1/2
 
E2
=IF(D2="",A2,IFERROR(INDEX(A$2:A$2000,MATCH(1,(B$2:B$2000=B2)*(C$2:C$2000=2),0)),""))
下方向・↓

投稿日時: 24/08/01 22:05:13
投稿者: そーまん

んなっとさん、回答ありがとうございます。
 
いま手元にデータが無いので仮のデータを作り試してみたところ、希望通りのものでした。
明日実際のデータで試してみるのが楽しみです。
このような私自身でも理解できていない問題に的確な回答をくださりありがとうございます。
 
明日上手く動作せず自分でもどうしようもなくなってしまったら、
しっかり内容を整理した上でもう一度質問してもよろしいでしょうか?

回答
投稿日時: 24/08/02 09:54:13
投稿者: んなっと

引用:
やりたいことが完全に理解できておらず
私自身でも理解できていない問題

考えられる複数のパターンを含む、「豊富な具体例」を添えて質問文を作成してください。
あまり経験がないのかもしれませんが、他人に質問する時に手を抜かないように。

投稿日時: 24/08/02 19:10:04
投稿者: そーまん

お疲れ様です
んなっとさんの書いてくださったものを自分なりに改良した結果上手く動作しました。
配列数式というものを使ってみました
 
んなっとさんのおっしゃる通りこちらが聞く立場なのに手を抜いてしまい申し訳ございません
次回質問することがある際は気をつけます。
 
この度は回答してくださりありがとうございます!