• ベストアンサー

合計金額の桁を一つ一つのセルに表示

伝票で合計が用紙の下段に表示させます。その金額を上段の金額欄に表示したいのですが難問です。9個のセルに各桁の数字を入れることはintやmodで表示できるのですが¥の表示に悩んでいます。例えば1500が15¥¥になったり¥¥¥¥¥1500になったり。 合計が1500の場合、金額欄には¥1500、合計が150000の場合¥150000になるような方法はあるでしょうか?合計欄の数字に頭に一つだけ¥を付けたいのです。

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

  • ベストアンサー
  • maile
  • ベストアンサー率61% (19/31)
回答No.2

その桁を抜き出す式は既にあり、合計金額がセル[K7]にあると仮定して。 合計行の左から 1桁目:=IF(LEN($K$7)>=9,この桁を抜き出す関数,IF(LEN($K$7)=8,"\","")) 2桁目:=IF(LEN($K$7)>=8,この桁を抜き出す関数,IF(LEN($K$7)=7,"\","")) 3桁目:=IF(LEN($K$7)>=7,この桁を抜き出す関数,IF(LEN($K$7)=6,"\","")) 4桁目:=IF(LEN($K$7)>=6,この桁を抜き出す関数,IF(LEN($K$7)=5,"\","")) 5桁目:=IF(LEN($K$7)>=5,この桁を抜き出す関数,IF(LEN($K$7)=4,"\","")) 6桁目:=IF(LEN($K$7)>=4,この桁を抜き出す関数,IF(LEN($K$7)=3,"\","")) 7桁目:=IF(LEN($K$7)>=3,この桁を抜き出す関数,IF(LEN($K$7)=2,"\","")) 8桁目:=IF(LEN($K$7)>=2,この桁を抜き出す関数,IF(LEN($K$7)=1,"\","")) 9桁目:=RIGHT($K$7,1) ちなみに私ならその桁を抜き出す式として 例えば7桁目なら RIGHT(ROUNDDOWN($K$7/100,0),1) と一旦その桁を1の位にまで下ろしRIGHT関数で抜き出すと思いますが…。

nyanko1120
質問者

お礼

ありがとうございます。自分では「合計セル」の参照は気づきませんでした。金額欄での処理ばかりに気を取られていたようです。 また、ROUNDDOWNを使った方が桁は出しやすそうなので使ってみます。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.6

#9 Cupperです。 連続した半角スペースはトリミングされて一つのスペースにおきかえられてしまいますか・・・。 見た目が悪いですね。 " " となっているところは9つの半角スペースがあるものと見なしてください。 または、それぞれの数式を下の物に置き換えてください。  =" "&"\"&A1 ⇒ =REPT(" ",9)&"\"&A1  =RIGHT(" "&"\"&A1,9) ⇒ =RIGHT(REPT(" ",9)&"\"&A1,9)  B1 =MID(RIGHT(" \"&A1,9),1,1) ⇒ =MID(RIGHT(REPT(" ",9)&"\"&A1,9),1,1)  C1 =MID(RIGHT(" \"&A1,9),2,1) ⇒ =MID(RIGHT(REPT(" ",9)&" \"&A1,9),2,1)  :  :   J1 =MID(RIGHT(" \"&A1,9),9,1) ⇒ =MID(RIGHT(REPT(" ",9)&"\"&A1,9),9,1) ※ REPT関数は文字列を指定した回数繰り返した文字列を返す関数です。

すると、全ての回答が全文表示されます。
  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.5

合計値は数値としてありますから各桁を並べるセルは数値ではなく文字でも構わないと思いますのでそのように回答してみます。 関数を複数組み合わせて使用しますので、それぞれの関数のヘルプを参照して何を行っているのかを自身で理解してください。 ・A1セルに合計値 ・B1セルからJ1セルに各桁の数値 が入ると仮定します。 まずは、合計値の前に "¥" の文字を加えた文字列にします。  ="\"&A1 この文字列からMID関数で文字の位置を指定しながら数字を抜き出します。 が、このままでは合計の桁数が不定ですので "\" の前に7つの半角スペースを追加し、右から9つの文字だけ抜き出します。 (半角スペースを追加)  =" "&"\"&A1 または  =" \"&A1 (右から9つの文字を抜き出し)  =RIGHT(" "&"\"&A1,9) あとはMID関数で文字を1つずつ抜き出すだけです。 B1 =MID(RIGHT(" \"&A1,9),1,1) C1 =MID(RIGHT(" \"&A1,9),2,1) :  :  J1 =MID(RIGHT(" \"&A1,9),9,1) どうしても数字で結果が欲しい場合はVALUE関数で数値に直してください。 (¥マークやスペースは数字にならずエラーになりますのでIF関数で弾く工夫をしてください)

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.4

質問がわかりにくいが、下記のようなことを聞いているのかな。 エクセルの質問なんだから、行と列を具体的に示して、質問例を書いてください。 例データ A7:K14(勝手ながら第7行から始めました) 2345 \ 2 3 4 5 123456 \ 1 2 3 4 5 6 123 \ 1 2 3 2345 \ 2 3 4 5 23456 \ 2 3 4 5 6 1 \ 1 12 \ 1 2 123456789 \ 1 2 3 4 5 6 7 8 9 (桁がずれて表示されるでしょうが実際やってみてください) ーー 式 B7に =IF(COLUMN()=11-LEN($A7),"\",IF(COLUMN()-1<11-LEN($A7),"",MID($A7,COLUMN()-(11-LEN($A7)),1))) と入れて、式を横方向にK7まで複写。 A7:K7の式をA14:K14まで式を複写。 結果 上記の通り。 9桁まで対応。上記の式の11を変えると対応桁数を増やせる。 左から増えるCOLUMN()に対し、開始桁(列)とデータの先頭桁からの桁番号増加をあわせた式を編み出せばよい。 上記は文字列だが、*1すれば数値化できる。 \付きでない質問は、過去に数度質問あり。

すると、全ての回答が全文表示されます。
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

◆合計金額が H10 にあるものとします ◆9個のセルの一番左のセルの式 =IF($H$10="","",LEFT(RIGHT(" \"&$H$10,9-COLUMN(A1)+1))) ★右に8個コピー

すると、全ての回答が全文表示されます。
回答No.1

合計をどこかのセルに算出されているのでしたら、=LEN(合計セル)で 桁数が出ます。 9桁の頭の位置(10桁目の部分)には =IF(LEN(合計セル)=9,"\",元の関数) 8桁の頭の位置(9桁目の部分)には =IF(LEN(合計セル)=8,"\",元の関数) とすれば、とりあえず¥マークは付くと思います。

nyanko1120
質問者

お礼

ありがとうございます。自分では「合計セル」の参照は気づきませんでした。金額欄での処理ばかりに気を取られていたようです。できましたありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A