プロが教える店舗&オフィスのセキュリティ対策術

ーー[A列] [B列][C列][D列]
[1] 10  りんご  1  王林  
[2] 20  ぶどう  1  巨峰
[3] 10  りんご  2  紅玉
[4] 40  メロン  1  夕張
[5] 10  りんご  2  紅玉
[6] ・・・ 

A列 大分類
B列 大分類名
C列 小分類
D列 小分類名

求めたいのは【D5】で、
A列(10)とC列(2)の組合せで上位行に該当するものがあれば、該当行(3行目)のD列(紅玉)の値を取得する式の書き方を教えてください。

A 回答 (3件)

》 上位行に該当するものがあれば、…の値を取得する


該当するものがなければ、どうする、どうする?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
該当がない場合は空欄でOKです。
私の説明足らずで申し訳ありませんが、大分類名はvlookupでマスタから取得しており、小分類名はマスタ化せずに上位に大分類+小分類の組合せで合致するものがあれば小分類名を取得したいです。

お礼日時:2017/10/30 10:51

こんばんは!



一例です。
↓の画像のように元データはSheet1にあり、Sheet2のB1・B2セルに大分類・小分類の番号?を入れるとします。

Sheet1に作業用の列を設けるのが簡単だと思います。
作業列E2セルに
=IF(AND(A2=Sheet2!B$1,C2=Sheet2!B$2),ROW(),"")

という数式を入れこれ以上データはない!というくらいまで下へフィル&コピーしておきます。

そしてSheet2のB3セルに
=IF(COUNTBLANK(B1:B2),"",IF(COUNT(Sheet1!E:E),INDEX(Sheet1!D:D,MIN(Sheet1!E:E)),"該当名なし"))

という数式を入れています。m(_ _)m
「2つのセルの値をセットで検索して該当する」の回答画像2
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
わたしの書き方が悪かったのですが、前提として大分類名はマスタ化した別sheetからvlookupで取得しており、小分類はマスタ化せずに、随時入力されたデータの中で大分類(A列)と小分類(C列)で一致したものから小分類名(D列)を取得したいというものでした。
もう少し頑張ってみます!

お礼日時:2017/10/30 10:45

No.2です。



>随時入力されたデータの中で大分類(A列)と小分類(C列)で一致したものから小分類名(D列)を取得したいというものでした。

すなわち、A~C列の順にデータ入力していき、以前に出現したデータがあれば
それを表示する!というコトでしょうか?

D2セルに
=IF(COUNTIFS(A$1:A1,A2,C$1:C1,C2),INDEX(D$1:D1,MIN(IF((A$1:A1=A2)*(C$1:C1=C2),ROW(A$1:A1)))),"")

配列数式なのでCtrl+Shift+Enterで確定! → D2セルのフィルハンドルでずぃ~~~!っと下へコピー!

※ ただ、これではA~C列入力時にD列が空白の場合、ご自身でデータを入力する必要があります。
そして、D列入力時に数式そのものが消えてしまうのですが、
こんな感じをお望みだったのでしょうか?

もしそうであれば数式で処理!というよりVBA向きの質問になるような気がします。

解釈が違っていたら無視してください。m(_ _)m
    • good
    • 0
この回答へのお礼

tom04さま
ご回答ありがとうございます、上記の記述でやりたかったことができました!
普段vlookupくらいしか数式を使っていないため苦戦しておりました。。
空白の場合は手入力で補完し、それを以て次行以降のデータベースになるということがしたかったので、まさにこれでした。
本当にありがとうございました。

お礼日時:2017/10/31 01:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!