こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

請求書の様式で…

請求書を作成しています。請求書にかかわらず、領収書等にも使用したのですが。エクセルで表を作っているのですが、単価×個数=合計金額と別々のセルにいれて計算させるのは簡単ですが、合計金額には、一の位、十の位、百の位、千の位、万の位…とセルを分けたいのです。
たとえば、合計金額が156,700円とすると、十万のセルに「1」、万のセルに「5」、千のセルに「6」、は百のセルに「7」、十と一のセルは「0」といったように標記させたいのですが、いい方法はありませんか?
よろしくお願いします。計算式をIF関数で無理矢理計算式を入れていこうとしましたが、あまりしっくりと来ませんでした。

投稿日時 - 2006-04-18 01:02:17

QNo.2098726

暇なときに回答ください

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

レイアウトがわかりませんが、
A列が単価、B列が個数で、C列から右が合計金額だとします。

1行目だとすれば
■ C1セルに
------------------------
=TRIM(LEFT(RIGHT(" "&TEXT($A1*$B1,"#"),7-COLUMN(A1))))
------------------------
と入れて(↑をコピペしてください )、H1セルまでフィルコピー
そのまま必要なだけ下にフィルコピーです。

◇合計金額の最大桁数を6桁としています。
7桁なら 7-COLUMN(A1)の 7を 8にして I列までコピー
8桁なら 7を 9にして J列までコピーです。

◇単価×個数の $A1*$B1も実際のセル位置に合わせて必要なら変更してください。
( 列記号の前に必ず$をつけること )

◇COLUMN(A1) は右にコピーすることで 1、2、3・・・と変化させるためのものです。
どんな場合でも COLUMN(A1)のままにしておいてください(←←先頭のセルのみ。あとは右に下にコピーするだけ )

★ セル内の数字は左揃えになるので、気になるようでしたら合計金額のセルはすべて右揃えにしてください。

以上が個々の明細の合計金額です。


★トータルの合計金額も必要なら次のようにします。

明細が1行目から10行目までだとすれば( A列が単価、B列が個数 )
トータルの合計金額は↓の式で求めることができます。
=SUMPRODUCT(A1:A10,B1:B10)

この合計金額も1セルに1桁ずつ入れるなら
最初の式の $A1*$B1を上の式に変えるだけです。

11行目がトータルの合計金額だとすれば
■ C11セルに↓を入れて、H11セルまでコピーです。
----------------------
=TRIM(LEFT(RIGHT(" "&TEXT(SUMPRODUCT($A1:$A10,$B1:$B10),"#"),7-COLUMN(A1))))
----------------------

◇ 最大桁数の変更など注意事項は上と同じ。

投稿日時 - 2006-04-18 05:36:14

お礼

非常に細かいご指導ありがとうございます。勉強になります。

投稿日時 - 2006-04-20 18:25:54

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

=IF(COLUMN()<=2+10-LEN($A$1),"",MID($A$1,COLUMN()-(2+10-LEN($A$1)),1))
上記式の中の
2  スタート列(この場合B列)を決める数字
したがって上記式では、B2とかD2とかに上記式を入れて、2+10列(L列)まで式を横方向に複写する。
10  最大桁を決める数字
A1  金額数字を入れるセル。
上記は数字文字列の扱いだが、右詰めに設定するか、*1を掛けて
数値化する
=IF(COLUMN()<=2+10-LEN($A$1),"",MID($A$1,COLUMN()-(2+10-LEN($A$1)),1)*1)
か適当なほうを選ぶ

投稿日時 - 2006-04-19 14:40:56

お礼

ありがとうございます。このような関数があるのですね。勉強になりました。

投稿日時 - 2006-04-20 18:23:52

ANo.4

最大金額が1億の位として
1億の位=MID(TEXT(合計金額のセル,"?????????"),COLUMN(A$1),1)
として右方向にコピーしてください。

投稿日時 - 2006-04-18 12:21:27

お礼

いろいろな方法があるのですね。勉強になります。ありがとうございました。

投稿日時 - 2006-04-20 18:24:46

ANo.2

十万のセル=INT(MOD(SIGN(A1)*A1/100000,10))
万のセル=INT(MOD(SIGN(A1)*A1/10000,10))
千のセル=INT(MOD(SIGN(A1)*A1/1000,10))
百のセル=INT(MOD(SIGN(A1)*A1/100,10))
十のセル=INT(MOD(SIGN(A1)*A1/10,10))
一のセル=INT(MOD(SIGN(A1)*A1/1,10))

投稿日時 - 2006-04-18 01:20:10

お礼

ありがとうございます。下記の方と同じ方法ですね。勉強になりました。

投稿日時 - 2006-04-20 18:27:12

ANo.1

A1セルに金額が入力されていると仮定します。

十万・・・=INT(MOD(A1,1000000)/100000)
一万・・・=INT(MOD(A1,100000)/10000)
千・・・・=INT(MOD(A1,10000)/1000)
百・・・・=INT(MOD(A1,1000)/100)
十・・・・=INT(MOD(A1,100)/10)
一・・・・=INT(MOD(A1,10))

ではどうでしょうか?

投稿日時 - 2006-04-18 01:18:49

お礼

ありがとうございます。簡単にできました。このような関数があるのですね。

投稿日時 - 2006-04-20 18:26:37

あなたにオススメの質問