Excel2007で正規表現置き換え

このQ&Aのポイント
  • Excel2007で正規表現を利用して文字列を置き換えしたいと考えています。
  • Excel2007で利用できる正規表現アドインについて検討しています。Office2003系列のExcelには既にアドインが存在するようですが、Excel2007でも利用できるかどうかは分かりません。
  • 現在は手作業での置き換えを行っていますが、正規表現を利用することで効率的に置き換えを行いたいです。
回答を見る
  • ベストアンサー

Excel2007で正規表現置き換え

Excel2007で正規表現を利用して文字列を置き換えしたいと考えています。 Office2003系列のExcelではそういうアドインがあったようです。 (使ったことはないので、どのバージョンまで使えるとかは知らないですが) http://srcedit.pekori.jp/tool/excelre.html 上記のアドインはExcel2007でも使えるのでしょうか? また使えないのでしたら、それに変わるような2007用のアドインがあるのでしょうか? 置き換えしたいデータは以下のようなものです。 1.日付が数字8桁で”文字列として認識されて”入力されている。   例)20080430 2.それを”/”で区切って日付の形式にしたい。   例)2008/04/30 現在は以下のような方法で同じ事を行っています。 A.8桁で入っている列をすべて選択し、形式を数値に変え、コピーしメモ帳に貼り付けます。 B.メモ帳からExcelの同じ選択している列にそのまま貼り付けます。これで数値として認識されます。 C.今度は表示形式を「####"/"##"/"##」とし、数値をスラッシュで区切ります。 D.それをさらにコピーし、メモ帳に貼り付けます。スラッシュ付きの数字として張り付きます。 E.それをコピーし、同じ選択している列に貼り付けます。 F.数値形式のところにスラッシュ区切りのデータを入力したので形式を日付に変更します。 というようなことをしています。 これでもできるのですが、これ以外にも色々と正規表現を利用して置き換えしたいことが出てきた場合はそちらを利用したいので、もしあればお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • khiwasa
  • ベストアンサー率100% (1/1)
回答No.2

こんばんは。そのアドインの作者です。 Excel2007でも使えます。

ok-rjak
質問者

お礼

ありがとうございました。 まさにこれが使えれば・・・という感じだったので、次回から必要なときには利用させていただきます。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 ご質問そのものは、別に正規表現など関係ないのでは? 単に、範囲を選択して、データ--区切り位置--[カンマやタブ・・}--次へ--次へ  日付を選んで、完了 とすればできるのでは?日付値に変わりますから、 後は、必要に応じて、書式で、yyyy/mm/dd から別の形に変えればよいです。 これは、 Excel 2003でも、2007でも同じです。

ok-rjak
質問者

お礼

お礼が遅くなり済みません。 今回の質問は別に正規表現ではなくてもいけるかもしれないのですが、たまたま使える例が最近あっただけなんです。 本題は正規表現を出来る方法があれば・・・ということでした。 例に対する他の方法は参考になりました。 次に同じような場面が出てきたときに活用させていただきます。 ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

質問後半の課題なら、正規表現など持ち出さなくても。先ほどの質問のhttp://okwave.jp/qa4920337.htmlの質問と似ているのでは。 ーー 正規表現はUNIX系から始まって、Windows系は採用が遅れていたように 思う。 だからWINDOWS用アドイン等が出てきたのでしょうが、またプログラムを組めない人には利用価値があるが、徐々に検索置換で正規表現の匂いのする指定方法が顔を出し出した。 wordを中心に、特定の文字(メタキャラクターの一部)を使った検索置換は徐々に浸透して来ていると思う。 そのうちVBSCRIPTで正規表現のオブジェクトが出てきて使えるようになった。VB.NETでは当然つかえるようになった。 Googleで「VB.NET 正規表現」で照会。 先日の質問 http://okwave.jp/qa4908219.html に載せたWEBサイトなどが正規表現のプログラムを作るとき役に たつと思います。 === Googleで「エクセル2007 正規表現」で照会すると記事がたくさん出る。 (1)アドイン (2)VBSCRIPT の記事は有るが 2007でも正規表現を前面に出しては居ないと思う。

ok-rjak
質問者

お礼

同じような質問があったんですね。 見ていなくて気づかなかったです。 ありがとうございました。

