質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%

Q&A

解決済

4回答

2827閲覧

VlookUPの集計方法について

ARU_Wing

総合スコア13

0グッド

0クリップ

投稿2016/07/19 07:08

編集2016/07/19 07:11

シート1
1 2 3
A 条件1 条件2
B PPP/AAA
C PPP/BBB
D PPP/CCC

シート2

A PPP/AAA 条件1
B PPP/BBB 条件2
C PPP/CCC 条件2
D PPP/AAA 条件2

上記のようなエクセル表があった場合、
シート2に沿って、シート1の各欄に●を入れていきたいのです。
PPP/AAAであれば、条件1、2の双方に●がつく感じです。
データ量が多いので、関数で処理したいのですが、VLOOKUPでは、
検索結果を記号で表示する方法がわからずなのです。。。

もし、よろしければ、よい式などありましたら教えてください!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

countifs

投稿2016/07/19 07:38

matobaa

総合スコア2493

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

VLookUpを使うには…

VLookUpを使う条件の一つに、検索範囲(マスタデータ)が検索列(左端列)でソートされていること、というものがあります。

質問中でマスタにしようとしているデータは
A PPP/AAA 条件1
B PPP/BBB 条件2
C PPP/CCC 条件2
D PPP/AAA 条件2
というものなので、この状態ではVLookUpは正常に機能しません。

①条件1検索用
PPP/AAA 条件1

②条件2検索用
PPP/AAA 条件2
PPP/BBB 条件2
PPP/CCC 条件2

のようなソーティングをしておく必要があります。

余談ですが、マスタデータとして最も使いやすいであろう形は
PPP/AAA 条件1 条件2
PPP/BBB --- 条件2
PPP/CCC --- 条件2
のような形だと思いますが、今回はこの形をつくることが目的なので、これを事前に用意するのでは本末転倒になってしまいますね(^-^;

VlookUp検索結果を記号にする方法

他の方々からVLookUpを使わない対応方法が提示されていますので、私からはVlookUpを使った方法をご紹介したいと思います。
VLookUpを使いますので、マスタデータは事前に①、②のようにソートされていることが前提になります。

ここではシート2のA~B列に①条件1検索用マスタ、C~D列に②条件2検索用マスタが用意されているものとします。

(A、B列)
PPP/AAA, 条件1

(C、D列)
PPP/AAA, 条件2
PPP/BBB, 条件2
PPP/CCC, 条件2

条件1のセルには
=IF(ISNA(VLOOKUP(A2,Sheet2!A:B,1,FALSE)),"","●")

条件2のセルには
=IF(ISNA(VLOOKUP(A2,Sheet2!C:D,1,FALSE)),"","●")

のような式を記述することで空欄もしくは○が記入されます。

少し解説すると、この式のポイントはVLookUpの第4引数をFALSE(完全一致)としているところです。
近似値を取得しないため、マスタに見つからないものは必ずN/Aエラーが返されます。

IsNAでこれを判定することでマスタ存在有無を判断しています。

参考になれば幸いです。

投稿2016/07/19 10:53

編集2016/07/19 10:59
jawa

総合スコア3013

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

簡単にさくっとやるとこんな感じ
もっといいやり方もありそう

シート2に列を追加(C列とする)
C列の内容はA列とB列を結合したもの

=A2&B2

シート2

シート1の計算式

条件1側

=IF(ISERROR(VLOOKUP(シート1!$A2&シート1!$B$1,シート2!C2:C5,1,FALSE)),"","○")

条件2側

=IF(ISERROR(VLOOKUP(シート1!$A2&シート1!$C$1,シート2!C2:C5,1,FALSE)),"","○")

シート1

要は、条件に当たらなかった時にN/Aが返るのを利用して、ISERROR関数でエラーを処理してやればいい

投稿2016/07/19 07:59

dojikko

総合スコア3939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

matobaaさんのcountifsを使うのがわかりやすくて良いと思いますが、別の方法も紹介しておきます。
B2セルに以下を設定

=IF(SUMPRODUCT((Sheet2!$A:$A=Sheet1!$A2)*(Sheet2!$B:$B=Sheet1!B$1))>0,"●","")

他のセルにはコピペしてください。

投稿2016/07/19 07:52

ttyp03

総合スコア16996

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問