OpenOfficeで金額を3桁ずつ区切ってセルを分割

請求書、見積書などで使える数式を紹介します。
下の画像では、金額の合計欄で、

  • 1,000未満の数字をG列
  • 1,000以上1,000,000未満の数字をF列
  • 1,000,000以上100,000,000未満の数字をE列

に表示しています。

送信者 OpenOffice
このファイルは、SKYDRIVEからcalc113.odsをダウンロードしてください。

E列:百万以上の部分の設定

=IF(B2*C2>=1000000;INT(B2*C2/1000000);"")
単価と個数の積が百万以上のとき、単価と個数の積を1000000で割った整数の部分を返します。
単価と個数の積が999999以下のときは空白。

F列:千以上の部分の設定

=IF(B2*C2>=1000000;",";"")&IF(B2*C2>=1000;RIGHT(INT(B2*C2/1000);3);"")
前半部分&より左側)で、区切りのコンマを入れる設定をします。
もしもB2*C2の積が1000000以上ならコンマを付ける。そうでないなら付けない。
後半部分で表示の設定をします。単価と個数の積を1000で割った整数の部分の右から3文字を返します。単価と個数の積が999以下のときは空白。

G列:千未満の部分の設定

=IF(B2*C2>=1000;",";"")&RIGHT(B2*C2;3)
前半部分&より左側)で、区切りのコンマを入れる設定をします。
もしもB2*C2の積が1000以上ならコンマを付ける。そうでないなら付けない。
後半部分で表示の設定をします。単価と個数の積の右から3文字を返します。

8行目では合計に対して、処理を行ないます。合計の戻り値はSUMPRODUCT関数を使って求めています。
9行目は、SUMPRODUCT関数を使って合計を求め、消費税率(1.05)を掛けています。
ただし1.05を掛けると小数点以下の数字が発生してしまうときの処理として、小数点以下を切り捨てる処理をROUNDDOWN関数で行なっています。
**SUMPRODUCT関数をはてなのブログで表示しようとすると、*の部分で途切れてしまう。おそらくはてな記法によるためでしょうか?
いずれにしても、ここで数式を書けないので、画像とサンプルファイルを参照願います。関数名:INT関数

重要:こちらの記事に、もっと簡単にコンマを入れる方法を紹介していますので、そちらもお読みください。



ここで使用した関数

書式:=INT(数値)
何ができる:指定した数値を超えない最大の整数を返す
平たく書くと:=INT(12300/10000)で、1.23を超えない最大の整数1が返されます。
同様に、9000の場合、=INT(9000/10000)は、ゼロです。

関数名:ROUNDDOWN関数
書式:=ROUNDDOWN(数値;切り捨てる桁)
何ができる:指定した桁で切り捨て処理を行なう
平たく書くと:=ROUNDDOWN(12345;-3)で、12000が返されます。
切り捨てる桁と、指定方法は下のとおりです。
 -3:百の位以下
 -2:十の位以下
 -1:一の位以下
0:小数点以下第一位以下
1:小数点以下第二位以下
2:小数点以下第三位以下

関数名:MOD関数
書式:=MOD(処理対象の値;除数)
何ができる:処理対象の値を除数で割った余りを返す
平たく書くと:=MOD(12300;10000)で、12300を10000で割った余り2300が返されます。
=MOD(9000;10000)の場合、9000が返されます。

関数名:RIGHT関数
何ができる:処理対照の文字列から、指定した文字数分の文字を右端から抜き出す
書式:=RIGHT(処理対象の文字列;文字数)
平たく書くと:=RIGHT("東京都";1)で、「東京都」から都を抜き出すことができます。

この記事をクリップ!