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エクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

Q5桁の数字を値を変えずに表示のみ下3桁で表示したい

Excel2007を使っています。

学校の生徒番号を5桁で表示しています。
例えば1年1組1番は10101です。
一部の授業が2年生と3年生の合同授業があるためです。
ですが、ほとんどの授業は学年単位なので3桁表示で十分です。

そこで「10101」を「101」のように表示させることはできるでしょうか?
同様に「20101」も値を変えずに表示だけ「101」にすることはできますか?

ご教示お願いいたします。

Aベストアンサー

原則としてそういうことが出来る方法はありません。

敢えて行うとすると
例1)
セルの書式設定を文字列に変えておく
10101を記入する
数式バーの中で消したい10の文字を選択し,フォントの色を白,またはセルの塗り色と同じ色に変えてEnterする

例2)
セルの書式設定の表示形式のユーザー定義で
##Ctrl+J000
ここでCtrl+Jはキーボードでコントロールキーを押しながらJのキーを押す
と設定し,
更に配置タブに移って縦方向の配置を下詰めに設定し,折り返して全体を表示のチェックを入れてOKし,
更に行の高さを今の高さから+1ピクセルか+2ピクセル高くする

のような工夫はできます。


#本筋ではありませんが「10や20を表示しない」は間違いだと思います。


あとは実際の作表の工夫で,A列に5桁の「マスター生徒番号」を用意しておいてから,B列に「表示用の3桁あるいは5桁の生徒番号」を別に計算しておいて,そちらを実際に使った方が合理的です。
もちろんA列に学年,B列に組+生徒を並記しておき,C列に必要に応じて必要なデータを計算で作成してそちらを使うのも合理的なやりかたです。

原則としてそういうことが出来る方法はありません。

敢えて行うとすると
例1)
セルの書式設定を文字列に変えておく
10101を記入する
数式バーの中で消したい10の文字を選択し,フォントの色を白,またはセルの塗り色と同じ色に変えてEnterする

例2)
セルの書式設定の表示形式のユーザー定義で
##Ctrl+J000
ここでCtrl+Jはキーボードでコントロールキーを押しながらJのキーを押す
と設定し,
更に配置タブに移って縦方向の配置を下詰めに設定し,折り返して全体を表示のチェックを入れてOKし,
更に行の...続きを読む

Qエクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

Q6桁の数字の上2桁で表される数字を西暦に変換

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

6桁の数字があります。
上2桁が西暦を表しています。

A列     B列
09xxxx → 2009
90xxxx → 1990
85xxxx → 1985

A列にあるデータを読み取ってB列に西暦で表示する方法を教えてください。
よろしくお願いします。

Aベストアンサー

簡易版:2012年で仕分ける
=TEXT(LEFT(TEXT(A1,"000000"),2),"[<13]100;00")+1900

Qエクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

参考になりますかね?m(_ _)m

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

QWord2003 4列の表を2列ずつに分割したい。 

Word2003です。
4列の表を2列ずつに分割したい。 

罫線 → 表の分割を押すと行方向に分割されますが列方向に分割したいのですが可能でしょうか

なお、表の右側には2列分ほどの余裕があります。

列を挿入して横罫線を消すと分割した表を動かすことができません。

Aベストアンサー

1. 表の右側2列分をすべて選択→右クリックし切り取り。
2. 残った表を全体を選択→表のプロパティ→表タブの文字の折り返しをするに設定。
3. 表の右に段落が追加されカーソルがある状態で右クリック→貼り付け。

以上で、独立した左右に2列ずつの表に分割されるはずですが。
 

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

QEXCEL2列1列で0を表示する方法

EXCEL2列を1列にする時、B1&C1ですると0001&003が13になってしまします。0001003と表示する方法を教えて下さい。

Aベストアンサー

No.2です!
たびたびごめんなさい。

前回の最後部分
>尚、0001003と表示されていても実データは「13」になります
は間違いで
実データは「1003」になります。

さらに別案として
=TEXT(B1*1000+C1,"0000000")

でも同じ表示結果になると思います。

何度も失礼しました。m(_ _)m

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

QExcelのパスが格納されている列の隣の列に画像を自動で表示させたい

こんにちは。いつも過去ログを大変参考にさせていただいております。
今回も過去Q&Aを探したのですが、何分コーディングの基本を知らずに回答欄のコピペで済ましているため、自分で問題点を見つけることができません。

