2016-08-24 17 views
2

私はユニークな識別子を含む列、および他含んだ価格持っている:私はまた、カンマで区切られた配列を含む列を持って、ブック内の他の関数の引数として渡すのカンマで区切られた配列

A | B 
--+--- 
1 | $2 
2 | $4 
3 | $1 
s | $6 
7 | $5 
x | $4 
5 | $4 

どこか:

C 
--------- 
2,3,s 
3,1 
x 
7,2,3,s,5 

D欄には、それぞれの価格の合計が必要です。 C1の2,3,sはD1に$11を与えます。

=SUM(SUMIF($A$1:$A$7;{2;3;"s"};$B$1:$B$7)) 
をそれだけでハードコード配列と動作:($ 4 + $ 1 + $ 6 = $ 11)と

Iは、配列{2;3;"s"}を検索この数式を試みました。これは機能しません:

=SUM(SUMIF($A$1:$A$7;C1  ;$B$1:$B$7)) 

この機能では、テキストのコンマ区切りの配列を正しく読み取れるように変更する必要がありますか?検索

(。これはすぐにも高く評価されるだろう実現し、ユーザー定義関数)

答えて

4

利用SUMPRODUCT():

=SUMPRODUCT(ISNUMBER(SEARCH($A$1:$A$7,C1))*$B$1:$B$7) 

これは、列Aを反復処理した場合に表示されます値はC1の文字列に含まれます。 SUMPRODUCTは、SEARCHがtrueを返すBの値を合計します。

enter image description here


あなたのコラム意志がaaaまたは111両方のようなものがピックアップされますが含まれている場合。正しいものが選択されるように、式を少し変更して特定の検索を強制することができます:

=SUMPRODUCT(ISNUMBER(SEARCH("," & $A$1:$A$7 & ",","," & C1 & ","))*$B$1:$B$7) 
+0

すごくお答えください! –

+0

本当に素晴らしい。後者の式は完全に機能しています。 – Scypodli

関連する問題