Googleスプレッドシートで「リンク文字列だけ見えてURLを取り出せない」ときは、そのセルがHYPERLINK関数で作られたか、手動のリンク挿入で作られたかを分けます。通常の数式だけですべてのリンク先を一括抽出できると考えない方が安全です。
見た目のリンクと数式のリンクを分ける
セルA2に「取引先サイト」と表示される場合、数式バーが=HYPERLINK("https://example.com","取引先サイト")ならURLは数式の第1引数です。一方、[挿入]→[リンク]などで文字列に付けたリンクは、セルの表示値がラベルだけで数式としてURLが見えるとは限りません。見た目は同じでも内部の保存形式が異なります。
HYPERLINK式からURLを取得する方法
最初から管理する帳票では、A列にURL、B列に表示名を別々に保存し、C2へ=HYPERLINK(A2,B2)を使います。この形なら抽出はA列を参照するだけで済みます。既存のHYPERLINK数式を文字列操作で分解すると、セル参照・引用符・結合式などに対応できないため、固定形式だけに限定するか元データからURL列を再構築します。
手動で挿入したリンクの扱い
手動挿入リンクが少数なら、セルのリンク編集画面でURLを確認して別列に転記します。数百件単位ならGoogle Apps ScriptのリッチテキストリンクAPIなどの方法を別途検討しますが、閲覧権限・複数の文字列部分へ別リンクが付いているケースなど、抽出結果を検証する必要があります。「全セルにリンクが一つ」と決めつけて処理しません。
抽出不能なものを無理に変換しない
URL列を作成した後は、空欄・不正なプロトコル・リンク表示名とURLの対応をサンプル抽出して確認します。ハイパーリンクは現在の表示ラベルと移動先が一致するとは限らず、フィッシング等の安全性チェックも必要です。業務で共有する場合は表示名だけでなくドメインも見える台帳にしておくと確認しやすくなります。
