- 締切済み
エクセルで…
質問お願いします! 例えば、A1に900と入力したとして、その数値をMID関数を使って分割したいです。 ただ、3つに分割するのではなく、00900という風に、5つに分けたいと思っています。(B1~B5) そんな事は可能でしょうか? 全くの素人なんで分かりません。詳しい方お願いします!
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
例データ A-F列 931 0 0 9 3 1 9421 0 9 4 2 1 63213 6 3 2 1 3 4521 0 4 5 2 1 34 0 0 0 3 4 1 0 0 0 0 1 732311 3 2 3 1 1 A列が基データ。B-F列が求めるもの。 5列のデータに分解する。 最後の例のように6桁以上の場合はその部分は捨てられる。 B1の式は =IF(COLUMN()-1+LEN($A1)-5<1,0,MID($A1,COLUMN()-1+LEN($A1)-5,1)*1) F1まで右方向に式を複写し、次にB1:F1を下方向に式複写。 0のセルを空白にする場合は0の所を””にする。 数字化しないなら*1を取り除く。 請求金額などを、各桁を1セルづつに出したいときなどに、使われるだろう。式を工夫すれば、先頭に¥マークも入れられる。 TEXT関数で5桁の文字列をまず作っておくほうが、考え方は(式は)簡単になるが、上記も1つの方法という事で。
- kagakusuki
- ベストアンサー率51% (2610/5101)
A1に入力される数が、必ず5桁以内の自然数である場合には、次の様な関数でも可能です。 まず、B1セルに次の関数を入力してから、B1セルをコピーして、B2~B5に貼り付けて下さい。 =IF(ISNUMBER($A$1),INT(MOD($A$1,10^(ROWS(1:$5)))/10^(ROWS(1:$5)-1)),"")
B1: =IF(ROW()<6-LEN(A$1),"",MID(TEXT(A$1,"00000"),ROW(),1))
- ky072
- ベストアンサー率60% (85/140)
補足の質問について。 空白文字を残したければ、 =MID(RIGHT(CONCATENATE(REPT(" ",5),$A$1),5),1,1) =MID(RIGHT(CONCATENATE(REPT(" ",5),$A$1),5),2,1) =MID(RIGHT(CONCATENATE(REPT(" ",5),$A$1),5),3,1) =MID(RIGHT(CONCATENATE(REPT(" ",5),$A$1),5),4,1) =MID(RIGHT(CONCATENATE(REPT(" ",5),$A$1),5),5,1) 完全な空欄にしたければ、 =TRIM(MID(RIGHT(CONCATENATE(REPT(" ",5),$A$1),5),1,1)) =TRIM(MID(RIGHT(CONCATENATE(REPT(" ",5),$A$1),5),2,1)) =TRIM(MID(RIGHT(CONCATENATE(REPT(" ",5),$A$1),5),3,1)) =TRIM(MID(RIGHT(CONCATENATE(REPT(" ",5),$A$1),5),4,1)) =TRIM(MID(RIGHT(CONCATENATE(REPT(" ",5),$A$1),5),5,1))
セル B1 に式 =MID(TEXT(A$1,"00000"),ROW(),1) を入力して、此れを下方にズズーッとドラッグ&ペースト
- ky072
- ベストアンサー率60% (85/140)
こんな感じでいかがでしょう? =MID(TEXT($A$1,"00000"),1,1) =MID(TEXT($A$1,"00000"),2,1) =MID(TEXT($A$1,"00000"),3,1) =MID(TEXT($A$1,"00000"),4,1) =MID(TEXT($A$1,"00000"),5,1)
お礼
できましたー!! ありがとうございますo(^o^)o
補足
ちなみに先ほどの質問は900を00900に、と質問させていただきましたが、前の0を空白にする事は可能でしょうか? B1とB2は空白、B3から900と表示されるような感じです。 よろしくお願いします!
補足
またまたすいません!教えていただいた通り入力したんですが、左詰めになってしまいます。(900空白空白)右詰めにするにはどうしたらいいでしょうか?(空白空白900)質問ばかりすいません。