• ベストアンサー

excelで数字列から4桁ずつ分けて表示させたい

excelを使って次のようなことをしたいのですが、うまくいきません。 あるセルに 0123456789123456 と16桁の数字列を入力すると 別の表の4つのセルにそれぞれ 0123 4567 8912 3456 と表示される。 字数が15桁を超えるとexcelが認識してくれないのでそれにも困っています。 どうすればよいのかご教授よろしくお願いします。。

質問者が選んだベストアンサー

  • ベストアンサー
  • mar00
  • ベストアンサー率36% (158/430)
回答No.4

Sub Macro9() For INP1 = 1 To Cells(Rows.Count, 1).End(xlUp).Row  '(1) A = Cells(INP1, 1).Text B = Len(A) RETU = 2  '(2) For INP2 = 1 To B Step 4 C = Mid(A, INP2, 4) Cells(INP1, RETU).NumberFormatLocal = "0000"  '(3) Cells(INP1, RETU) = C RETU = RETU + 1 Next INP2 Next INP1 End Sub (注)18桁などの場合も表示されます。(画像の3行目) 値は99ですが0099と表示されます (1) 1行目からデータが入力されているものとしています。 2行目からであれば1To......の1を2に変えて下さい。 (2) 4桁にわけられたものはB列から表示されるようになっています。 RETU = 2 の2はB列の事です。C列であれば3に変えて下さい。 (3) 表示されたものは書式で4桁表示にして数値として扱っています。 文字列にしたいのであれば"0000"を"@"下さい。

その他の回答 (3)

回答No.3

A列 16桁限定 A列選択→[Ctrl]+[1]セルの書式設定 表示形式 文字列 にしておく C1セル =LEFT($A1,4) D1セル =MID($A1,5,4) E1セル =MID($A1,9,4) F1セル =RIGHT($A1,4) MID関数で統一するなら C1セル =MID($A1,1,4) D1セル =MID($A1,5,4) E1セル =MID($A1,9,4) F1セル =MID($A1,13,4) さらに配列数式を使うなら C1:F1セルを選択して =MID($A1,{1,5,9,13},4) [Ctrl]+[Shift] +[Enter] で確定({}で囲まれる)

noname#204879
noname#204879
回答No.2

「16桁の数字列」が Sheet1 のセル A1 に入力されているとき、別の Sheet の任意のセルに、 式 =MID(Sheet1!A$1,1+(ROW(A1)-1)*4,4) を入力して、此れを下方にドラッグ&ペースト または 式 =MID(Sheet1!$A1,1+(COLUMN(A1)-1)*4,4) を入力して、此れを右方にドラッグ&ペースト

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

