こんにちは。テックブログの萱場です。
今回は、端数の処理に便利なSUMPRODUCT関数を紹介します。
付属業界は、少数点以下の単価が結構多い
小附属などの細かい商品は、小数点以下までの単価設定されていることもあります。例えば、会社の販売管理システムが1日毎に売上を立てていて、毎回の売上データ毎に端数処理(切り捨て処理)をしているとします。
以下のスプシは、上記の売上入力データを元に日毎の販売数量を記録した見本データです。

この場合、AD列の合計数量×単価は、AH列の値です。
しかし実際は、日ごとに端数処理をしているので、F列のAAAを1つ売った時の売上は、5.2円ではなく、5円ということになります。
そうすると、単純な合計数量×単価で合計売上を出すと実際の売上データとのズレが生じてきます。
この様な場合に、便利なのがSUMPRODUCT関数です。
SUMPRODUCT(配列1, [配列2]…)
https://support.google.com/docs/answer/3094294?hl=ja
簡単にいうと、引数で渡した配列同士の積を求めて合計してくれるというものです。
引数が配列1だった場合、単純に配列の合計を返してくれます。
最初の画像のAG4セルの数式は以下になります。
=SUMPRODUCT(ROUNDDOWN(F4:Z4*AF4, 0))
通常ROUNDDOWN関数は、単一の値しか返せないので、配列の様な複数出力はできません。
しかし、SUMPRODUCT関数を使用することで、ROUNDDOWN関数で複数範囲を選択しても、配列展開されて、その合計を求めることができます。
なので、上記の数式では、日付ごとの数量 × 単価 をROUNDDOWNした値の合計を求める事ができます。
まとめ
細かい単価が多い付属業界では、意外と使える関数だと思います。
株式会社デザインXでは、アパレル業界のお客様に向けて、ECサイトや業務基幹システム(ERP)の開発・導入支援を行っております。ご興味をお持ちの方は、是非下記リンクよりお気軽にお問い合わせください。