プロが教えるわが家の防犯対策術!

よろしくお願いします。

Aの表は、

 月日    電話番号        通話料金
1月1日 010-333-3333   100
1月5日 020-999-9999   500
2月3日 010-333-3333   300
2月3日 3434-3434       200 ・・・・・・

という具合に、電話をした相手の番号と金額が「日付ごと」に
電話番号が「ハイフンつき」で入っていたり、
「市外局番なし」で入っているデータがあります。

一方、Bの表には、

短縮番号     電話番号        名前     合計金額
111   0103333333    おしえて花子      ?
112   0209999999    質問太郎         ?
113   0334343434    安心会社         ?

というように、短縮番号別に 電話番号が「ハイフンなし」で入っている表があるとします。

Aの表から該当の電話番号を検索し、通話料金の合計をBの表の「?」部分に返したく、
SUMIF関数を使用したいと思ったのですが、
AとBの検索条件である「電話番号」がハイフンが入っているとか、市外局番が入っていないとか、
とにかく「完全一致していない」という理由で、うまくできません。

完全一致ではなくても(ハイフンや、市外局番には関係なくて)、検索条件に引っかかり、合計金額が出せるようにするには、どうしたらよいのでしょうか?
たとえば、後ろ6ケタくらいの数字が一致していれば、該当番号になれるようにできれば、よいのですが・・・

よろしくお願いします。  

A 回答 (2件)

次の数式は如何でしょうか。


A表をSheet1、セル範囲はA1:C100としています。
=SUMPRODUCT((RIGHT(SUBSTITUTE(sheet1!$B$2:$B$100,"-",""),6)=RIGHT(B2,6))*(sheet1!$C$2:$C$100))
    • good
    • 0
この回答へのお礼

ありがとうございます! できました~!

そして、もう一つ。 教えてください。
シートは実は、3つあるんです。

A表が
シート1には「一般電話番号」
シート2には「携帯電話番号」 という具合に
別々の2つのシートに分かれています。

ですから、シート1
=SUMPRODUCT((RIGHT(SUBSTITUTE(sheet1!$B$2:$B$100,"-",""),6)=RIGHT(B2,6))*(sheet1!$C$2:$C$100))

と、シート2
=SUMPRODUCT((RIGHT(SUBSTITUTE(sheet2!$B$2:$B$100,"-",""),6)=RIGHT(B2,6))*(sheet2!$C$2:$C$100))

をシート3にある、Bの表に返すには、どうしたらよいのでしょうか?

この2つの関数を一つにつなげればよいのですが、
安易に二つの関数を、「+」と「&」でつなげてみたのですが、
間違っているようです。

よろしくおねがいします。

お礼日時:2008/03/14 14:10

NO1です。


>安易に二つの関数を、「+」と「&」でつなげてみた
⇒安易で問題ありませんが、「&」は文字列結合ですから意味合いが違いますので「+」を使用して下さい。
=SUMPRODUCT((RIGHT(SUBSTITUTE(Sheet1!$B$2:$B$100,"-",""),6)=RIGHT(B2,6))*(Sheet1!$C$2:$C$100))+SUMPRODUCT((RIGHT(SUBSTITUTE(Sheet2!$B$2:$B$100,"-",""),6)=RIGHT(B2,6))*(Sheet2!$C$2:$C$100))

この回答への補足

今頃のポイントになってしまい、大変申し訳ありませんでした。
丁寧に回答してくださり、本当にありがとうございました。

補足日時:2008/03/17 09:57
    • good
    • 0
この回答へのお礼

もう一度やってみました。
先ほど、「+」でやってみてできなかったので、
再度お伺いしたのですが、
「+」で合っているとのお返事を頂いたので、もう一度挑戦してみました。
・・・結果、できました。(当たり前ですよね。)

なにが間違えていたのでしょうか?(お恥ずかしいです、申し訳ありませんでした。)

ありがとうございました。

お礼日時:2008/03/14 14:34

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