[[20170127164531]] 『2つのリストの2項目が完全合致する時にフラグを』(うましお) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『2つのリストの2項目が完全合致する時にフラグをたてたい』(うましお)

こんにちは

同一シート上で2つのリストが表示されており(仮にリストA、B)それぞれのリストの2列分の情報が合致している時だけフラグを立てたいのですがどのようにすれば宜しいでしょうか?

リストA…A〜Iまで使用。利用するのはF列とH列。

リストB…L〜Qまで使用。利用するのはP列とQ列。

リストAのF列とリストBのP列が同じ項目。(ex:商品名)
リストAのH列とリストBのQ列が同じ項目。(ex:価格)

2つのリストの商品名と価格が合致する(F&H=P&Q)の条件のときだけS列に○と出したいです。同じ商品名で価格が異なるケースもあるため単にF=Pと出来ません。条件付き書式の利用やVlookup、countifなど検討してみましたが上手く出来ませんでした。お分かりになる方いらっしゃいますでしょうか?

< 使用 Excel:Excel2013、使用 OS:Windows7 >


 =IF(AND(F1=P1,H1=Q1),"○","")
 ということか?

 それとも
 =IF(COUNTIFS(P:P,F1,Q:Q,H1),"○","")
 だろうか?

 前者は同じ行の場合。

 後者は行が違ってもいい場合。

(ねむねむ) 2017/01/27(金) 17:08


どうもありがとうございます!
=IF(COUNTIFS(P:P,F1,Q:Q,H1),"○","")で出来ました!

ちなみにこれは、○の時にリストBの合致した行の別のセル情報を書き出すという事は出来るものなのでしょうか?

Ex)F1&H1の値が=P:P,Q:Qで検索した際にP10,Q10でヒットした際に、結果に○表示&その隣のL10情報(リストBでの管理番号など)を書き出す

(うましお) 2017/01/27(金) 18:04


 リストB の値であれば =IF(COUNTIFS(P:P,F1,Q:Q,H1),"○"&L1,"") でいいのでは?

(β) 2017/01/27(金) 19:02


 確認だけ

 Q1)リストBに「同じ品名、同じ価格」の組み合わせは、あったとしても一か所にしかないのか?
     複数あったらどうするのか?

 Q2)L列のデータは数値、文字列のどちらなのか?

 とりあえず以上です。
(笑) 2017/01/27(金) 20:24

ありがとうございます。

リストAのF1,H1に相当するものをリストBのPQから探し出し、一致時に○&リストBの合致したPQと同じ行のLを抽出するとなるとL1の指定ではないように感じますがいかがでしょうか?

Q1⇒リストBに同じ品名、同じ価格の組み合わせは基本的には1箇所ですが複数個所出る可能性もあります。複数あった場合はリスト全体からみれば数自体は少ないのでリスト内から候補を搾り込むといった程度の検索意識で使用し、目視で比較する予定です。

Q2⇒L列は文字列です。
(うましお) 2017/01/28(土) 00:05


 >>リストBの合致したPQと同じ行のLを抽出するとなるとL1の指定ではないように感じますがいかがでしょうか? 

 リストB側のL列の値ですよね。つまり ○が付いた、その行のL列ですよね?
 であれば L1 でいいと思いますが?

 それとも、PQと合致したFHの、その行のL列の値ということでしたか?

 ★ あっ! 勘違いしてました。 チェック元が FH ですから FH基準に、合致した行のL列でしたか。

   失礼しました。

  で、専門家さんなら通常数式で可能でしょうけど、関数不得意なので配列数式になりました。

 =IFERROR("○"&INDEX(L:L,MATCH(F1&H1,$P$1:$P$100&$Q$1:$Q$100,0)),"")

 これを Ctrl/SHift/Enter で入力して下にフィルコピー。

(β) 2017/01/28(土) 07:57


 複数あっても、どれかひとつだけ表示すればいいということ?

 どっちにしても ○ じゃなく、何個あったかという件数を表示させた方がいいのでは?

 S1 =COUNTIFS(P:P,F1,Q:Q,H1)

 表示形式〜ユーザー定義を # にして「0」を非表示にする

 ■ L列の値表示(T列に表示)

 作業列を使ってもいいのなら、基本的な INDEX 〜 MATCH の組み合わせで可能。

 作業列を使わないのなら、一例ですが、

 T1 =IF(S1=0,"",LOOKUP(1,0/(($P$1:$P$100=F1)*($Q$1:$Q$100=H1)),$L$1:$L$100))

 普通にEnterだけで確定

 または ↓ とすれば、複数あった場合、うしろに「(他n件)」と表示する。

 T1 =IF(S1=0,"",LOOKUP(1,0/(($P$1:$P$100=F1)*($Q$1:$Q$100=H1)),$L$1:$L$100)&IF(S1>1,"(他"&S1-1&"件)",""))
 とか
 T1 =IF(S1=0,"",LOOKUP(1,0/(($P$1:$P$100=F1)*($Q$1:$Q$100=H1)),$L$1:$L$100)&TEXT(S1-1,"(他0件);;"))

 複数ある場合、例えば10行目と25行目が該当する場合、25行目の方(一番下の値)が表示される。

 ちなみに、複数あった場合、そのすべてを列を分けて横に並べて表示、というのも不可能ではありません。

 参考まで。
(笑) 2017/01/28(土) 09:06

 S列を ○ 表示にしたいのなら、

 数式は =COUNTIFS(P:P,F1,Q:Q,H1) にして、

 表示形式〜ユーザー定義  "○";; ← 「;;」をつける(11:00修正)

 ○ は表示だけで値は数値なので、提示したT列の数式はそのまま使えます。

 参考まで。
(笑) 2017/01/28(土) 09:28 修正11:00

アドバイスいただきましたおかげで目的のものが完成いたしました。どうもありがとうございました!
(うましお) 2017/01/30(月) 12:59

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.