元の数値の桁数が4桁未満の場合は右詰で表示し、小数点以下の桁がある場合には小数点以下第一位を四捨五入した値で表示し、負の数である場合にはマイナス記号を付けて表示する方法です。
今仮に、元の数値がA1セルに入力されていて、1の位をE1セルに、10の位をD1セルに、100の位をC1セルに、1000の位をB1セルにそれぞれ表示するものとします。
まず、E1セルに次の様な関数を入力して下さい。
=IF(ISNUMBER($A1),IF(COLUMNS(E:$E)<=LEN(ROUND($A1,0)),IF(ISNUMBER(MID($A1,LEN(ROUND($A1,0))-COLUMNS(E:$E)+1,1)+0),MID(ROUND($A1,0),LEN(ROUND($A1,0))-COLUMNS(E:$E)+1,1)+0,MID($A1,LEN(ROUND($A1,0))-COLUMNS(E:$E)+1,1)),""),"")
そして、E1セルをコピーして、B1~D1の範囲に貼り付けて下さい。
これで、1の位がE1セルに、10の位がD1セルに、100の位がC1セルに、1000の位がB1セルにそれぞれ表示されます。
但し、元の数値が4桁の負の数である場合には、マイナス記号を表示させるには5個のセルが必要になりますから、B1~E1の4個のセルでは表示させるセルの個数が不足して、このままでは先頭に来るマイナス記号を表示出来ませんので、もし、4桁の負の数を表示させる事もある場合には、1の位はE1セルではなくF1セルに表示し、下から5桁目をB1セルに表示する様にしなければなりません。
ですから、4桁の負の数を表示させる事もある場合には、F1セルに次の様な関数を入力してから、F1セルをコピーして、B1~E1の範囲に貼り付けて下さい。
=IF(ISNUMBER($A1),IF(COLUMNS(F:$F)<=LEN(ROUND($A1,0)),IF(ISNUMBER(MID($A1,LEN(ROUND($A1,0))-COLUMNS(F:$F)+1,1)+0),MID(ROUND($A1,0),LEN(ROUND($A1,0))-COLUMNS(F:$F)+1,1)+0,MID($A1,LEN(ROUND($A1,0))-COLUMNS(F:$F)+1,1)),""),"")
お礼
お忙しい中、有り難うございます。 早速処理させて頂きました。