excelを使って次のようなことをしたいのですが、うまくいきません。

あるセルに
0123456789123456
と16桁の数字列を入力すると
別の表の4つのセルにそれぞれ
0123 4567 8912 3456
と表示される。

字数が15桁を超えるとexcelが認識してくれないのでそれにも困っています。
どうすればよいのかご教授よろしくお願いします。。

このQ&Aに関連する最新のQ&A

A 回答 (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"を"@"下さい。
「excelで数字列から4桁ずつ分けて表示」の回答画像4
    • good
    • 0

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] で確定({}で囲まれる)
「excelで数字列から4桁ずつ分けて表示」の回答画像3
    • good
    • 0

「16桁の数字列」が Sheet1 のセル A1 に入力されているとき、別の Sheet の任意のセルに、


式 =MID(Sheet1!A$1,1+(ROW(A1)-1)*4,4) を入力して、此れを下方にドラッグ&ペースト
または
式 =MID(Sheet1!$A1,1+(COLUMN(A1)-1)*4,4) を入力して、此れを右方にドラッグ&ペースト
    • good
    • 0

> 字数が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)

なんかの式で抽出とか。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルで、いつのセルに入っている7桁の数字をそれぞれ1つづつ、7つのセルに分ける関数はありますか??

こんばんは。大変こちらでお世話になっています。

エクセルのデーターをもとに、宛名印刷をしたくていろいろ試みているのですが、会社規定の封筒の郵便番号枠に、美しく数字を印字することがどうしてもできません。
こうなったら、郵便番号をばらして、1字づつ印刷しようかと思っています。

そこで教えて頂きたいのですが、今1つのセルに入っている郵便番号7桁をそれぞれ1桁づつ、7つのセルに分けたいのです。これは何か関数を使ってできるのでしょうか?
どうぞ教えてください。よろしくお願いします。

Aベストアンサー

MIDという関数が良いかと思います。
A1に対象の値が入っているとして
=MID(A1,xxx,1)
xxxの部分は何桁目から取り出すか、最後の数字が何文字取り出すかという指定です。

例)A1に「abcdefg」とあり
=MID(A1,3,1)
とすると「c」が表示されます。

Qエクセル 数字を分割して別セルに表示したい。

1つのセルの中に数字と記号で作られた番号があります。
それを下4桁とその他に別け、それぞれを別のセルに表示させたいです。
入力される番号の桁数は4~18桁。記号やハイフンもバラバラのデータです。

例えばA1セルが以下の番号
08T-000847531

これを、

B1セル 08T-00084
C1セル 7531

としたいです。

下4桁については関数RIGHT(A1,4)で済みますが、
そのほかの部分は毎回桁数も異なるのでLEFT関数ではうまく分けられません。
(毎回、文字数指定を変えなければなりません。)
下4桁、それ以外。で簡単に分けられる方法はないでしょうか。

御教授お願い致します。

Aベストアンサー

考え方の一つに、文字列の長さを調べて、必要な文字の長さを切り出すという方法がある。
=LEFT(A1,LEN(A1)-4)
No.1で答えられているような、切り出した文字列を元の文字列から削除(空白に置き換える)と言う方法もありだろう。

Qエクセルの桁区切り、4桁にできますか?

エクセルで、入力した数字を自動的に3桁区切りにしてくれる機能がありますよね。あれを3桁ではなく4桁(日本式)でやってくれるような設定はできないのでしょうか。
100,000,000 などとやられても、一目で読めません…。

Aベストアンサー

>0~1000までは先頭に ,, が付いてしまい、
>1,0000~1000,00000までは先頭に , が付き、
>億より上のカンマは付きません…。

参考までに。

1兆円未満の正の整数なら以下のユーザー定義で表示できます。

[>=10000000]#","####","####;[>=10000]#","####;G/標準

Q【エクセル】16進数の文字列を2桁ずつ区切りたい。

16進数の文字列を入力し、表示は2桁ずつハイフンを入れながら区切りたいと思っております。

入力:00062936EA37
表示:00-06-29-36-EA-37

「セルの書式設定」→「ユーザ定義」→「種類」で
いろいろ試しているのですが、わかりません。
宜しくお願い致します。

Aベストアンサー

ご面倒でも、こんな式を入れてみてください。

=CONCATENATE(MID(A1,1,2),"-",MID(A1,3,2),"-",MID(A1,5,2),"-",MID(A1,7,2),"-",MID(A1,9,2),"-",MID(A1,11,2))

Qエクセルの数値欄の桁区切りを4桁にする方法

日本の数値の読み方は、一十百千、一万十万百万千万、一億十億百億千億、一兆・・・のように4桁ごとに変わっていくのに、エクセルの数値の区切りは、3桁(123,456,789)しかなくて不自然で読みにくいです。
これを(1234,5678)のように4桁区切りに(自動的に)したいのですが、手順がわかりません。
初歩的な質問ですみませんが、どなたかご存じでしたら、教えて下さい。

Aベストアンサー

◆負の数がないことを前提に
★表示形式をユーザー定義で、
 [>100000000]0!,0000!,0000;[>10000]0!,0000;0
としてください

Qエクセルのセル内数字を桁毎に分割転記したい

変な質問で分かりづらいかもしれません。
セル1Xに12345という数字があったとします。
セル1Aには、セルXの数字の後ろから5番目の1を、セル2Bに後ろから4番目の2を、セル3Cに後ろから3番目の3をというように、数字をその後ろからの桁番目に対応させて表示したいのですが、どうすれば出来るのでしょうか。
よろしくお願いいたします。

Aベストアンサー

