- ベストアンサー
MID関数について
一桁から八桁までの任意の数字を1セルごとに分けたいのですが、MID関数では左から取り出すため桁数が変化すると使えません。 一桁目にMID(A1,1,1)から八桁目にMID(A1、8,1)を入れると1234が4321と逆になってしまいます。 12でも12345678と桁が違っても1セルごとにわけることはできないでしょうか
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
No.3です。 私はNo.3で、A1セルに入力されている数値を一桁ずつ区切って 8つの横並びのセルに右詰めで入れる方法を回答したつもりです。 これがA1セルではなく、別シートの特定のセル(計算書!R20)であるならば No.3の回答の「$A1」の部分を「計算書!$R$20」に変えればいいだけです。 (ただし「COLUMN(A1)」の部分は変えないで下さい) この説明でご理解いただけない場合に備えて、念のためもう一度書きます。 収入金額欄の、千万の位の数字を表示したいセルに =IF(計算書!$R$20>=10^(8-COLUMN(A1)),MID(TEXT(計算書!$R$20,"00000000"),COLUMN(A1),1),"") と入力し、これを右方向に一の位を表示したいセルまでコピーします。 もし金額が0の場合に、一の位だけ"0"と表示したい場合は 一の位を表示したいセルの式だけを =RIGHT(計算書!$R$20,1) に変更してください。
その他の回答 (5)
- tom04
- ベストアンサー率49% (2537/5117)
No.2です。 No.3さんの補足を読ませていただいて・・・ 表示したいセルに =IF(LEN(計算書!$R$20)<COLUMN(A1),"",MID(計算書!$R$20,COLUMN(A1),1)*1) という数式を入れ、列(右)方向にオートフィルで8列コピーではどうでしょうか? 尚、数式内の最後の部分「*1」は単に数値化するためです。m(__)m
お礼
再度の回答ありがとうございます。皆様の御蔭で無事解決いたしました。左詰めで表示されました
- layy
- ベストアンサー率23% (292/1222)
一次的に 12を00000012 1234を00001234 12345678を12345678 にすれば すべて8桁の認識なので MID関数での悩みは消える。 前に0をつけたがやるなら半角スペースだろう。
お礼
皆様の御蔭で無事解決いたしました。 ありがとうございました。
- don9don9
- ベストアンサー率47% (299/624)
私は先のお二方と違って、左詰めではなく右詰め、つまり 数値の桁の位置を揃えたいのかな?と解釈しましたので 別の方法を紹介します。 見当はずれでしたら読み飛ばしてください。 千万の位のセルに =IF($A1>=10^(8-COLUMN(A1)),MID(TEXT($A1,"00000000"),COLUMN(A1),1),"") と入力して、右方向に一の位のセルまでコピーします。 もし、数値が0の場合に一の位だけ"0"を表示したい場合は 一の位の式だけ =RIGHT($A1,1) に変更します。 ※9桁(1億)以上の数値が入力された場合は結果がおかしくなりますのでご注意を。
補足
右詰で正解ですが、エクセルで作った確定申告書の収入金額欄に別シート(計算書!R20)のデータを表示させたいのです
- tom04
- ベストアンサー率49% (2537/5117)
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 任意セルに=IF(LEN($A$1)>=COLUMN(A1),MID($A$1,COLUMN(A1),1),"")を入力、右方向にコピー 下方向ならCOLUMNをROWに変えて下さい。
お礼
右詰で表示させるということが抜けてしまいましたが、皆様の御蔭で無事解決いたしました。 ありがとうございました。
お礼
1から9千万まで自由に表示させることができました。とても便利な機能になりますのでありがとうございました。 (A1)を(R20)としていましたので表示できませんでした。