失敗しないオフショア開発。
失敗しないオフショア開発。
2020.05.17

スプレッドシートでハイパーリンクからURLを抽出する方法は結局これが一番簡単なんじゃないかな?

あやまん

スプレッドシートユーザーのみなさんこんにちは、エディターのあやまんです。

みなさんは、ハイパーリンクが設定されたセルから、URLだけを取り出したくなるときってありませんか?

たとえば、Webサイトでリンク一覧とかをそのままスプレッドシートにコピペすると……

こんな感じでハイパーリンクが設定された状態で貼り付けられますよね。

このとき、URLだけ取り出したい! ってなることがあると思うんです。わたしはありました。

右クリックやらなんやらして一個一個ちまちま取り出すなんてアナログなことはしたくないので、一括で取り出す方法を調べてみたんですよ。

スプレッドシートでは一括抽出できない?

ところがどっこい、Googleセンセによると、ExcelでVBA組む方法が一般的なようで、現状スプレッドシートだけでなんとかするのは難しいみたいなんですよね。

LIGではG Suiteを導入しているので、残念ながらExcel含めMicrosoftのソフトはPCに入っていません。入っていたとしてもバックオフィスなど一部のメンバーだけなんです。

「そんなんうそやん」とスプレッドシートの可能性を信じて、30分くらいあれこれ試してみたんですけど、だめでした。ちなみに無料で使えるExcel Online(エクセルオンライン)でやろうとしてログイン情報探してデータ作った挙げ句マクロが使えないことに気づいて諦めるまでに、さらに30分ほどかかっています。ここまできたら意地でも方法を見つけようと、追加で30分は無駄な時間を過ごしています。

スプレッドシートのハイパーリンクからURLを取り出すもっともシンプルな方法

残された方法は、そう。アナログと称した一個一個取り出す方法のみ。

せめて右クリックは使わずに、ショートカットを活用していきます。

ショートカットを使ってすばやくURLを取り出す手順
commandK (リンクを編集する)

commandC (コピー)

(コピー先のセルをクリック)

commandV (ペースト)

なぞの敗北感のなか一行だけやってみたんですけど、「ア、コレ、イチバンハヤイ」って思いました。

くどいようですが実演してみたいと思います。

やってみた

commandKを押すと、リンク先のURLが選択された状態で出てくるので、そのままcommandCでコピー。

そして、隣のセルを選択してcommandVで貼り付け。

ここまで、1.83秒。

次のセルへの移行時間を考慮すると、一行あたりにかかる時間は約2秒と考えていいでしょう。

もっとやってみた

58個のURLを抽出する時間を図ってみたんですけど、1分57秒61でできました。一個あたり2秒という計算になります。

さすがに1,000個抽出とかになると、なんかの罰ゲームかと思うし人的エラーの可能性も大きくなるのでやめたほうがいいかもですが、100個くらいだったら3分半もあればできるんじゃないでしょうか。いろいろ調べた時間はなんだったんだろうと思いました。

スプレッドシートのハイパーリンクからURLを取り出すワンランク上の方法

ここにたどり着くまでの時間を考えると、世の中には考えるよりも先に動いたほうがいいことってあるよなって思いました。スプレッドシートでハイパーリンクからURLを一括抽出したい迷える子羊のみなさん。あれこれ難しいことは考えずに、さっさと一個一個取り出したほうが早いかもしれませんよ😉

そう思っていた時期もありましたが、見つけました。URLを一括で抽出する方法を。

こちらの外部サービスを使った方法です!

URL抽出 WEBアプリケーション、フリーCGI配布 —ahref.org

① URLを抽出したいデータが入ったシートを用意

このあとの工程を考えると、余計なデータは入れずに抽出したいデータだけが入っているシートを準備してください。

② HTML形式でダウンロードしてブラウザで開く

スプレッドシートをHTML形式でダウンロード

ファイル>ダウンロード>ウェブページ(.html、zip圧縮)の順にクリックして、一回PCにダウンロードします。

 

ダウンロードしたフォルダを解凍して、データの入ったシートをダブルクリックすると、こんな感じにブラウザで開くはずです。

③ ソースコードを開いてぜんぶコピー

ソースコードを開く

右クリック>ページのソースを表示で出てきたソースをcommandAで全コピー。

④ コピーしたソースコードからURLを抽出する

ソースコードからURLを抽出する

さきほど紹介した「URL抽出」ページを開き、テキストボックスにソースコードをドカーンと貼り付け、抽出ボタンを押すと……

抽出されたURL一覧

無事、URLが抽出されました。これをコピーしておきます。

⑤ コピーしたURLをスプレッドシートにそのままペースト

抽出したURLをスプレッドシートにそのままペースト

順番も保たれたまま抽出されるので、そのままもとのスプレッドシートに貼り付ければ完成です!

ここまで約35秒。

URL15個以上だったらこっちの方法のほうが早いですね!

こちらの方法は、わたしと同じLIGブログ編集部のたびちんが「編み出しちゃった……」と教えてくれた方法です。

ありがとうたびちん。これで10,000くらいURLがあっても安心して抽出できます。

そんなたびちん神によるお役立ち記事はこちら。

まとめ

ちなみに上記のサービスは「URL抽出」で検索するとTOPで出てくるサービスでした😉

いやー、ググっても方法がみつからない場合は検索のキーワードを減らすっていうのも大切ですね。

次にいつURLを抽出したくなるタイミングが来るのかはわかりませんが、ほかにいい方法があればぜひ教えてくださいね!