>セル1Aには、セルXの数字の後ろから5番目の1を、セル2Bに後ろから4番目の2を、セル3Cに後ろから3番目の3をというように、数字をその後ろからの桁番目に対応させて表示したいのですが、どうすれば出来るのでしょうか。
質問の表現が一般的でないので誤解しているかも知れませんが、次のようにすれば良いと思います。

A1セルに次の式を入力します。
=MID($X$1,COLUMN(),1)*1

A1セルをB2、C3 ,D4、E5セルへコピーすると添付画像のようになります。

Q複数桁の数字を1セルずつ表示したい

エクセル2010を使っています。

1つのセルに入っている複数桁の数字を、1セルずつ分けて表示させたいと思っています。
しかも、数字を置き換えて桁数が減った場合には、右に詰めたいです。

(例)
AIに12345 と入力したら、B1に1、B2に2、B3に3、B4に4、B5に5と表示させたい。
A1の数字を123に置き換えたら、B1、B2は空欄、B3に1、B4に2、B5に3と置き換わるようにしたい。

ただ単に数字を1セルずつ分けるだけでしたら、mid関数を使ってできるのですが、
桁数の異なる数字に置き換えると右に詰めるようにするにはどうしたらよいでしょうか。

更に、数字の左側に円マークも表示させたいです。

よろしくお願いします。

Aベストアンサー

>B1に1、B2に2、B3に3、B4に4、B5に5と表示させたい。

 それでは数字が縦並びになっている事になりますが、それを

>右に詰めたいです。

とは一体どういう意味なのでしょうか?
 しかも、

>更に、数字の左側に円マークも表示させたいです。

となりますと、1,2,3,4,5の5個の数字に加えて円マークまで表示するのですから、合わせて6個のセルが必要になりますから、B5に1の位を表示させたのでは、セルの個数が足りないため、\12345を表示する事は出来ません。
 ですから、

>B1に1、B2に2、B3に3、B4に4、B5に5と表示させたい。

というのは間違いであるものと考えて、B1~G1に1桁ずつ、円マーク付きで表示する方法を回答させて頂きます。

 まず、G1セルに次の関数を入力して下さい。

=IF(COLUMNS(G:$G)>LEN(TEXT($A1,"¥0;¥-0")),"",LEFT(RIGHT(TEXT($A1,"¥0;¥-0"),COLUMNS(G:$G)),1))

 そして、G1セルをコピーして、B1~F1のセル範囲に貼り付けて下さい。

 以上です。

>B1に1、B2に2、B3に3、B4に4、B5に5と表示させたい。

 それでは数字が縦並びになっている事になりますが、それを

>右に詰めたいです。

とは一体どういう意味なのでしょうか?
 しかも、

>更に、数字の左側に円マークも表示させたいです。

となりますと、1,2,3,4,5の5個の数字に加えて円マークまで表示するのですから、合わせて6個のセルが必要になりますから、B5に1の位を表示させたのでは、セルの個数が足りないため、\12345を表示する事は出来ません。
 ですから、

>B1に1、B2に2、B3に3、B4に4、B5...続きを読む

QExcelで列の上4桁のみ抽出させたい。

Excelで例えばA列に
12345
23322
22333
などの値が合った場合に、下記のように上4桁だけを抽出させたいのですが、方法はあるでしょうか?
1234
2332
2233

Aベストアンサー

普通に
=LEFT(A1,4)
では駄目ですか?

Qエクセルで、頭に0をつけて数字の桁を揃える方法

エクセルで、必ず5桁の数字を入れる列があるとします。
ところが、数値データとして最初に作っているので、0が頭になく桁が足りない場合があります。
任意文字として5桁の数字にしたいのですが、

何かいい方法はありませんでしょうか?

例)
A列 A列
50      00050
1000  ⇒  01000
11111    11111

どうぞよろしくお願いいたします。

Aベストアンサー

次の方法は如何でしょうか。
(1)表示だけで良いのならば、セルの書式設定→表示形式→ユーザ定義で00000を設定
(2)データとして必要ならば、空き列(仮にB列)B1に=TEXT(A1,"00000")を入力、下方向にコピー→B列をコピー→A列に形式を選択して貼り付けで「値」を選択→OK、B列を削除

Q【Excel】数字を三桁毎に区切ってセルに振分る

【A1】1,146,900,000

【A2】【A3】【A4】【A5】
   1 146 900 000

のように、売上金額を通常入力したものを4つのセルに振り分けたいのですが、
どのような関数を使えばよいでしょうか。

MIDなども使ってみたのですが
桁数が決まっていないので私のレベルでは手に負えませんでした・・。

どなたかご教示いただけないでしょうか。
よろしくお願い致します。

Aベストアンサー

No.6です。

>【A2】
【A3】
【A4】
【A5】に分割ではなく
【B1】【C1】【D1】【E1】
に分割でした。

だとすると、前回の数式を利用してB1セルに
=MOD(INT($A$1/(10^(3*(4-COLUMN(A1))))),1000)
という数式を入れ、E1セルまでオートフィルでコピーしてみてください。

次に
>上記事情でできる範囲でアレンジしてみたのですが、#NUM!エラーになってしまいました。
>更に、ユーザー定義の中に000を見つけられませんでした

に関してですが、今回はB1セルは何もしないで
C1~E1セルを範囲指定 → 右クリック → セルの書式設定 → ユーザー定義 →
「G/標準」となっている欄に、「G/標準」を消し、ご自身で
000 と入力します。
これでC1~E1セルが必ず3桁で表示されます。

こんなんではどうでしょうか?m(_ _)m


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報