8桁の数字の表現方法と要素の取り出し方
- 8桁の数字の表現方法として、連続する8桁の数字は存在せず、要素の中には日付が含まれている。
- ファイルから1件目のレコードを取り出すためには、instr関数を使用して2番目の頭を見つけ、その位置を全体の長さから引くことができる。
- 質問者は「8桁の数字」の具体的な表現方法について質問しており、他に効率的な方法があれば教えてほしいとしている。
- ベストアンサー
「8桁の数字」を表現したい。
要素の数が不定(決まっていない)なレコードから構成されるファイルを読みます。 そして1件目のレコードを取り出したいのです。 レコードは以下のような構成です。 頭に8桁の日付(20140602のような)が在り、各要素は英数字で全角半角ナンでも入っています。 ただ、要素は"<>"で区切られています。 例えば、 20140602<>552<>東京都あきる野市<>20140601<>電話03-442-8787<>87-3524<>19900401<>,,,,,,,, と続きます。 条件としては、 レコードの頭に8桁の日付が在りますが、要素の中には連続する8桁の数字は存在しません。 日付はまちまちですが、1900年以前はありませんので、「19000000<」と聞くことは可能です。 このファイルから1件目、 例で言えば、「20140602<>552<>東京都あきる野市<>」を取り出したいのです。 質問です。 instrで2件目の頭を見つけ、全体の長さからその位置を引いてやれば取り出せるかなと思いました。 instr(2,wka,8桁の数字)のように。 この「8桁の数字」をどう作る(指定する)かが分かりませんので、質問しています。 そのような表現は出来ないモノでしょうか。 もっといい方法が在ればそれに越したことはありません。 宜しくお教え下さい。
- nagahaha
- お礼率88% (385/434)
- Excel(エクセル)
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんなのはどうでしょう。 1件目のレコードは要素3つで構成されていると決まっているなら、"<>"を区切り文字としてSplit関数で分割し、先頭の3つを合体させる。 要素数が決まっていないなら、やっぱりSplitで分割して8桁の数字が2回目に出てくるまでの要素を合体。 Sub Sample() sStr = Split(Range("A1"), "<>") '要素が三つと決まっている場合 sSample1 = sStr(0) & "<>" & sStr(1) & "<>" & sStr(2) & "<>" '要素数が決まっていない場合 Sample2 = sStr(0) & "<>" For i = 1 To UBound(sStr) If IsNumeric(sStr(i)) And Len(sStr(i)) = 8 Then Exit For Sample2 = Sample2 & sStr(i) & "<>" Next i End Sub
その他の回答 (1)
- MackyNo1
- ベストアンサー率53% (1521/2850)
<>の後の8桁の数字の部分で改行したいという意味なら、以下のようなWordを使ったワイルドカード置換で簡単に文章を整形できます。 テキスト文書をワードに貼り付け、Ctrl+Hで置換ダイアログを出して、「オプション」ボタンをクリックして、検索する文字列の欄に「\<\>([0-9]{8})」置換後の文字列に「^13\1」と入力して「すべて置換」してください。
お礼
わざわざ有り難うございました。 やりたいことは質問のとおりで、ちょっと方向が違います。 お世話になりました。
関連するQ&A
- 数字3桁を入力した際の変換について
以前まではなっていなかったのですが 最近になって 3桁の数字を打って変換をすると地名が出てきてしまいます。 Wordなどで普通に文章を打ってる際に 数字なんかは半角にする事が多いので、全角で数字を打って変換で半角にするのですが その際に 例えば100と打って変換すると 東京都千代田区 が1番手に変換されます。 他にも例えば 843→佐賀県武雄市 125→東京都葛飾区 とかです。 なんとなく、もしかして郵便番号とか?と思っています。 Excelに郵便番号変換ウィザードが入ってるからかななんて思ってるのですが WordとExcelは別物ですしね… 原因が分からず困ってます。 100歳とか、 数字の後に個とか、枚とか 単位がつけば問題ないのですが 数字3桁のみを打つときに地名が出てきてしまってやっかいです。 別に 100だと東京都千代田区ですが 東京都千代田区を打つのに100を打って表示させようとか思わないので いっそ変換候補から消したいのですが方法はありますか?
- ベストアンサー
- その他MS Office製品
- 6ケタの数字の前に、「0」(ゼロ)をすべて入力する方法を教えてください
6ケタの数字の前に、「0」(ゼロ)をすべて入力する方法を教えてください。数百件あるので、ひとつひとつ入力するのは気が遠くなります。一度で、すべての6ケタ数字の頭に「0」(ゼロ)を入力できる方法をお願いします。
- ベストアンサー
- その他MS Office製品
- ポップ吉村さんの東京都あきる野市での場所は
昔に現在の東京都あきる野市で一時期工場を開いていた時期か有ったかと思いますが現在のあきる野市のどの辺なのでしょうか。バイクが好きであきる野市在勤で調べているのですが・・ 個人情報に差支えない範囲で教えて頂ければと思います。
- 締切済み
- バイク・原付自転車
- エクセルでの数字の抽出方法
A列に数字3桁、4桁の数字が入っています。 各月毎で、頭1桁ごとの集計をとらなければなりません。 どうしたらいいのでしょうか? (例) A列 B列 107 2001/1 110 2001/10 307 2001/1 514 2001/2 601 2001/1 408 2001/5 104 2001/1 107 2001/5 605 2001/1 504 2001/2 「2001/1」の「1XX」が 2件 「2001/1」の「6XX」が 2件 というふうにしなければなりません。 どのような数式を使えばよいでしょうか。 データ数は30000件近くあります。 宜しくお願いいたします。
- ベストアンサー
- Windows NT・2000
- Access 会員番号4桁にする方法
会員データをAccessで管理しております。 CSVファイルで送られてくるデータをAccessにインポートして 運用しております。 そこで、会員データは4桁の数字(0001・0002・・・)で 管理しているのですが、送られてくるCSVファイルは 頭の000がない状態で送られてきます。 この000を一括で付けるにはどのようにすればいいでしょうか。 会員データは0001から9999までランダムに1000件から2000件程度 送られてきます。 よろしくお願いします。
- ベストアンサー
- その他(データベース)
- Excelで和暦の日付(数字のみ)を西暦に変換した
Excel2016を使用しています。 表には和暦で数字のみ 520220 ←昭和52年2月20日 これを 西暦の日付に直したいです。 1977/02/20 月日で1桁のところは上記のように頭に 0 を入れて2桁にしたいです。
- ベストアンサー
- Excel(エクセル)
お礼
早速有り難うございました。 やはり、ズバリはないみたいですね。 正規表現を調べましたが、ちょっとそぐわない感じです。 ヒントを頂いたので、 やはり、instrでloopさせました。