- ベストアンサー
エクセル数式について
A1のセルに¥123,456,789 9桁の数値があり、 B1~K1のセルに左から順に(下記の通り)表示したいのですが、 どのような方法がありますか? B1→\ C1→1 D1→2 E1→3 F1→4 G1→5 H1→6 I1→7 J1→8 K1→9
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
例を見るとA1セルは整数になっていますので、整数と仮定します。 B2~K2に「9~0」を入力してください。 (B2→9,C2→8・・・・I2→2,J2→1,K2→0) ※K2の0は本当は不要ですが、B1の数式の考え方を理解する上ではあったほうがわかりやすいです。 そして、 B1に =IF(LEN($A$1)-B2<0,"",IF(LEN($A$1)-B2=0,"\",MID($A$1,LEN($A$1)-B2,1))) と入力して、 それを C1~K1に貼り付けてください。 この方法はで、A1のデータに小数点以下があるとその桁数までカウントしてしまうので、整数である事が条件となります。 ”A1には数式(参照セル*0.4)” との事ですので、その数式を ROUND((参照セル*0.4),0) にすればA1のデータは整数になります。(小数点以下1桁を四捨五入した)
その他の回答 (2)
- Silentsea
- ベストアンサー率38% (73/189)
A1セルが「数値」なのか「文字列」かが不明なのですが(¥表記やカンマ表記で対応が変わる) とりあえず数値と解釈し、A1には123456789という数列、¥やカンマは表示形式→会計を使用しているとします。 B1にはそのまま¥と入力 C1に =MID(A1,1,1) →解説MID=(セル,開始位置,文字取得数) D1に =MID(A1,2,1) と、真ん中の開始位置だけ1,2,3,4,5,6と増やしていけば可能です。 ただ、上の方法では桁数が3桁、4桁混ざっている場合、セル列によって桁数がばらばらになるので C1に =ROUNDDOWN(A1/10^8,0) →解説 A1の9桁目を100,000,000で割って小数点以下切り捨て D1に =ROUNDDOWN(A1/10^7,0) ・・以下10^1まで入力 としたほうがいいかもしれません。 この方法だとB1セルには必ず一億の桁が表示されます。 100円の場合だと 0 が表示されますが、表示形式→会計にしておけば"-"と表示されます。 -の表示もなくしたい場合は、各数式を =IF(ROUNDDOWN(A1/10^8,0)=0,"",ROUNDDOWN(A1/10^8,0)) 解説:ROUNDDOWN(A1/10^8,0)が0ならば、""何も表示せず、0じゃないなら値を表示する。 として下さい。 他にもRIGHT関数とLEFT関数を使用する方法がありますが 二番目のROUNDDOWN関数を使用した方が割と数式も少なく、桁数の問題も回避できるかと思います。
補足
すいません(><) 最高9桁までになり、最低7桁になります。 その際、A1に¥1,234,567の場合、 B1→空白 C1→空白 D1→\ E1→1 F1→2 G1→3 H1→4 I1→5 J1→6 K1→7 の結果を求めてます。 ちなみに、A1には数式(参照セル*0.4)カンマと\は表示形式にて、 表示してます。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 B1に以下の数式を入力してK1までコピーして下さい。 ■A1が数値(123456789)の場合 =IF($A1<>"",IF(LEN($A1)<COLUMN(A1)-1,"",MID(TEXT($A1,"\0"),COLUMN(A1),1)),"") ■A1が文字列(¥123,456,789)の場合 =IF(LEN(SUBSTITUTE($A1,",",""))<COLUMN(A1)-1,"",MID(SUBSTITUTE($A1,",",""),COLUMN(A1),1))
補足
すいません(><) 最高9桁までになり、最低7桁になります。 その際、A1に¥1,234,567の場合、 B1→空白 C1→空白 D1→\ E1→1 F1→2 G1→3 H1→4 I1→5 J1→6 K1→7 の結果を求めてます。 ちなみに、A1には数式(参照セル*0.4)カンマと\は表示形式にて、 表示してます。
お礼
出来ました\(^▽^)/ まだ・・・きちんと数式を理解していませんが 求めていた通りに動きました。 落ち着いて、きちんと理解したいと思います。 ありがとうございました。