
No.5ベストアンサー
- 回答日時:
No3です
みなさんの回答の意味が、ほとんど伝わってはいないようなので・・・
元データが何行あるのか知りませんけれど、補足を見る限りは行単位でよさそうなので、
1)A列の前に新しく列を追加
2)不要な行の新しい列に「1」などを記入(なんでも良いです)
3)新しいA列を選択した状態で、「検索と選択」で「定数」を指定
4)削除で「行全体」を削除
以上で、抽出したい行だけ残ることになります。
※ 1万行とかあるなら別ですけれど、100行、200行のレベルなら数分もあれば終わるでしょう。
※ 縦横を変換した表になさりたければ、関数で参照設定することでも可能です
あるいは、こんなページからと言うのなら、
https://swimming-info.net/prefectures/tokyo/citi …
元のページの方が文書構造が明確になっているので、直接「スクレイピング」で抽出してしまうような方法も考えられると思いますけれど、(多分)質問者様にはハードルが高いのではないかと想像します。
ご丁寧な解説、ありがとうございます。
ご記載いただいたURLのサイトから、全国分コピペした元データ(約2000件)があって、その処理に頭を抱えてしまったのです。
行間に規則性がないため、なかなか上手くいかずにいました。
お教え頂いた方法で、Tryしてみます。
No.6
- 回答日時:
No5です。
全てが補足でご提示のような形式のデータであるなら、関数でも抽出可能と思います。
(HTMLソースから抽出したほうが、文書構造が確かなのですが、すでに文字だけがA列にあるようですので)
・一つのデータセットには、必ず住所データがあり「〒」で始まっている
・「〒」の1行前は、必ず「施設名称」になっている
・「休館日」、「営業時間」は無い場合もあるが、ある時は「休館日」、「営業時間」で始まっている
仮に、上記が成立するとした場合の、関数での方法をご参考までに以下に記しておきます。
A列に元データがあるとして、これをE:H列に、名称、住所、休館日、営業時間の順に抽出するとします。
作業用に、C、D列を利用します。
以下の要領で、D1:H1セルに関数式を入力します。
1)D1セルに
=IFERROR(AGGREGATE(15,6,ROW(A$1:A$16000)/(LEFT(A$1:A$16000,1)="〒"),ROW(A1)),"")
(D列には1文字目が〒の行番号が抽出されます)
2)E1セルに
=IF(D1="","",INDEX(A:A,D1-1))
3)F1セルに
=IF(D1="","",INDEX(A:A,D1))
4)G1セルに
=IFERROR(INDEX(A:A,MATCH("休館日*",OFFSET($A$1,D1,0,IFERROR(D2-D1,9)),0)+D1),"")
5)H1セルに
=IFERROR(INDEX(A:A,MATCH("営業時間*",OFFSET($A$1,D1,0,IFERROR(D2-D1,9)),0)+D1),"")
上記のD1:H1セルを2000行迄フィルコピーすれば良いのですが、2000行あるとかったるいので・・
6)C1セルに1を入力し、C1を選択した状態で、「ホーム」-「編集」-「フィル」-「連続データの作成」で表示されるダイアログで、
「列」、「加算」、増分値1、停止値2000
としてOKをクリック。
これにより、1~2000までの値がC1:C2000に入力されます。
(フィルコピーを楽にするためなので、7)が終われば削除可能です)
7)D1:H1セルを選択した状態で、選択範囲右下にでるフィルハンドルをダブルクリックします。
(これによりD1:H1が2000行迄フィルコピーされます)
計算に時間がかかるので、結果が出るまでに少々時間がかかる可能性があります。
※ A列のデータ範囲を16000行迄と仮定してあります。(2000件×8行程度?)
なるべく小さいほうが計算負荷が少ないので、対象が16000行もない場合は式中の「A$1:A$16000」を調整してください。
※ 作業用のD列を削除したい場合は、E:H列を選択し「コピー」-「値をペースト」で固定値化してから、D列を削除してください。
※ 文章で書くと大変長いですが、関数式をコピペで入力するなら、2、3分で終わる作業と思います。
No.4
- 回答日時:
手作業での作業手順を箇条書きにして、
誰でも確実にデータ抽出できるようにしてみてください。
そのうえで考えると良いでしょう。
ロジカルな問題は、こうやって考えると楽に解けます。
No.3
- 回答日時:
こんにちは
ご質問文からは具体的に何をしたいのかさっぱりなので、一般的な考え方を・・
1)抽出したい「必要項目」はどのようにすれば、論理的に
特定できるのかを明確にする
2)テストデータなどで、1)の方法で問題ないかを確認
3)OKであれば、その方法で抽出する
(VBAに限らずとも、関数等でも良いのではないでしょうか?)
>どうすれば出来ますか?
VBAで処理する必要があって、質問者様がVBAを作成できないのなら、まずはVBAのお勉強から始める必要があるのかもしれません。
あるいは、依頼サイトなどで作成を依頼するという方法もあります。
いずれにしろ、「何をどうしたいのか」を明確に説明できる状態になっていないと、進まないと思われます。
ご回答ありがとうございます。
画像の添付がなかなか出来ないので、
文字で補足をアップしました。
ご覧になっていただけますでしょうか?
ご教授可能であれば宜しくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
データにカンマが入ったCSVデー...
-
カンマ区切りの数字をCSVフ...
-
マクロを使ってフォルダー内に...
-
WORDで改ページすると時々グレ...
-
C#でcsvファイルの列を入れ替え...
-
Excelについて質問です。 セル...
-
C#で、テキストボックスの入力...
-
ひとつの命令を複数行に記述
-
パス区切りの文字について
-
CSVファイル中の不規則な数のス...
-
エクセルにペーストする際にカ...
-
区切り文字をTABにしたい
-
データグリッド内の数値をカン...
-
カンマ区切りCSVファイルをVBA...
-
CSVの定義
-
Excel 住所の分割(文字数制限...
-
エクセル セルの書式設定 ユ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
マクロを使ってフォルダー内に...
-
WORDで改ページすると時々グレ...
-
CSVの定義
-
Excelについて質問です。 セル...
-
カンマ区切り
-
VBAでtxtファイルを読み込む際...
-
[VBA][Excel]クリップボードか...
-
カンマ区切りの数字をCSVフ...
-
C#で、テキストボックスの入力...
-
データにカンマが入ったCSVデー...
-
パス区切りの文字について
-
メモ帳からエクセルにセル区切...
-
エクセルにペーストする際にカ...
-
JPY ¥1,500.00は日本円でお幾ら?
-
区切り文字をTABにしたい
-
PHP カンマをエスケープしたい...
-
(エクセル)特定のスペースを...
おすすめ情報
画像が貼れないので、データの一部を載せます。
↓
ーーーーーーーーーーーーーーーーーーここからーーーーーーーー
アリススポーツクラブ/ジュニアスイミング
〒165-0024 東京都中野区松が丘1丁目33?15
ベビースイミング対応駐車場あり体験ありこだわり水質ジャグジーあり
休館日:毎週金曜日、特別休館日(お盆、年末年始)
営業時間:月~木 9:30~22:30 土 9:30~21:00 日/祝 9:30~19:00
詳細をみる
ーーーーーーーーーーーーーーーーーーーーここまでーーーーーーーーーーーーー
以上のようなデータが、A列に入っている状態のエクセルです。
それを、
店舗名 住所 休館日 営業時間
という風に取り出したいのです。
出来ないでしょうか?