• ベストアンサー

エクセルで・・・

専用の請求書などを作成する上で以下のような事が 可能でしょうか?可能であれば方法を教えて下さい。 仮にセル番地K20に集計の金額が表示されるとし ます。¥12345という答えが出たとします。 その答えに基づいてセル番地E10には¥、F10 には 2 、G10には 3 、H10には 4  というふうに入るようにしたいのですが・・・ 答えの桁数は任意で決まっていません。 どんな場合でも頭には¥マークを入れたいのです。 例えば上の例で集計の金額が7桁の場合だとセル番 地C10に¥が入る事になります。 いろいろと試したのですがうまくいきません。 どなたか宜しくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

本当はMID関数は文字列に対して使うものと思いますが 数値でも使えました。 数値の最大を何桁かに決めて 右端のセルに =MID(A1,LEN(A1)-,1) その左に =MID(A1,LEN(A1)-1,1) その左に =MID(A1,LEN(A1)-2,1) これでLEN(A1)-xが0になるとき¥を マイナスになる時は空白を入れる。 ----さて実際には A1に2345 B1に=IF(LEN($A$1)+COLUMN()=6,"\",MID($A$1,LEN($A$1)+COLUMN()-6,1)) C1からF1まで複写します。 B1は¥、C1は2、D1は3、E1は4、F1は5 となります。 これの外に所定の桁数以下のときの、¥の前にスペースのセルが必要ですが、 IFを前にネストして=IF(LEN($A$1)+COLUMN()=6,"\",IF(LEN($A$1)+COLUMN()>6,MID($A$1,LEN($A$1)+COLUMN()-6,1),"") 最後の式はテストしてません。 長くなりすぎるのでVBAでやりたい。

choroq
質問者

お礼

ありがとうございました。 参考にさせていただきます。

その他の回答 (3)

  • sakenomo
  • ベストアンサー率52% (35/67)
回答No.4

もうひとつ、ご質問例では9桁までが入力できると思いますが、金額が10桁を超えた場合はEを表示するようにしました。 =IF(LEN($K$20)+1>COLUMN($J$10),"E",IF(LEN($K$20)+2>COLUMNS(K$10:$K10),IF(LEN($K$20)+1=COLUMNS(K$10:$K10),"\",LEFT(RIGHT($K$20,COLUMNS(K$10:$K10)),1)),""))

choroq
質問者

お礼

ありがとうございました。 おかげでうまくいきました。 助かりました。感謝致します。

  • sakenomo
  • ベストアンサー率52% (35/67)
回答No.3

K20に表示されている¥は、セルの表示形式によるものということでよいでしょうか。 J10に下を入れて、左へオートフィルでいかがでしょうか。 =IF(LEN($K$20)+2>COLUMNS($K$10:K11),IF(LEN($K$20)+1=COLUMNS($K$10:K11),"\",LEFT(RIGHT($K$20,COLUMNS($K$10:K11)),1)),"")

choroq
質問者

お礼

ありがとうございました。 おかげでうまくいきました。 助かりました。感謝致します。

  • gatyan
  • ベストアンサー率41% (160/385)
回答No.1

たとえば、 A1: =RIGHT(" "&TEXT(K20,"\0"),8) と入れると、K20の値が右詰の8桁の文字列になります。 A10: =MID(A1,1,1) B10: =MID(A1,2,1) のように、2番目の引数を順に1から8まで変化させるとそれらしいものになりませんか?

choroq
質問者

お礼

ありがとうございました。 参考にさせていただきます。

関連するQ&A