
こんにちは。
宜しくお願いいたします。
仕事で使うファイルを社内システムからダウンロードすると、CSVファイルになります。
そのCSVファイルをエクセルで開くと、
ひとつのセルの中にHTMLタグが入った状態になります。
例:
<head> aaaaaa</head><body> bbbbbb</body><link>cccccc </link>
入力されているHTMLタグは、すべて共通ではなくて、ものによって変わります。
(上記の例だと、<body>がないものもあります)
それから、同じタグがいくつも含まれているものもあります。
(上記の例だと、<body>がいくつもあるというようなケースです)
エクセルの分割機能や関数で抜き出せないかと思ったのですが、
私の知識では上手くいきませんでした。
いまは件数が少ないので目視で必要情報を手作業でコピペしたり、確認したりしていますが、
今後、件数が増える見込みなので、とてもそれでは作業が追い付きません。
これを下記のいずれかにすることはできないでしょうか?
1.たとえばA1には「head」の情報を、B1には「body」の情報を……という状態のエクセルにする。
2.1が難しい場合はせめて「body」の情報だけひとつのセルに抜き出す。(「body」がない場合は空欄かna、「body」が複数ある場合はひとつのセルに複数入れるか、最初のひとつだけが入れる)
3.HTMLタグがない状態で見られるようにする。(CSVファイルの情報をコピペすると、変換されるようなイメージです)
詳しい方宜しくお願いいたします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
No3です。
今見たら、回答の式にゴミが混ざってしまっていたようです。
すみません。 訂正しておきます。
関数の場合のB2セルの式は
=IFERROR(SEARCH("</",A1,1),"")
が正しいです。
No.3
- 回答日時:
こんにちは
No1様の回答がもっともだと思いますが・・・
>そのCSVファイルをエクセルで開くと、
>ひとつのセルの中にHTMLタグが入った状態になります。
CSVと言いながら、セパレータが存在しないということですよね?
(ファイル形式もおかしな気がしますが・・)
実際のデータ構造が不明ですが、ご例示のように単純なタグ形式の連続で1階層しかない(=ネストはない)と仮定してもよいのなら、文頭から順に「<」や「>」あるいは「</」を検索して、文字列を分解してゆけば手操作でも関数でも可能と思います。
(No2様の回答のように正規表現を利用したほうが簡単そうですが・・)
以下、ご参考までに。
◇手操作で行う場合
1)編集-置換で「<*>」を「,」に全て置換する
2)続いて、同様に「,,」を「,」に置換する
この結果、ご例示のデータであれば、「, aaaaaa, bbbbbb,cccccc ,」のようになります。
3)データ - 区切り位置 を利用して、上記のデータを「,」で分解する
※ マクロ化したければ、上記操作をマクロの記録に取れば、再利用可能と思います。
◇関数利用の場合(添付図参照)
(A1セルに文字列があるとして)
A2セルに
=IFERROR(MID(A1,B2+2,LEN(A1)),"")
B2セルに
=IFERROR(SEARCH("</",A1,K1+1),"")
C2セルに
=IFERROR(MID(MID(A1,SEARCH("<",A1,1),B2-SEARCH("<",A1,1)),SEARCH(">",MID(A1,SEARCH("<",A1,1),B2-SEARCH("<",A1,1)),1)+1,LEN(A1)),"")
を入力して、A2:C2を適当なところまで下方にフィルコピーしてあります。
この結果、C列にタグの内容だけが表示されます。

No.1
- 回答日時:
そもそも論なのですが、CSVファイルのような汎用データー形式にHTMLタグを使うような、その「社内システム」を見直すべきではないかと思います。
CSVファイルとしてダウンロードできる時点で、加工が不要で汎用的なデーター形式で出力できるのが本筋だと思います。ご指摘ごもっともかと思います。
このタスクが今後も継続的に発生するようであれば、修正か新規構築かするための人員と予算が組まれてると思いますが、現在のところ、そこまでは至っておりません。
「今後、件数が増える見込み」と書きましたが、それは私個人の見立てで、マネジメントチームは現実にそうなってから考えるという意向でいます。
そういうわけで、現在の状態のファイルで、必要情報を抜き出せればと、悩んでおります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- HTML・CSS CSSが上手く反映されないみたいです 2 2022/11/21 16:19
- HTML・CSS HTMLソースの質問 3 2022/07/28 13:29
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP php ログイン 1 2022/11/01 00:24
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLタグのあるCSVファイルを利...
-
ファイルのアクセス権の取得
-
Excel VBAどこが間違ってますか?
-
JSONファイルをダウンロードさ...
-
Excelでdatファイルを作成??
-
Windows XPを立ち上げたら自動...
-
Adobe Reader について
-
複数のテキストファイルをexcel...
-
カノンロックのTAB譜
-
カスタムコントロールのOCAファ...
-
FTPで、フォルダコピー
-
ダウンロード不可PDFファイルは...
-
Matlabでの図の最大化の方法
-
Accessでフォルダを自動生成す...
-
CDをSDカードに保存する方法を...
-
イラストレーターの保存先変更...
-
複数のファイルを同時検索し、...
-
ASP.NETで、別サーバーへファイ...
-
Essntials2012メールの
-
Eclipseについて教えてください。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチによるショートカットの...
-
1フォルダに保存できるファイル...
-
エクセルVBA ファイルOPEN時の...
-
C#のAxWindowsMediaPlayerから...
-
Excel VBAどこが間違ってますか?
-
HTMLプログラムにExcelをリンク...
-
HTMLタグのあるCSVファイルを利...
-
Excel-VBA 撮影日時の取得
-
ファイルのアクセス権の取得
-
FTPサーバからファイルをダウン...
-
Windowsのメモ帳でジョークウイ...
-
JSONファイルをダウンロードさ...
-
動的に生成したVSBファイルへデ...
-
同一ドメイン上でファイルを別P...
-
subversionからファイル取得時...
-
VBAでファイルを指定して印刷さ...
-
【VC++6.0 MFC】画像表示について
-
ボタンをファイルにリンクさせたい
-
エクセルVBA
-
VBA IE操作 ダイアログボックス...
おすすめ情報