ネット上の(乱雑な)エクセル・データを取りこむには……。

 
 エクセルの日付は、一見おなじように表記されていても、さまざまの
書式(数値・文字列・ユーザー定義)が混在していることがあります。
 FまたはZのように一括置換するには、どんな手順が必要でしょうか。
 
A=昭和64年2月3日
B=平成1年2月3日
C=平成01年02月03日
 
D=1989/2/3
E=1989/02/03
F=19890203
 
X=1989××
Y=1989....(ピリオド)
Z=1989‥‥(二点リーダー)
 
 この質問は、初歩的な入力操作や、上級用Q&Aサイトや、専門的な
サポートの窓口を問うものではありません。
 中級者のヒントになるような、雑談的回答を期待しています。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/06/26 23:30:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:airplant No.1

回答回数220ベストアンサー獲得回数49

ポイント35pt

「Excel→Excelではなく」、「Excel→別なもの」という前提で。


文字で出した後、正規表現で一括変換できると思います。

sedやawkなどが適していそうです。

id:pahoo No.2

回答回数5960ベストアンサー獲得回数633

ポイント35pt

私も#1と同じように、正規表現でやるのが早道だと思います。

方法としては以下のようなものが考えられます。3が一番スマートですね。

  1. いったんCSVで外部ファイルに吐き出して、sedやperlで正規表現で置換後、再びExcelに取り込む。
  2. VBAでsedやperlにデータを渡して、正規表現で置換する。
  3. VBAのRegExpオブジェクトを使い、正規表現で置換する。
  4. VBAで接頭辞(昭和、平成‥‥)を切り出して、条件判断しながら変換していく。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません