• 締切済み

セル内にある長さの違う数字の分割

A1=123 A2=456 A3=7890 という桁数の違う数字がセル内にある時、B行に千の位、C行に百の位、D行に十の位、E行に一の位⇒  B1=空白 C1=1 D1=2 E1=3 B2=空白 C2=4 D2=5 E2=6 B3=7 C3=8 D3=9 E3=0 と他のセルに表示させたいのですが…、関数MIDを使用すると桁数が違う為、うまくいきません。何か方法があれば教えて下さい。よろしくお願いします。

みんなの回答

noname#77845
noname#77845
回答No.3

#1,2です。 「ちなみに""の間に半角スペースを入れなくても上手くできたのですが、このスペースにはどのような意味合いがあるのでしょうか?」 RIGHT(" "&A1,4) この式は文字列を必ず右から4桁取ってくるためのものです。 一桁でも有効になるように半角スペースを3個追加しています。 例えば、(○←スペースを表すとします。) 123 の時にスペースを3個足して ○○○123 とし、右から4文字持ってくれば、必ず ○123 になります。 はじめから4桁の時は ○○○7890 の右から4桁なので、影響有りません。 2桁の時は同じように ○○○12 の右から4桁持ってくるので ○○12 になります。 必ず右詰4桁に出来れば、後は簡単でしょう。

noname#77845
noname#77845
回答No.2

#1です。 見づらくなってしまいました。 " "の中は半角スペースが3個入っています。

sumomo24
質問者

お礼

さっそく行ってみたところ見事にできました。とても時間をかけて悩んでいたので大変助かりました。ありがとうございます。 ちなみに""の間に半角スペースを入れなくても上手くできたのですが、このスペースにはどのような意味合いがあるのでしょうか?入れないと今後不具合がでてきますか?

sumomo24
質問者

補足

さきほどお礼の欄に「""の間に半角スペースを入れなくても上手くできた」と記載しましたが、コピーで行ったので、スペースは入力されていました。すいません。

noname#77845
noname#77845
回答No.1

一つの案ですが、文字列を強制的に4文字にします。 このとき、1桁から4桁の文字に対応するために RIGHT(" "&A1,4) としましょう。 そうすると、 B1=LEFT(RIGHT(" "&A1,4),1) C1=MID(RIGHT(" "&$A1,4),2,1) D1=MID(RIGHT(" "&$A1,4),3,1) D1=MID(RIGHT(" "&$A1,4),4,1) 又は、 D1=RIGHT(A1,1) として下にコピーすればOKです。

関連するQ&A

専門家に質問してみよう