
こんばんは。
データ整理の作業効率を上げたいと思い、質問致します。
今、以下のように、日付と単語が一緒くたになった文字列が5行あります。
2008/12/19 信管
2008/11/15 PLC
2006/10/13 分波器
2006/9/ 8 AES
2006/8/3 DES
この文字列を、WordやExcel、何らかのエディタを用いて、
2008/12/19
2008/11/15
2006/10/13
2006/9/ 8
2006/8/3
日付だけにしたいのです。
もちろん、1行ずついらない文字を消していけばいいことなのですが、こういった<日付+本文>の文字列が、4000行ぐらいありまして・・・なので、どうしても日付だけ、簡単に抽出する方法はないかと考えています。
みなさんのお知恵をおかりしたい次第です<m(__)m>
No.7ベストアンサー
- 回答日時:
>のうちの、どこかの文字列を変更すれば、「AES」と「DES」も消すこともできると思うのですが・・・すいません、もしお暇でしたら、再度ご指導していただければ幸いです
2008/12/19 信管
2008/11/15 PLC
2006/10/13 分波器
2006/9/ 8 AES
2006/8/3 DES
詳しく説明します。
\dは数字にマッチします。
\dで一文字、\d*で0文字以上、\d+で一文字以上、\d{0,2}で0文字から2文字
\sは空白文字、半角スペースとか、タブとか
.は任意の文字
(\d+/\d+/\d+)でマッチしないものがあるとすると
2006/9/ 8 AES
は8の前に空白文字がひとつある。
2006/8/3 DES
は3の後に半角ではなく全角のスペースがある。
これらにもマッチさせようとすると
(\d+/\s*\d+/\s*\d+).*
→\1
ですね。
(数字一文字以上/空白文字が0個以上と数字一文字以上/空白文字一文字以上と数字一文字以上)任意の文字の0個以上
置換ではなく、検索でこれを行うとマッチした部分の色が変わる
ついでに余分な//間の空白も削除したい
日時の後ろに全角文字もありうる
・・・なら
(\d+/)\s*(\d+/)\s*(\d+).*$
→\1\2\3
$は行末を示す。最長マッチと言って一番長くまで探すのでこの場合はいらない。
返信遅くなってすいません<m(__)m>
ちょっと高度な印象を受けますが、腰を据えて、取り組んでみたいと思います。真摯に答えていただき、本当にありがとうございました!
No.5
- 回答日時:
>4000行ぐらい
となると、テキストエディタが早いでしょうね。
EmEditor( フリー版: http://www.vector.co.jp/soft/winnt/writing/se047 … )、(有償版: http://jp.emeditor.com/ )
検索→置換にて正規表現を選択して
(\d+/\d+\d+)\s.*\n
→
\1\n
で一瞬にして終わる
すごいですねこのやり方!
でも正規表現って、初めて聞きました・・・かなり難易度が高い気がします(汗)
実際、EmEditorをダウンロードして、試してみました。
2008/12/19 信管
2008/11/15 PLC
2006/10/13 分波器
2006/9/ 8 AES
2006/8/3 DES
という文字列に、ORUKA1951さんに教えていただいたように、検索→置換で、\d+/\d+\d+)\s.*\n→
\1\n
と、やってみたのですが、結果は
2008/12/19
2008/11/15
2006/10/13
2006/9/ 8 AES
2006/8/3 DES
となりました(汗)
なんで「AES」と「DES」は、消せないのでしょうか?
たぶん、(\d+/\d+\d+)\s.*\n
→
\1\n
のうちの、どこかの文字列を変更すれば、「AES」と「DES」も消すこともできると思うのですが・・・すいません、もしお暇でしたら、再度ご指導していただければ幸いです<m(__)m>
No.4
- 回答日時:
いろいろな方法がありますが、Excelの場合で、かつ、日付文字列とそれ以降の文字列の間に、一定のルール(この場合、必ずスペース(半角、又は全角スペースが一個入っている)があれば、以下の数式でできます。
<対象の文字列が「A1」とした場合で、半角スペースで区切られているものとして>
「=LEFT(A1,FINDB(" ",A1,1)-1)」
この数式の意味は、「文字列の左側から(LEFT関数)最初に見つかる(FIND関数)区切り文字(この場合は半角スペース)の文字位置(桁数)の一文字手前(-1)までを切り取る」というものです。
No.3
- 回答日時:
ここに書かれているデータの日付と文字間のスペースがこのままで
したら、次の方法で出来ると思います。
A B
1 2008/12/19 信管 =LEFT(A1,10)
2 2008/11/15 PLC
3 2006/10/13 分波器
4 2006/9/ 8 AES
5 2006/8/3 DES
B1 に =LEFT(A1,10) の関数式を入れて、下にコピーです。
後は”形式を指定して貼り付け” ”値”
これでやってみて下さい。
こんな便利な関数があるんですね、左から10文字ピックアップしてくれるなんて・・・だいぶ作業が楽になりそうです、ありがとうございました!
No.2
- 回答日時:
データがエクセルであり日付との間にスペースがあれば、
データ → 区切り位置で
Excel2003
区切り位置で楽々データ分割
http://kokoro.kir.jp/excel/delimitation-position …
Excel2007
http://www.becoolusers.com/excel/text-to-columns …
No.1
- 回答日時:
テキストベースのファイルでスペースが日付と文字列の間に入っているのでしたら、Excelに取り込む際に日付だけ分離するという手が使えるかもしれません。
Excelを開いて「データ>外部データの取り込み」を選び、スペースがセルの区切り位置となるよう指定してデータを取り込みます。
うまく分離できたら、日付の列だけを選んで他のファイルに移したり、後ろの文字列をばっさり消したりことができます。
Excelのバージョンで操作が違うと思いますが、「Excel 外部データ」などで検索すると役立つページがみつかるかも。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/mous_ …
夜分遅くに回答していただきありがとうございます<m(__)m>
なるほど、スペースがあれば、その箇所より右側で、セルを分割できるんですね~知らなかったです^_^;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) Excelに文字データのみを貼り付けたい 8 2023/05/03 15:38
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- その他(Microsoft Office) wordの差し込み印刷での日付表示 2 2023/08/15 16:51
- Excel(エクセル) エクセルで重複データから重複を削除して指定の列に抽出したい 11 2022/05/11 11:26
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パワーポイントで文字の上に線...
-
VBAのfor...next構文で i = A ...
-
濁点(゙) 半濁点(゚)を一文字と数...
-
1文字って1バイトだったっけ?
-
エクセルの文字制限からの文字...
-
50KBは何文字に相当するのでし...
-
指定した箇所より右の文字列を...
-
2バイトって何文字分ですか?
-
どっちが正しいですか? チョン...
-
Accessで名前の間のスペースを...
-
Word の原稿用紙ウィザー...
-
.はファイル名に使うべきではな...
-
VLOOKUP関数で検索できません
-
PC詳しい方ご教授お願い致しま...
-
pythonで1文字ごとに空白を入れ...
-
タブと空白(スペース)の違いに...
-
HTMLで文字頭をそろえるには
-
PS4コントローラーをPCでゲーム...
-
エクセルでアルファベットか数...
-
FLEXSOLARパネルからAmazonで買...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
1文字って1バイトだったっけ?
-
どっちが正しいですか? チョン...
-
50KBは何文字に相当するのでし...
-
パワーポイントで文字の上に線...
-
エクセルのIF文で「NOT=...
-
VBAのfor...next構文で i = A ...
-
10分で500~600文字っ...
-
エクセルの文字制限からの文字...
-
濁点(゙) 半濁点(゚)を一文字と数...
-
全角は日本独自のものか
-
Excelで入力文字の優先表示を行...
-
2バイトって何文字分ですか?
-
Excelで入力禁止文字を設定したい
-
ファイル名の文字数について
-
この、意味を、知りたいです
-
VLOOKUP関数で検索できません
-
Accessで名前の間のスペースを...
-
128ビットのパスワード
-
.はファイル名に使うべきではな...
-
Msgboxで表示できる文字数の上...
おすすめ情報