[[20200519154324]] 『複数シートに渡る条件分岐について』(きのこ) ページの最後に飛ぶ

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

 

『複数シートに渡る条件分岐について』(きのこ)

sheet1
   A   B
1 host1   2
2 host2   3
3 host3   10
4 host4   5
5 host5   5

sheet2
   A   B
1 host1   disk1
2 host2   disk1
3 host3   disk2
4 host4   disk3
5 host5   disk3

sheet3
   A   B
1 disk1   
2 disk2   
3 disk3   
4 disk4   

※hostおよびdiskは文字列です

やりたいこととしては
1.sheet2 B列がdisk1(=sheet3 A1)に一致しているかどうか
 ⇓
2.disk1だった場合、その行のsheet2 A列と一致するsheet1 A列と同じ行数のB列の値を取得
 ⇓
3.それらの値を合計

合計値の取得はできましたが、
内容としては、sheet2各行ごとに一致しているかを全て検索している状態です。

=IF(IF('sheet2'!B1='sheet3'!A1,ROW(B1),0)<>0,INDEX('sheet1'!B1:B5,ROW('sheet3'!B1)),0)
+IF(IF('sheet2'!B2='sheet3'!A1,ROW(B2),0)<>0,INDEX('sheet1'!B1:B5,ROW('sheet3'!B2)),0)
......

各行ごとに分けずに、ひとつにまとめる方法などありますか?
※VBAでの処理であれば可能なことは把握していますが、あくまで関数のみでの処理でアドバイスをお願いします

< 使用 Excel:Office365、使用 OS:Windows10 >


 sheet2に、VLOOKUPなどでA列に対応するsheet1のデータを持ってくることはできないのですか?
(コナミ) 2020/05/19(火) 15:50

>コナミ様

シートの編集はできない状況になります、、、

内容書き換えができれば、すぐに解消することは可能なんですがね
(きのこ) 2020/05/19(火) 18:16


 希望結果図を書いていただけないですか?

 (無理はいいません。私にはやりたいことがちょっと理解できないので)

(半平太) 2020/05/19(火) 18:31


>半平太様

最終的には、下記のようにsheet3に出力できればと考えています。

sheet3
   A   B
1 disk1  5 (2+3 disk1に対応しているのはhost1とhost2のため)
2 disk2  10(disk2に対応しているのはhost3のみのため)
3 disk3  10(5+5 disk3に対応しているのはhost4とhost5のため) 
4 disk4  0 (disk4に対応しているhostがないため)

加筆する可能性があるシートはsheet1のB列の数値を想定しています
sumで各対象セルなどを予め指定しておくなどはできるのですが、
スマートに解消できないのかという疑問になります。

意図は伝わっていますでしょうか。。。。
(きのこ) 2020/05/19(火) 18:57


なんか FILTER + XLOOKUP + SUM で出来そうな気がする
(2u) 2020/05/19(火) 19:09

 Sheet1のA列 と 
 Sheet2のA列 は、全く同じデータ順なのですね?

 ならば
 B1セル =MMULT((TRANSPOSE(Sheet2!B1:B5)=A1:A4)*TRANSPOSE(Sheet1!B1:B5),ROW(B1:B5)^0)

(半平太) 2020/05/19(火) 20:46


 ↓ ではダメなんですかね?

 B1 =SUMIF(Sheet2!$B$1:$B$5,A1,Sheet1!$B$1:$B$5)
 下コピー

 よく理解できてません。
(笑) 2020/05/20(水) 11:49

>2u様
FILTERとXLOOKUPでも実装できそうな気はしてきました。。。ちょっと確認してみます。
ありがとうございます。

>半平太様
データ順は同じだったので、頂いた数式で成立しそうです!
ちょっと普段使わない関数なので、勉強してみます
ありがとうございます。

>笑様
その数式だと、求めてたものとはことなる結果になりました。。。
ご対応ありがとうございます。
(きのこ) 2020/05/22(金) 09:30


 すみません。これでよかったです。

 B1セル =SUMIF(Sheet2!B1:B5,A1:A4,Sheet1!B1:B5)

(半平太) 2020/05/22(金) 10:17


 >その数式だと、求めてたものとはことなる結果になりました。。。

 どうなったんですか?
 こちらでは下のようになりましたけど・・・

	A	B
1	disk1	5
2	disk2	10
3	disk3	10
4	disk4	0

 >B1 =SUMIF(Sheet2!$B$1:$B$5,A1,Sheet1!$B$1:$B$5)
 >下コピー

 それとも365で ↑ のようにすると他のバージョンとは異なる結果になるんですかね?

 以上
(笑) 2020/05/22(金) 12:00

コメント返信:

[ 一覧(最新更新順) ]


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