> 字数が15桁を超えるとexcelが認識してくれないので 数値のままですと、15桁しか扱えません。 アポストロフィ(')を付ける、セルの書式を変更するなどして文字列として処理するのが妥当です。 そのまま計算には使えなくなるので、VALUE関数なんかで再度数値化する必要がありますが。 -- > あるセルに > 0123456789123456 > と16桁の数字列を入力すると A1に入力したとして、 B列に、 1 2 3 4 … と連番を入力しておき、 C列に、 C1=MID($A$1, (B1-1)*4+1, 4) C2=MID($A$1, (B2-1)*4+1, 4) … なんかの式で抽出とか。

関連するQ&A

  • エクセルでの数字を3桁表示にする方法

    エクセルで数字を3桁で表示したいです。 2桁までの数字の場合には表示形式を文字列にするか  ’ をつけて頭にゼロをつけているのですが、 下記のような場合にはどのようにしたらできるのかがわかりません。 たとえば セルA1に 「001」 と入力し、A2を「=A1+1」とするとき A1を001にはできるのですが、A2は2となってしまいます。 A2を「002」とする設定はできるのでしょうか? わかる方がいましたら、教えていただければと思います。 よろしくお願いします。

  • エクセルで数字の桁を揃えた後の計算式

    エクセルの列で順に 「1、2、3、4、5・・・・」 と打ち込んだものを 「001-1、002-1、003-1、004-1、005-1、・・・・」 の表示に換えたいのですが、やり方が分かりません。 数字の桁を3桁に合わせるのは、「セルの書式設定→表字形式→ユーザー設定→000」で出来たのですが、 =001と表字させたセル&”-1”と計算式を入れたところ「1-1」となってしまいます。 何か計算式等で「001-1」の表字にもってくるやり方はあるのでしょうか。 よろしくお願いします。

  • エクセルで数字を入力すると自動的に桁が下がってしまいます

    エクセルに数字を入力しようとすると、 自動的に2桁繰り下がって表示されてしまいます。 「2」と入力すると「0.02」になってしまいます。 「'2」と入力すれば「2」と表示できるのですが、 表計算を受け付けなくなってしまうようでした。 セルの書式設定などを探したのですが、直せません。 直し方をご存知の方はどうか教えてください。 ちなみにバージョンは2000です。

  • excel 文字列から左4桁の数字を抜き出す方法

    こんばんわ。 質問があり投稿致します。 Excel2013を利用しております。 初歩的な質問で申し訳ありません。 セルに 2014年2月分  と文字列が書かれており、先頭4桁を数字として別なセルに貼り付けたいです。 今回の場合なら、別なセルに2014と表示したいです。 文字列としてなら、LEFTやRIGHTの関数で抜き出しが出来そうです。 ただし、数字としては抜き出しが出来ないようでした。 どのような関数を利用したら良いのか、お教え頂けますと幸いです。 宜しくお願い致します。

  • Excelの数字の文字列入力で

    Excel2003です。 セルに   "651,652,653" のような3ケタ分の数字とカンマの文字列を入力しようとすると    651652653 という数値にみなされてしまいます。 入力するときに、文字列の先頭に ’ を付けると文字列に みなしてもらえるのですが、つい忘れてしまい面倒です。 セルに指定などで設定する方法は何かありますでしょうか。 よろしくお願いします。

  • Excelでの二桁数字表示

    Excelでの二桁数字表示 Excelで縦書きに平成22年と文字を入力する場合ですが、そのままだと22が縦に並んでしまうと思います。その22を2桁表示のように横に並べて表示させることは可能でしょうか。

  • 同一セル内の3桁の数字を任意の数字に変換し表示

    excelの関数を教えて下さい。 同一セル内の3桁の数字(1から8までの数字を使用した3桁;例えば124)を、別のセル内に、関数(12345678をそれぞれ24587613へ変換する関数)で変換された3桁(例えば248)で表示したいのですが、その際に使用する関数を教えてください。エクセル上に表示する数字は1から8までのうちの3桁で、12345678をそれぞれ24587613へ変換したいです。 各セルに1数字の場合はVLOOKUP関数を使用し変換できたのですが、同一セル内に複数数字がある場合の考え方がわかりません。 よろしくお願いします。

  • エクセルシートのセルに3桁と4桁の数字を・・

    エクセルシートのセルに3桁と4桁の数字を入れたいのですが、 000とか、 001 とか、 0850 などです。 現在、 0とか 1 とか 850 になっています。 おそらく、数字情報のデータになっていると思います。 それぞれ、0で始まる3桁、4桁の文字列にしたいのですが、 よろしくお願いします。行数は30000行ほどあります。

  • セルに最初からある文字列を表示させておいて、そのセルを選択したら、その文字列の後から3桁数字を入力できるようにしたい

    タイトルが長くてすみませんm(_ _)m エクセル(97)に関しての質問です。 例えば、セルの中に最初から「15-G」という文字列を 表示させておいて、(ダブルクリックして編集という 形じゃなくて)そのセルを選択しただけで、 その文字列の後から3桁の数字を入力できるように したいのですがいい方法はないでしょうか? 他にやってみた方法で、ユーザー定義(私が考えた定義→「"15-G"@」)でセルに3桁の数字(例えば567)を入力しますと、「15-G567」というように表示させる事が出来たのですが、何も入力されてない時は当たり前ですが空白のままです。 出来れば、最初から「セルの中の始めに15-Gという文字列を」表示させておきたいのですが…

  • エクセル2003で入力した数字に応じ別のセルに固定文字を表示

    エクセル2003で入力した数字に応じ別のセルに固定文字を表示 例として セルA1に0155と入力があれば、左の2桁01を認識してセルB1は"赤"と表示 セルA1に0255と入力があれば、左の2桁02を認識してセルB1は"青"と表示 セルA1に0355と入力があれば、左の2桁03を認識してセルB1は"緑"と表示 上記のように設定したいのですが、調べても関数の組み合わせがわかりません。 教えてください。宜しくお願い致します。

専門家に質問してみよう