- ベストアンサー
エクセルで・・・
専用の請求書などを作成する上で以下のような事が 可能でしょうか?可能であれば方法を教えて下さい。 仮にセル番地K20に集計の金額が表示されるとし ます。¥12345という答えが出たとします。 その答えに基づいてセル番地E10には¥、F10 には 2 、G10には 3 、H10には 4 というふうに入るようにしたいのですが・・・ 答えの桁数は任意で決まっていません。 どんな場合でも頭には¥マークを入れたいのです。 例えば上の例で集計の金額が7桁の場合だとセル番 地C10に¥が入る事になります。 いろいろと試したのですがうまくいきません。 どなたか宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
本当は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でやりたい。
その他の回答 (3)
- sakenomo
- ベストアンサー率52% (35/67)
もうひとつ、ご質問例では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)),""))
お礼
ありがとうございました。 おかげでうまくいきました。 助かりました。感謝致します。
- sakenomo
- ベストアンサー率52% (35/67)
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)),"")
お礼
ありがとうございました。 おかげでうまくいきました。 助かりました。感謝致します。
- gatyan
- ベストアンサー率41% (160/385)
たとえば、 A1: =RIGHT(" "&TEXT(K20,"\0"),8) と入れると、K20の値が右詰の8桁の文字列になります。 A10: =MID(A1,1,1) B10: =MID(A1,2,1) のように、2番目の引数を順に1から8まで変化させるとそれらしいものになりませんか?
お礼
ありがとうございました。 参考にさせていただきます。
お礼
ありがとうございました。 参考にさせていただきます。