<質問内容>
Bの列に画像のフルパスを入れてあります。その画像をAの列に自動で表示させるマクロボタンを作りたいのです。B列の2枚目までは上手く写真が表示されます。
しかし、パスが入っていない3列目はC:\NoPicture.jpgを表示させたいのですが、どうしてもそこで止まってしまい、
実行時エラー’1004:’
Picture クラスのInsert プロパティを取得できません。
とういうエラーメッセージが出ます。
正しいコードの書き方をどなたかお教えいただけますでしょうか?

<問題点?>
'r.Item(1).Value = s
With .Pictures.Insert(s).ShapeRange
この辺がうまくいっていないかと・・

<シート内容>
行  列
1  A(画像表示)  B(画像のフルパス)  
2             C:\teet01.JPG
3             C:\teet02.JPG
4               (空白)
5              C:\teet03.JPG
.
.
20               C:\teet19.JPG

<マクロ文>
Private Sub CommandButton1_Click()
Const n As Long = 2 'margin
Dim r As Range
Dim i As Long
Dim x As Double
Dim s As String

With ActiveSheet
   For i = 2 To .Cells(.Rows.Count, 2).End(xlUp).Row '(B)セルは"2", 2行目から順にパスを取得
     Set r = .Cells(i, 1).MergeArea '(A)セルは"1"
     s = Cells(i, 2).Value
     If Dir(s) = "" Then
     s = "C:\NoPicture.jpg" '画像が無い場合NoPicture画像を表示
   Else
    Dir Application.Path
   End If
   'r.Item(1).Value = s
   With .Pictures.Insert(s).ShapeRange
   .LockAspectRatio = msoTrue '縦横比固定
   x = Application.Min(r.Width / .Width, r.Height / .Height)
   If x < 1 Then .Width = .Width * 60 '画像の幅
   .Left = r.Left + (r.Width - .Width) / 2 '画像を左右中央に配置
   .Top = r.Top + (r.Height - .Height) / 2 '画像を上下中央に配置
   End With
   Next
  End With

  Set r = Nothing
End Sub

こんにちは。いつも過去ログを大変参考にさせていただいております。
今回も過去Q&Aを探したのですが、何分コーディングの基本を知らずに回答欄のコピペで済ましているため、自分で問題点を見つけることができません。

<質問内容>
Bの列に画像のフルパスを入れてあります。その画像をAの列に自動で表示させるマクロボタンを作りたいのです。B列の2枚目までは上手く写真が表示されます。
しかし、パスが入っていない3列目はC:\NoPicture.jpgを表示させたいのですが、どうしてもそこで止まってしまい、
実...続きを読む

Aベストアンサー

またまた登場、myRangeです。

>顧客が「どうしてもエクセルでデータを欲しい」と言うことなので
>恥ずかしながらお伺いしている次第です

質問することはなーんも恥ずかしいことではありませぬよ。
ただ、得た知識は必ずや自分のものにする、
という心意気が必須であることは言わずもがなのことですが。。。

では、本題。
CommandButtonのあるシートで実行するので、
かつ、画像はそのままでセルに嵌るということなので
より簡潔なコードにしてあります。

'---------------------------------------- 
Private Sub CommandButton1_Click()
  Dim R As Long
  Dim myPic As String
  Dim myCell As Range

  For R = 2 To Cells(Rows.Count, 2).End(xlUp).Row
    Set myCell = Cells(R, 1)
    myPic = Cells(R, 2).Value
    If myPic = "" Or Dir(myPic) = "" Then
      myPic = "C:\aaa\NoPicture.jpg"
    End If
    With ActiveSheet.Pictures.Insert(myPic).ShapeRange
      .Top = myCell.Top + (myCell.Height - .Height) / 2
      .Left = myCell.Left + (myCell.Width - .Width) / 2
    End With
  Next
End Sub
'-------------------------------------

なお、明日、明後日と福岡への旅。
よってこれについての再質問は、今夜23時30分までに願います。
それか、月曜日に。。。
以上です。
 


 

またまた登場、myRangeです。

>顧客が「どうしてもエクセルでデータを欲しい」と言うことなので
>恥ずかしながらお伺いしている次第です

質問することはなーんも恥ずかしいことではありませぬよ。
ただ、得た知識は必ずや自分のものにする、
という心意気が必須であることは言わずもがなのことですが。。。

では、本題。
CommandButtonのあるシートで実行するので、
かつ、画像はそのままでセルに嵌るということなので
より簡潔なコードにしてあります。

'---------------------------------------- 
Priva...続きを読む


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

人気Q&Aランキング