dポイントプレゼントキャンペーン実施中!

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

A 回答 (6件)

その桁を抜き出す式は既にあり、合計金額がセル[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関数で抜き出すと思いますが…。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/03/05 16:24

#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関数は文字列を指定した回数繰り返した文字列を返す関数です。
    • good
    • 0

合計値は数値としてありますから各桁を並べるセルは数値ではなく文字でも構わないと思いますのでそのように回答してみます。



関数を複数組み合わせて使用しますので、それぞれの関数のヘルプを参照して何を行っているのかを自身で理解してください。

・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関数で弾く工夫をしてください)
    • good
    • 0

質問がわかりにくいが、下記のようなことを聞いているのかな。


エクセルの質問なんだから、行と列を具体的に示して、質問例を書いてください。
例データ A7:K14(勝手ながら第7行から始めました)
2345\2345
123456\123456
123\123
2345\2345
23456\23456
1\1
12\12
123456789\123456789
(桁がずれて表示されるでしょうが実際やってみてください)
ーー
式 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すれば数値化できる。
\付きでない質問は、過去に数度質問あり。
    • good
    • 0

◆合計金額が H10 にあるものとします


◆9個のセルの一番左のセルの式
=IF($H$10="","",LEFT(RIGHT(" \"&$H$10,9-COLUMN(A1)+1)))
★右に8個コピー
    • good
    • 0

合計をどこかのセルに算出されているのでしたら、=LEN(合計セル)で


桁数が出ます。
9桁の頭の位置(10桁目の部分)には
=IF(LEN(合計セル)=9,"\",元の関数)
8桁の頭の位置(9桁目の部分)には
=IF(LEN(合計セル)=8,"\",元の関数)
とすれば、とりあえず¥マークは付くと思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/03/05 16:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています