1つのセルに一桁ずつ入力する

こちらが1つのセルに一桁ずつ入力の件です。

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

F2セルを例に説明します。

F列には1億の単位の数字が入ります。
B2*C2の値が一億に達している場合、B2*C2の値を100000000で割ります。割った値の整数部分を取り出して右端の一文字を返す。もしも、1億に達していない場合は空白にしておく。
ただこれだけです。
ここしばらく、色々紹介している中で珍しくシンプルに数式を構成することができました。
以下、千万、百万、十万、万、千、百、十まで一桁ずつ桁を減らすだけです。
M列とI列では、コンマを入れる設定をします。
一の位の列は、B2*C2を十で割った余りの整数部分を返すようにします。

F2セル =IF(B2*C2>=100000000;RIGHT(INT(B2*C2/100000000);1);"")
G2セル =IF(B2*C2>=10000000;RIGHT(INT(B2*C2/10000000);1);"")
H2セル =IF(B2*C2>=1000000;RIGHT(INT(B2*C2/1000000);1);"")
I2セル =IF(B2*C2>=1000000;",";"")
J2セル =IF(B2*C2>=100000;RIGHT(INT(B2*C2/100000);1);"")
K2セル =IF(B2*C2>=10000;RIGHT(INT(B2*C2/10000);1);"")
L2セル =IF(B2*C2>=1000;RIGHT(INT(B2*C2/1000);1);"")
M2セル =IF(B2*C2>=1000;",";"")
N2セル =IF(B2*C2>=100;RIGHT(INT(B2*C2/100);1);"")
O2セル =IF(B2*C2>=10;RIGHT(INT(B2*C2/10);1);"")
P2セル =INT(MOD(B2*C2;10))

INT関数は整数値を取り出す関数で、例えば、=INT(12.22)で整数部分の12が取り出されます。
ここでINT関数を使用しているのは、O2セルの場合、=RIGHT(B2*C2/10);1)にすると、96を10で割ったときの答え(9.6)の6が返されてしまいます。これを回避するためです。
=RIGHT(INT(B2*C2/10);1)で9が返されます。

一の位ではB2*C2を10で割ったときの余りの整数部分を返します。

合計欄の値は、SUMPRODUCT関数で作られる合計値に基づいて処理します。
消費税込の欄(9行目)の1の位は、0.05を掛けたときの小数点以下を切り捨て処理しています。このために、整数値だけが残された値を10で割ることになります。だから、INT関数を使っていません。

この方法を使うと、エクセルにできてOpenOfficeには出来ないと思われて(?)いた漢数字の請求書を作成することが出来るようになります。今日(10月22日夜)公開しますので、請求書を漢字で作りたいOpenOfficeユーザーの方は、またお越しください。

この記事をクリップ!