• ベストアンサー
  • すぐに回答を!

SUM関数とIF関数を使って・・・(若干長文で難しいです^^;)

  • 質問No.1940405
  • 閲覧数503
  • ありがとう数5
  • 気になる数0
  • 回答数6
  • コメント数0

お礼率 44% (22/49)

 2週間程度考えたんですが自分ではどうしようもなく皆さんの力を貸してください。

今book1とBOOK2があり…

BOOK1には、A列に担当者、B列に売上数が次のようにあります。
A1…田中A  B1…10
A2…山田B  B2…20
A3…鈴木B  B3…10
※担当者名の尾には部署である記号(アルファベット)があります。また実際データはもっと大量に有ります。

次にBOOK2のA列には次のようにあります。
A1…A部署  B1…
A2…B部署  B2…

 このようなケースにおいてBOOK2のB1、B2に、A部署としての総売上数、B部署としての総売上数をそれぞれ出したいのです。困っているのは、A1にある"A部署"という文字やA2にある"B部署"という文字は、時々入れ替わったり、なくなったり、新たにC部署が増えたりするんです。その時でも、常にB列には適切な売上数をあげたいのです。B列に組む関数としてもっともふさわしい組み方が分かりません^^;

※私がつまずいている点
1…BOOKは2つあり、別BOOK1にあるデータをBOOK2へ集 計するのでSUMIF関数では#VALUE!エラーがでて使えない。(もし使えると簡単にできる、検索条件にワイルドカード(*A)を使って…)

2…SUMとIF関数を組み合わせて出来そうだけど…なかなかできない。〇| ̄|_
IF関数では論理式の部分で、ワイルドカードが使えない?ので・・・


ほんとに困っています。^^;みなさんの知恵を貸してくださいm(_ _)mよろしくお願い致します。  

質問者が選んだベストアンサー

  • 回答No.5
  • ベストアンサー

ベストアンサー率 41% (2512/6032)

Book2.xlsの集計したいセルに計算式として
=SUM(IF(RIGHT([Book1.xls]Sheet1!$A1:$A10,1)="a",[Book1.xls]Sheet1'!$B1:$B10))
と入力してから
「CTRL+SHIFT+ENTERを押して」 ←ここが大事
式を確定して下さい。

これで
>BOOKは2つあり、別BOOK1にあるデータをBOOK2へ集 計するのでSUMIF関数では#VALUE!エラーがでて使えない。
>SUMとIF関数を組み合わせて出来そうだけど…なかなかできない。
の2つがクリア出来ます。
お礼コメント
seamonkey

お礼率 44% (22/49)

おぉ~~なるほど~一気に仕事が解決しました!!!
すごく助かります^^
今まで悩んでいたのが、今解決してすごく爽快です!!!
ほんとにありがとうございます!!
私の下手な質問を的確に理解して、シンプルかつ最適な回答方法(関数の組み方)を提示していただき本当に感謝します。私もエクセルはかなり使いこんでいるつもりですが、やっぱりまだまだですね^^;
もっと勉強します!ほんとにありがとうございました!もし、また力をお借りするときがあったら、宜しくお願いいたします!今回は本当にありがとうございました<(__)>
投稿日時:2006/02/05 13:26

その他の回答 (全5件)

  • 回答No.6

ベストアンサー率 41% (2512/6032)

訂正

誤:=SUM(IF(RIGHT([Book1.xls]Sheet1!$A1:$A10,1)="a",[Book1.xls]Sheet1'!$B1:$B10))
正:=SUM(IF(RIGHT([Book1.xls]Sheet1!$A1:$A10,1)="A",[Book1.xls]Sheet1'!$B1:$B10))

担当者の末尾の部署記号は大文字でしたね(^^;

蛇足ですが
http://support.microsoft.com/?scid=kb;ja;260415&spid=1743&sid=376
SUMIF関数が閉じられている別ブックを参照した時に#VALUE!になるのは、問題点と認めているようです。
  • 回答No.4

ベストアンサー率 39% (7415/18944)

=SUMIF([BOOK2.xls]Sheet1!A:A,"*A",[BOOK2.xls]Sheet1!B:B)
=SUMIF([BOOK2.xls]Sheet1!A:A,"*B",[BOOK2.xls]Sheet1!B:B)
ですね。SUMIF関数ならワイルドカードが使用できます。
一応別の方法
=SUMPRODUCT(RIGHT([BOOK2.xls]Sheet1!$A$1:$A$10,1)="A")*([BOOK2.xls]Sheet1!$B$1:$B$10))
お礼コメント
seamonkey

お礼率 44% (22/49)

SUMIFは使えないんですよ・・・そこが厄介なんですよね^^;
http://support.microsoft.com/?scid=kb;ja;260415&spid=1743&sid=376
投稿日時:2006/02/05 13:19
  • 回答No.3

ベストアンサー率 40% (72/180)

BOOK1の名前と部署を分けて考えれば簡単になりますよ。
(分ける事が出来ない事情があるのでしたら、これを手掛かりに)

[book1]
[A][B][C]
1営業部署売り上げ
2田中A10
3山田B20
4鈴木B10

[book2]
[A][B]
1部署売上合計
2A部署=SUMIF([Book1]Sheet1!$B$2:$B$4,"=A",[Book1]Sheet1!$C$2:$C$4)
3B部署=SUMIF([Book1]Sheet1!$B$2:$B$4,"=B",[Book1]Sheet1!$C$2:$C$4)


なんて如何でしょうか。
お礼コメント
seamonkey

お礼率 44% (22/49)

SUMIFはどうしても使えないんですよね^^;その場合は・・・Book1を閉じたとたんに、エラー値になります。
http://support.microsoft.com/?scid=kb;ja;260415&spid=1743&sid=376
投稿日時:2006/02/05 13:18
  • 回答No.2

ベストアンサー率 30% (397/1288)

データ管理上や、正規化という考え方や、処理の簡略化、さらには見栄えなどの点で、"氏名+部署"という形式のデータを持つ利点がいまひとつ理解できません。

部署、氏名、売り上げ数
と、列を分けて管理する方法では不都合があるのでしょうか?
お礼コメント
seamonkey

お礼率 44% (22/49)

おっしゃるとおりです^^;
しかし、ほんとはもっと複雑なデータで、質問例はすごく簡単にしているんです^^;
ありがとうございました<(__)>
投稿日時:2006/02/05 13:15
  • 回答No.1

ベストアンサー率 38% (1910/4994)

SUMIFでできそうですよ。

(例)aaa.xlsはBOOK1を想定、BOOK2のB1に次の関数を設定、下方向にコピーして下さい。
=SUMIF(([aaa.xls]Sheet1!$A$1:$A$10),"*"&LEFT(A1,1),[aaa.xls]Sheet1!$B$1:$B$10)
お礼コメント
seamonkey

お礼率 44% (22/49)

そうですね。確かにそうですが・・・
その場合、aaa.xlsを閉じてると、どうしてもエラーになるんですよね^^;
投稿日時:2006/02/05 13:12
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