• ベストアンサー

HPの投稿データをエクセルで一括にまとめる方法

こんにちは、いつもお世話になっております。 例えばなのですが、下記のようなサイトがあって http://www.cosme.net/product/brand/brand_id/2487 口コミを商品ごとにエクセルでデータとして まとめたいのですが、500件ほど有るので、クイックにやりたく困ってます。ちなみに20件ずつしか表示できないのでそれも手間なのです。 考えた方法としては、ローカルにいったん テキストで落として(20件ずつ!)それをエクセルで開きます。 そうしますと、例えば A1:名前 | 肌質(普通、乾燥、混合 のどれか)| 100歳(年齢) 2007/11/24 11:03:41 (投稿日時) A2:1~7までの評価、もしくは評価しないの空欄、(評価) A3:----一行あけて------(空いてないのもある、または、下記テキスト間で行が空いてる投稿もある) A4:----テキスト----- A5 :----テキスト----- A6:----テキスト----- A7:----テキスト-----(テキストの行数は決まりはありません。) A8:効果:(その直下セルに、爽快感、アクネケア、よく落ちる、潤い美白、くすみ、等の項目から選択されてる。) A9:購入した場所:●● 途中空いてる行があったり無かったり、テキストの行数も一定ではないし、項目がどこの行にはある、と言った規則性も無いです。 A1は後ほど「区切り位置」でどうにか、項目別に セルごと分けようと思います。 1:A2をB2にしたいのですが 「=」でB2にして、「連続データ」でスライドすると 当然余計なテキストまで、データにコピーされてしまいますし。。。 右何バイトを、左、に返す、とかいう関数もあるようので どうにかして出来ないでしょうか。 2:A4からA8までを一行にまとめたい。 3:続いて、出来たらA8をD列に、A9をE列にしたいです。 秀丸などのテキストエディタで編集したほうが楽なのでしょうか。。 (使ったこと無いですけど) ソースを表示してどうにかするとか、 ブラウザによってはoperaなどスタイルの表示の詳細を かなり細かく設定できるようなのでそういったことも考えたのですが。 ちょっと考えてたらこんがらがってしまいました。 もうそんな時間があったら、手でひたすらやったほうが早い のでしょうが。 自分だったらこうする!とか、こうやったほうが簡単! などアドバイスございましたらどなたか ご教授くださいますでしょうか。 よろしくお願いいたします。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

別のシートに A1 A2 A3 A4 A5 A6 A7 A8 A9 A19 A12 A13 ・・・・・ ROW()、COLUMN()を使って、上の数字がでるような方法を考えます。 データがSHEET1として 別シートのA1に =INDEX(Sheet1!$A:$A,(ROW()-1)*6+COLUMN(),1) 入れて、右フィル、下フィルでいかがですか。

anoyo
質問者

お礼

おお!ありがとうございます!! ううっううっ(嗚咽です・・) 出来ました!クイックに! 正直言って教えてくださった関数の意味は なんとなくしか分からないのですが きちんと理解して、今後活用したいです! 本当にとても助かりました。 これで明日の仕事もかなり効率よく出来ます。 感謝の気持ちでいっぱいです。 ありがとうございました。

anoyo
質問者

補足

回答ありがとうございます!! ちょっとまだ出先で試せてないのですが、 やってみます!

その他の回答 (2)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

どういう状況なのか、よく理解できませんが >ちなみに20件ずつしか表示できないのでそれも手間なのです。 HPをベンダー会社に作成してもらって、回答の結果が20件分表示されるようになっているのですか? 試しに、表示された20件を選択してコピィ(Ctrl+c)、 エクセルに貼り付け(Ctrl+v)は、出来ませんでしたか? 作成を依頼した会社に相談すると、アドバイスがあるような気がします。 >テキストで落として(20件ずつ!)それをエクセルで開きます。 20件のデータが、ひとつのテキストファイルですか? 文字の一部分を取り出す関数で =MID(A1,5,10) 意味は、A1の内容の左から5文字目から10文字を返します。 その他、LEFT関数や、RIGHT関数もあります。 応用として、テキスト文書を、改行ごとにセルに分けるには、 =CLEAN(MID(SUBSTITUTE($A2,CHAR(10),REPT(CHAR(9),100)),COLUMN(A1)*100-99,100)) をB2に入れて、右フィルでは、いかがでしょうか。 A4からA7をひとつのセルにまとめるのであれば =A4&A5&A6&A7 と云った具合に&で加えていきます。 >自分だったらこうする!とか、こうやったほうが簡単! 今回きりであれば、印刷でもして、エクセルに手入力 今後も、同じような回答の集計を続けくのであれば、HP作成の会社(担当者)と相談して、集計の機能と付け加える。 回答の中に、文書で自由に記入できる部分があるようですが、これらをどのように分類するかは、必ず手入力になるでしょう。 集計を簡単にする方向でいけば、選択する項目を増やして、文字で入力する項目をなくす。但し、日々、変化する環境であれば、文字入力をのこして、手作業の集計を実施する事になると思います。 社内で検討する結果になると思います。

anoyo
質問者

補足

詳しい回答と助言ありがとうございます。 説明が明確で無かった様で、分かりづらく お手数おかけしております。 頼まれ仕事で私にもエクセルにする理由とメリットがよく分からないのですが。。 やりたいことは実はまんまで添付したサイトの 口コミをエクセルの表にすると言うことで・・ 本題ですが、なぜか「ファイル」からデスクトップに落として、それをエクセルで開いてました!コピペで大丈夫です! 現状は、あほながらに自分なりに考えて、operaのブラウザで 「改行を無効にする」「表(テーブル)を無効にする」と言うのがあったのでと言うのがあったので、それで表示したのをコピペしたところ 複数行になってるテキストはひとつのセルに出来ました。 現状は下記のデータが一件分として、 100件ほどのデータが下記のようにあります。 A1: 名前  A2:2007/11/24 A3:1~7までのいずれかの数値、または「評価しない」 A4:-----------テキスト内容-------- A5:効果 A6:購入した場所 A7: 名前  A8:2007/11/23 ↓続く・・・ これをA~Fの列ごとにして、1投稿を、1行ずつにしたいのですが どうにかコピペをしないでクイックに出来ないでしょうか。 これを一個一個、行列入れ替えコピペしていくのは あまりにむごすぎます! このシートが5枚分ぐらいあるのです・・ 1投稿は6行ごと、と言う規則性は出来たので だいぶきれいなデータになってきたとは思うのですが。 あともう一声、どなたかご教授くださいますでしょうか。 教えてくださった関数はまたの機会に活用させて頂きます! ありがとうございました。

  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.1

VBAを使用しましょう。 IEを操作して、HTML文を解析して、各セルに入れ込んでいけばいいと思います。

anoyo
質問者

お礼

早速の回答ありがとうございます。 すいません!張るリンク間違えてたのと 同じ質問を二回してしまいました。 http://www.cosme.net/product/review/product_id/270764 ↑参照して頂きたいページは質問時に張ったサイトの中の上記のページなのです。 難しそうなイメージがあって今までもそんなに必要なかったので、 不勉強ながら、VBAとかマクロは全然分からないのです・・ ちょっと参考までに調べてみます。 挫折しそうですが。 ありがとうございました!

関連するQ&A

専門家に質問してみよう