関連するQ&A

  • 正規表現で

    例えば 1234# 2345$ 2467# 2579$ 等の4桁の数値の後、#か$がくる文字列があるとして この数値の部分だけを抜き出す正規表現って可能でしょうか? 記号を含めていいなら [\d]{4}[#|\$] な感じになると思うのですが 数値のみ、1234,2345,2467,2579といった感じで選択したいのです。 宜しくお願いします。

  • 正規表現について

    いま.Netで正規表現にチャレンジしているのですが、どこが問題なのか分からず、投稿させていただきました。 正規表現のパターンです。 \\[Cc]\[(?<$0>[0-9]+),(?<$1>[0-9]+),(?<$2>[0-9]+)\] で、マッチさせたい文字列は、 \C[255,255,255] です。「[255,255,255]」の数字の部分は、一桁から三桁までの数字であれば何でもOKです。 マッチしないことは、http://jsregex.com/を使って調べました。 どうぞよろしくお願いします。

  • 正規表現

    正規表現で次の文字列を認識する方法を教えてください 1. (000) (999) ()でくくられている3桁の数字。カッコを含みます 3桁の数字文字列だけなら'[0-9][0-9][0-9]' ?? 2. [あああ] (あああ) いあああ+ rあああ> 文字列'あああ'の前後の任意の文字、半角、全角両方OKを含む5文字 文字列がカッコの場合もあり

  • Excel2000で住所録を作っていますが上手く出来ません。

    Excel2000で住所録を作っていて 例えば、 日本橋1-1-1 日本橋1-1-2 日本橋1-1-3 となっているのを番地だけにしたくて 置換で一括で「日本橋」を取ると 2001/1/1 2001/1/2 2001/1/3 となってしまいます。 置換をする前に書式設定で表示形式を文字列にするのですが 置換えると日付になり、それを文字列にすると 33333などの5ケタの数字になります。 一つ一つ「日本橋」を取れば日付にはならないのですが面倒なので、 何か良い方法があれば教えて頂けますか?

  • 【Excel】条件を満たすデータの集計について

    Excel2003を使用しています。 A列(A7セル以下) → 日付[yy/mm/dd 形式] B列(B7セル以下) → “-”(ハイフン)を含む11桁の数字[例:1234567-8900] C列(C7セル以下) → 文字列 D列(D7セル以下) → 数値 が入力されている表があります。 A列の日付が 06/09/29 以前で、かつ、B列のハイフン前の4桁が『4567』であるD列の数値を集計したいのですが、どのようにすればいいでしょうか? 前回、同様の質問(No.3403437)で回答をいただきましたが、例の挙げ方が良くなかったようで、実際には正しい計算結果を得ることができませんでした。 よろしくお願いします。

  • 秀丸で正規表現による置換

    正規表現でつまずいてしまったので教えてください。 こういうデータがあったとして ,,E,77774000,1,77770004480,〇〇〇,0,,,,,l_ ,,E,77774000,13,77770004479,〇〇〇,0,,,,,l_ ,,E,77774000,21,77770004478,〇〇〇,0,,,,,l_ ,,E,88884000,5,88880004480,〇〇〇,0,,,,,l_ ,,E,88884000,14,88880004479,〇〇〇,0,,,,,l_ ,,E,88884000,20,88880004478,〇〇〇,0,,,,,l_ 6列目に77770004480があったら、5列目の1を10にする。 6列目に88880004480があったら、5列目の5を10にする。 という事がしたいのですが、7777や8888の部分は必ず数字4桁で固定ですが、 実際には0000-9999まであるため、1万回置換するのは面倒です。 そこで、0004480があったら、ヒットする1や5を10に置き換える事がしたいのですが どのようにしたらいいでしょうか? また、12を2に置き換えることもあるので、5列目は 必ず数字ですが、1桁または2桁となります。 正規表現置換で使用するエディタは、秀丸です。 ,,E,77774000,1,77770004480,〇〇〇,0,,,,,l_ ↓ ,,E,77774000,10,77770004480,〇〇〇,0,,,,,l_ ,,E,88884000,5,88880004480,〇〇〇,0,,,,,l_ ↓ ,,E,88884000,10,88880004480,〇〇〇,0,,,,,l_ 以上よろしくおねがいいたします

  • excel2007

    「セルの書式設定」をして、「数値」を入力すると設定どおりの「文字列(数字など)が表示」されます。 「表示された文字列」をコピーして、別のセルに張り付けると、入力した「数値」のみが張り付けされるのが不満です。 求めているのは、「表示されている文字列」をコピー貼り付けしたいのですが、その方法を教えてください。 念の為ですが、「形式を選択して張り付ける」で「値のみを張り付ける」では「入力した数値」を張り付けするだけで、質問の答えにはなりませんので・・・」

  • 正規表現否定先読み問題

    正規表現の本で以下の否定先読み問題が解答を読んでもよくわかりません。 【問題】 次の文字列で、最後のスラッシュ(「/」)の後ろに続く部分にマッチする正規表現を書きなさい。   /usr/home/gihyo/hoge.txt 【マッチする個所】 hoge.txt 【解答】 (?!.*/).+ 【解説】 「最後のスラッシュ」とは、それ以降にはスラッシュが無いという意味です。 このことから否定先読みを利用して「(?!.*/)」と書くことで最後のスラッシュの位置を特定できます。 「.*/」はスラッシュ迄の任意の文字列にマッチする正規表現です。これが否定先読みの条件になっているということは、後ろにスラッシュまでの任意の文字列がない位置にマッチするということです。 言いかえればそれ以降にスラッシュは存在しないことになります。(解説ここまで) 上記解説がよくわかりません。 (「後ろにスラッシュまでの任意の文字列がない位置」ってなんですか?) 分かる方、是非解説の解説をお願いいたします。

    • ベストアンサー
    • Java
  • PHPで正規表現でマッチした値を計算して元の位置に

    PHPで、あるテキストの中から条件にマッチした部分(今回は"["と"]"で囲まれた8桁の数字)を抽出してその値を計算した物を元の位置に戻すといった処理をしたいのですが可能でしょうか? 言葉では分かりづらいのですが、以下の例ような処理がしたいです。  あいうえおあい[11111111]、かき[22222222]、さしす[33333333] このテキストの中の8桁の数字それぞれにに2を掛けて...  あいうえおあい22222222、かき33333333、さしす66666666 というテキストに置き換えたいです。 数字部分はランダムなので、決めうちでの単純な文字列置き換えでは対応できません。 (数字部分を抽出する正規表現の書き方は分かります)

    • ベストアンサー
    • PHP
  • PHP正規表現

    数字と.の文字列から 最初の.だけ残して 後の.は取り除きたいです。 *必ず数値.数値の形です。 文字列例→期待する値 12.12→12.12 121.152.4.2→121.15242 6.2.4→6.24 $varr = preg_split("/\./","6.2.4"); $varr[0] = "{$varr[0]}."; foreach($varr as $value){ $str .= $value; } echo $str; で出来るのですが、頭悪い感じがして 正規表現で1行とかできませんかねぇ

    • ベストアンサー
    • PHP

専門家に質問してみよう