- ベストアンサー
エクセル:セル内の長文を置換する方法をお願いします
エクセルのセル内にHTMLで書かれた長文を他の文字列に置換しなければいけないデータがあり、形としてワイルドカードなどをあちこちに多数含んでいるため当方のエクセル力では行き詰っています。 各所で調べて 「~」を「"」前に置いたり、SUBSITUTEで直接打ち込んで試みたりしているのですがなかなか上手くできません。 ご教授いただけると幸いです。よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
具体的な「これをこうしたい」が出てきたので,実際にどーしたらイイのか回答できます。 共通準備) Ctrl+Hで置換のダイアログを開く 検索する文字欄にカーソルを入れ,コントロールキーを押しながらJのキーを押す(Ctrl+Jを入力する) 置換後の文字列欄は空っぽのままにする 全て置換する(セル内改行が除去されたことを確認する。「見つかりません」が出たらそのまま次へ行く) 方法1) 置換のダイアログを開く 検索する文字欄にカーソルを入れ,DeleteキーとBackSpaceキーをそれぞれ乱打する(必ず行う) 検索する文字に border="1" cellpadding="1" cellspacing="1" style="width: 500px" 置換後の文字に border="2" cellpadding="2" cellspacing="2" style="width: 300px" を記入,全て置換する。 方法2) 隣のセルに =SUBSTITUTE(A1,"border=""1"" cellpadding=""1"" cellspacing=""1"" style=""width: 500px","border=""2"" cellpadding=""2"" cellspacing=""2"" style=""width: 300px") と計算する。 方法2’) Ctrl+Jを置換する手順を省略して =SUBSTITUTE(SUBSTITUTE(A1,CHAR(10),""),"border=""1"" cellpadding=""1"" cellspacing=""1"" style=""width: 500px","border=""2"" cellpadding=""2"" cellspacing=""2"" style=""width: 300px") と計算する。
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
具体的にどんな文字列をどう書き換えたい(けど,いまは何がどうなってしまって出来なくて困っている)のか具体的な詳細が全く不明なので,「具体的にこうしましょう」となかなか回答も付きにくいご相談です。 A列にhtmlの文字列がずらっと並んでるなら,ふつーにB列にSUBSTITUTE関数等で置換する数式をこれまたずらり並べて必要な置換を行い,必要に応じてコピーしてA列に(別シートでも勿論可)形式を選んで値のみ貼り付けてしまうのが,エクセルに出来る一番カタイ方法です。 または高度な置換を行いたいときは,エクセルじゃなくワードを利用した方が遙かに効率的です。 http://office.microsoft.com/ja-jp/word-help/HA102350661.aspx
補足
keithin様、ご回答ありがとうございます。 具体的には以下のとおりでございます。 セルA1の中の記載が以下です。 「サイズについては以下の表をご参照ください。<br> <p align="center"><br><br><b>AAA</b><br> </p><table align="center" border="1" cellpadding="1" cellspacing="1" style="width: 500px"><tbody><tr><td style="text-align: center"> </td><td style="text-align: center"><span style="background-color: #00ffff">27</span></td><td style="text-align: center"><span style="background-color: #00ffff">28</span></td><td style="text-align: center"><span style="background-color: #00ffff">29</span></td><td style="text-align: center"><span style="background-color: #00ffff">30</span></td><td style="text-align: center"><span style="background-color: #00ffff">31</span></td><td style="text-align: center"><span style="background-color: #00ffff">32</span></td><td style="text-align: center"><span style="background-color: #00ffff">33</span></td> ・・・・・・・・・・・<td>35</td><td>cm</td></tr></tbody></table>」 これを 「サイズについては以下の表をご参照ください。<br> <p align="center"><br><br><b>AAA</b><br> </p><table align="center" border="2" cellpadding="2" cellspacing="2" style="width: 300px">以下省略・・・」 にしようと思います。 SUBSTITUTE関数の式に以下のように記述しています。 文字列の箇所に『A1』 検索文字列の箇所に 『border="1" cellpadding="1" cellspacing="1" style="width: 500px"』 置換文字列の箇所に 『border="2" cellpadding="2" cellspacing="2" style="width: 300px"』 すると 「入力した数式は正しくありません。」 となってしまいます。 ご教授いただけますと助かります。 ご紹介いただいたページも参照させていただき、ワードでの組み合わせも考えたいと思います。
補足
ありがとうございます。 SUBSTITUTEを使ったときに「入力した数式は正しくありません。」が出ていたのですが、方法2)にて解決できました。 応用で他の長文にも使用したのですが、有る程度の長さを超えた長文では「数式が長すぎます」と出てしまいました・・。このあたりは質問の内容が重複しますので、調べた上で別の質問としてあげてみます。 重ね重ね、ありがとうございました。