2012年5月11日金曜日
sumproduct関数のまとめ
今週は「sumproduct関数」を取り上げました。
今回は簡単にまとめていきます。
まずは星5つで評価します。
仕事術 sumproduct関数
容易さ ★★★
頻度 ★★
効果(速度・費用) ★★★
Excelのデータ処理に困っている・・・。
例えば、商品ごとの単価と売れた個数が1行1商品で並んでいるような
データで、全商品の売上金額の合計を一発で求めたい。
1列追加して、単価と個数を掛け算して、商品ごとの売上をまずは計算し、
それらをsum関数で合計すればできるのですが、割とよく行う計算なので
簡単な関数か何かで行いたい。
そこで見つけたのが、「sumproduct関数」というものでした。
使い方は簡単。
例えば以下のデータを集計します。
例:売上データ
A列 B列 C列
1行 商品 単価 個数
2行 A \200 22
3行 B \550 10
4行 C \300 3
1、引数を作成する
掛け合わせたい列範囲を()と*を使って表現します。
(B2:B4)*(C2:C4)
2、関数を作成する
1で作成した引数をそのまま設定します。
=sumproduct((B2:B4)*(C2:C4))
たったこれだけです。
この方法を実施する時にうまくいきそうなポイントが3点あります。
1、引数に指定している各列の行数は揃える
例えば、B列(B2:B4)とC列(C2:C4)を掛け合わせて、その合計を
求めたいときは、=sumproduct((B2:B4)*(C2:C4))と指定しました。
このときに、B列とC列の行数が異なると、どの行同士を掛け合わせたら
よいか分からなくなりエラーとなってしまうので、行数は揃えましょう。
2、文字列なども条件に指定できる
例えば、以下のようなデータがあったとして、商品Aのみの合計を求めたい
とします。
A列 B列 C列
1行 商品 単価 個数
2行 A \200 22
3行 B \550 10
4行 C \300 3
5行 A \200 14
6行 B \550 7
7行 A \200 28
そのような場合に、以下のように条件を指定すると、商品Aのみの合計金額を
一発で求められます。
=SUMPRODUCT((A2:A7="A")*(B2:B7)*(C2:C7))
このように条件設定してあげることで、一部のデータを抽出することができて
便利です。
3、別の形式でも引数を指定できる
2でご紹介した条件設定を行わずに、単純に列同士を掛け合わせて合計する場合
は、以下のように複数の引数として指定することもできます。
B2:B4 , C2:C4 , D2:D4
(元々はこちらが正式な使い方なのですが・・・)
ということで、ポイントを押さえて使用すると効果が高いのは
よくわかりましたが、何回か実施する内に課題も見えてきました。
1、式が複雑になりやすい
掛け合わせたい列や指定したい条件が、2-3つ程度であればさほど問題
ないのですが、それ以上に多くなると、関数自体がかなり長くなって
きます。
さらにifなど他の関数と組み合わせると、長く複雑になることがでてきます。
式を作るのに時間がかかりすぎてしまっては本末転倒なので、そのような時は、
無理に一つの式で行おうとせず、複数の式に分割するようにしましょう。
2、複数の引数を指定する使い方では、条件設定ができない
単純に列同士を掛け合わせて合計する場合は、以下のように複数の引数として
指定することもできます。
=sumproduct(B2:B4 , C2:C4 , D2:D4)
ただし、この形式で指定するときは、A2:A4="A"のような条件設定は
行えません。
使い分けを行うのが面倒であれば、以下のように条件を*で結合して、
常に1つの引数で表現する形式をお奨めします。
=sumproduct((B2:B4)*(C2:C4)*(D2:D4))
上記の点に気をつければ、一発でほしい結果が得られるのでとても便利な
関数です。
いかがだったでしょうか?
「sumproduct関数」の話は以上です。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