- 作成日 : 2025年8月25日
WEBSERVICE関数の使い方:WebAPIからデータを取得する方法
WEBSERVICE関数は、インターネット上のWebサービスからデータを取得する関数です。為替レート、株価、天気情報などのリアルタイムデータの取得、REST APIを使った外部システムとの連携、JSONやXML形式のデータの取り込みなど、様々な用途で活用されます。例えば、常に最新の為替レートで売上を換算したり、気象データを取得して売上予測に活用したりすることができます。本記事では、WEBSERVICE関数の基本的な使い方から実践的な活用方法、他の関数との効果的な組み合わせまで、初心者の方にも理解しやすく解説していきます。
目次
WEBSERVICE関数とは
WEBSERVICE関数は、指定したURLからWebコンテンツを取得し、セルに表示する関数です。REST APIやWebサービスが提供するデータを、エクセルに直接取り込むことができます(GETメソッドでプレーンテキストを返すものに限る)。
この関数はWindows版のExcel 2013以降で利用可能で、Mac版では使用できません。
この関数の最大の特徴は、外部データソースとエクセルをシームレスに連携できることです。手動でのデータコピー作業を自動化し、常に最新の情報を反映したレポートや分析を可能にします。ただし、取得できるのはテキストデータのみで、画像やバイナリファイルは取得できません。
参考:WEBSERVICE 関数 – Microsoft サポート
WEBSERVICE関数の基本的な使い方
関数の構文を理解する
WEBSERVICE関数の構文は非常にシンプルです。
=WEBSERVICE(URL)
URLには、データを取得したいWebサービスのアドレスを文字列として指定します。
基本的な使用例
実際の使用例を見てみましょう。
公開されているAPIから為替レートを取得する場合:
=WEBSERVICE(“https://api.exchangerate-api.com/v4/latest/USD”)
この例では、米ドルを基準とした各国通貨の為替レートをJSON形式で取得します。
シンプルなテキストデータを取得する例:
=WEBSERVICE(“https://api.ipify.org?format=text”)
この関数は、現在のパブリックIPアドレスを取得します。
URLの動的生成
セル参照を使ってURLを動的に生成することも可能です。
=WEBSERVICE(“https://api.example.com/data?currency=” & A1 & “&date=” & TEXT(B1, “yyyy-mm-dd”))
A1セルの通貨コードとB1セルの日付を使って、動的にAPIのURLを構築します。
WEBSERVICE関数の実践的な利用シーン
金融データの自動更新
投資ポートフォリオ管理や財務レポートの作成において、最新の株価や為替レートを自動取得できます。毎朝レポートを開くだけで、前日の終値や現在の為替レートが自動的に更新され、手動での入力ミスを防げます。
複数の通貨で取引を行う企業では、リアルタイムの為替レートを使った損益計算が可能になり、為替リスクの管理精度が向上します。
気象データを活用した需要予測
小売業や飲食業では、天気によって売上が大きく変動します。WEBSERVICE関数で気象APIから天気予報を取得し、過去の売上データと組み合わせることで、より精度の高い需要予測が可能になります。
アイスクリーム店が翌日の最高気温を取得して仕入れ量を調整したり、傘の小売店が降水確率に基づいて在庫配置を最適化したりできます。
在庫管理システムとの連携
自社のWebAPIやクラウド在庫管理システムと連携して、リアルタイムの在庫状況をエクセルで確認できます。複数倉庫の在庫データを一元的に表示し、発注判断の材料として活用できます。
ECサイトの在庫データをAPIで取得し、エクセルで分析することで、売れ筋商品の把握や在庫回転率の計算が効率化されます。
WEBSERVICE関数の応用テクニック
エラーハンドリングの実装
ネットワークエラーやAPIの不具合に対処する方法:
=IFERROR(WEBSERVICE(A1), “データ取得エラー”)
より詳細なエラー処理:
=IF(ISERROR(WEBSERVICE(A1)), “接続失敗”, IF(WEBSERVICE(A1)=””, “データなし”, WEBSERVICE(A1)))
キャッシュを使った負荷軽減
同じURLへの頻繁なアクセスを避ける工夫:
=IF(NOW()-更新時刻>TIME(0,5,0), WEBSERVICE(URL), 前回取得値)
5分以上経過した場合のみ新しいデータを取得し、それ以外は前回の値を使用します。
複数のAPIを組み合わせた処理
異なるAPIからのデータを統合する例:
=WEBSERVICE(API1) & ” / ” & WEBSERVICE(API2)
為替レートと株価を別々のAPIから取得して、一つのセルに表示できます。
よくあるエラーと対策
#VALUE!エラーへの対処
URLが正しくない場合や、Webサービスが応答しない場合に発生します。
基本的なエラー処理:
=IFERROR(WEBSERVICE(A1), “URLを確認してください”)
URLの妥当性チェックを含む処理:
=IF(LEFT(A1, 4)<>”http”, “URLはhttp://またはhttps://で始める必要があります”,
IFERROR(WEBSERVICE(A1), “接続エラー:サーバーが応答しません”))
URLの形式を事前にチェックすることで、一般的な入力ミスを防げます。特に、手動でURLを入力する場合は、このような検証が重要です。プロトコルの指定忘れやスペルミスなど、よくあるエラーを未然に防ぐことができます。
タイムアウトエラー
サーバーの応答が遅い場合、エクセルがタイムアウトすることがあります。
代替URLの使用:
=IFERROR(WEBSERVICE(メインURL), IFERROR(WEBSERVICE(バックアップURL), “すべてのサーバーが応答しません”))
複数のデータソースを用意することで、信頼性を向上させます。メインのAPIサーバーがダウンしている場合でも、バックアップから データを取得できます。クリティカルなビジネスプロセスで使用する場合は、このような冗長性の確保が重要です。
データサイズの制限
WEBSERVICE関数で取得できるデータは、セルの仕様により最大32,767文字までに制限されています。
データサイズのチェック:
=IF(LEN(WEBSERVICE(A1))>=32767, “データが大きすぎます。APIでフィルタリングしてください”, WEBSERVICE(A1))
大量のデータを扱う場合は、API側でページネーションやフィルタリングを使用して、取得するデータ量を制限する必要があります。例えば、直近100件のみを取得するようなパラメータを追加することで、この制限を回避できます。
認証が必要なAPIへの対応
多くのAPIではAPIキーやトークンによる認証が必要ですが、WEBSERVICE関数では複雑な認証には対応していません。
APIキーをURLに含める方法:
=WEBSERVICE(“https://api.example.com/data?apikey=” & APIキーセル & “¶m=” & パラメータ)
セキュリティ上の注意:APIキーをエクセルファイルに直接記載することはリスクがあります。共有ファイルでは使用を避け、必要に応じて別途セキュアな方法でAPIキーを管理することを推奨します。Power QueryやVBAを使用することで、より安全な認証方法を実装できます。
WEBSERVICE関数と他の関数との組み合わせ
FILTERXML関数でのデータ解析
XMLデータから特定の値を抽出する例:
=FILTERXML(WEBSERVICE(URL), “//rate[@currency=’EUR’]”)
=FILTERXML(WEBSERVICE(“https://api.example.com/xml”), “//item[1]/price”)
WEBSERVICE関数で取得したXMLデータから、XPath式を使って必要な情報だけを抽出できます。為替レートAPIから特定の通貨のレートだけを取り出したり、商品情報から価格だけを抽出したりする際に便利です。これにより、構造化されたデータを効率的に処理できます。
ENCODEURL関数での日本語対応
日本語を含むパラメータを正しくエンコードする例:
=WEBSERVICE(“https://api.example.com/search?q=” & ENCODEURL(A1))
=WEBSERVICE(“https://translate.api.com/translate?text=” & ENCODEURL(“こんにちは”) & “&to=en”)
日本語や特殊文字を含むパラメータをAPIに送信する場合、ENCODEURL関数でURLエンコードする必要があります。検索クエリや翻訳テキストなど、ユーザー入力を含むAPIリクエストでは必須の処理です。これにより、文字化けやエラーを防ぎ、正確なデータ取得が可能になります。
SUBSTITUTE関数でのデータ整形
取得したJSONデータから値を抽出する簡易的な方法:
=SUBSTITUTE(SUBSTITUTE(MID(WEBSERVICE(URL), FIND(“””rate””:”, WEBSERVICE(URL))+8, 10), “”””, “”), “,”, “”)
=VALUE(TRIM(SUBSTITUTE(SUBSTITUTE(MID(データ, FIND(“price”, データ)+7, 10), “:”, “”), “,”, “”)))
簡単なJSONデータの場合、文字列操作関数を組み合わせて値を抽出できます。完全なJSONパーサーではありませんが、単純な構造のデータには十分対応できます。為替レートや株価など、数値データを取り出す際に有効です。
TEXT関数での表示形式制御
取得したデータを見やすく整形する例:
=TEXT(VALUE(WEBSERVICE(為替API)), “#,##0.00”) & “円”
=”最終更新: ” & TEXT(NOW(), “yyyy/mm/dd hh:mm”) & ” – レート: ” & WEBSERVICE(URL)
数値データを通貨形式で表示したり、更新時刻を付加したりすることで、レポートの可読性が向上します。特に、経営層向けのダッシュボードでは、このような整形が重要です。生のAPIレスポンスを、ビジネスユーザーが理解しやすい形式に変換できます。
IF関数での閾値判定
取得したデータに基づいて警告を表示する例:
=IF(VALUE(WEBSERVICE(在庫API))<10, “在庫警告:残り” & WEBSERVICE(在庫API) & “個”, “在庫十分”)
=IF(VALUE(WEBSERVICE(気温API))>30, “猛暑日対策が必要”, “通常営業”)
APIから取得したデータを閾値と比較し、ビジネスアクションにつなげます。在庫管理での自動アラート、気象条件に基づく業務指示など、データドリブンな意思決定を支援します。条件に応じて背景色を変更する条件付き書式と組み合わせると、より効果的な可視化が可能です。
AVERAGE関数での集計処理
複数のAPIからデータを取得して平均を計算:
=AVERAGE(VALUE(WEBSERVICE(API1)), VALUE(WEBSERVICE(API2)), VALUE(WEBSERVICE(API3)))
=(VALUE(WEBSERVICE(今日の気温)) + VALUE(前日気温セル)) / 2
複数のデータソースから取得した値を集計することで、より信頼性の高い指標を作成できます。複数の為替レート提供元から平均レートを算出したり、複数地点の気温から地域平均を求めたりする際に使用します。外れ値の影響を軽減し、安定した指標を提供できます。
WEBSERVICE関数の実務での注意点
API利用制限の考慮
多くのAPIには利用回数の制限があります。無料プランでは1時間あたり1000回、1日あたり10000回などの制限が一般的です。エクセルの自動再計算により、意図せず大量のリクエストを送信する可能性があります。
手動計算モードに切り替えるか、VBAで更新頻度を制御することで、API制限を守りながら効率的にデータを取得できます。
セキュリティの確保
WEBSERVICE関数で取得したデータは、悪意のあるコードを含む可能性があります。信頼できるAPIのみを使用し、取得したデータを他のシステムに直接渡さないよう注意が必要です。
また、APIキーやパスワードなどの機密情報は、エクセルファイルに直接記載せず、環境変数や外部設定ファイルから読み込むような仕組みを検討してください。
パフォーマンスの最適化
WEBSERVICE関数は同期的に動作するため、複数のAPI呼び出しがある場合、シートの再計算に時間がかかります。以下の対策を検討してください。
- 更新頻度の低いデータは、手動更新またはVBAでの定期更新に切り替える
- 計算の多いシートでは、WEBSERVICE関数を別シートに分離する
- 取得したデータを値として別セルにコピーし、参照はコピー先を使用する
WEBSERVICE関数でリアルタイムデータをExcelに取り込む
WEBSERVICE関数は、指定したURLからWebサービスのテキストデータを取得できる関数で、Windows版Excel 2013以降に対応しています。為替・天気・在庫情報などをリアルタイムに反映でき、手作業を自動化できます。
FILTERXMLやENCODEURL関数と組み合わせれば、構造化データの抽出や多言語対応も可能です。
ただし、認証が必要なAPIやJSONのパースには制限があるため、Power QueryやVBAとの併用も検討が必要です。実務ではAPI制限・エラー処理・パフォーマンスにも注意し、信頼性の高いデータ活用を目指しましょう。
この記事をお読みの方におすすめのガイド5選【部署別紹介】
最後に、この記事をお読みの方によく活用いただいている人気の資料・ガイドを紹介します。すべて無料ですので、ぜひお気軽にご活用ください。
経理担当者向け
①Excel関数集 32選まとめブック
経理担当者の方をはじめ、ビジネスパーソンが知っておきたい便利なExcel関数集を初級~上級までギュッと網羅。新人社員の研修用などにもお使いいただけます。Google スプレッドシートならではの関数もご紹介しています。
②勘定科目・仕訳辞典(税理士監修)
勘定科目・仕訳に関する基本知識、および各勘定科目の仕訳例を具体的かつ網羅的にまとめた、50ページを超えるガイドを無料で提供しております。お手元における保存版としてでだけでなく、従業員への印刷・配布用としてもぜひご活用ください。
人事労務担当者向け
①入社・退職・異動の手続きガイドブック
書類の回収・作成・提出など手間のかかる入社・退職・異動(昇給・昇格、転勤)の手続き。
最新の制度をもとに、よくある質問やチェックポイントを交えながら、各手続きに必要な情報をまとめた人気のガイドですす。
②社会保険・労働保険の手続きガイド
企業において社会保険および労働保険の加入・喪失手続きは必ず発生し、手続きを誤れば保険事故が発生した際に従業員が不利益を被る可能性があります。
各保険の基本的な手続き方法を入社・退職・異動のシーン別にギュッとまとめた分かりやすいガイドです。
総務・法務担当者向け
契約書ひな形まとめ30選
業務委託契約書や工事請負契約書…など各種契約書や、誓約書、念書・覚書、承諾書・通知書…など、使用頻度の高い30個のテンプレートをまとめた、無料で使えるひな形パックです。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
スプレッドシートで月ごとに集計するには?効率的なデータ分析と自動集計の実践方法
Googleスプレッドシートで月別集計を行うと、売上や経費、工数などの推移を時系列で把握できます。 基本は「日付から月(年‐月)を抽出し、月単位で集約する」こと。用途に応じて ピボットテーブル、SUMIFS、QUERY を使い分けるのが実務…
詳しくみるSTDEV.P関数の使い方:エクセルで母集団の標準偏差を計算する方法
STDEV.P関数は、データセット全体(母集団)の標準偏差を計算するエクセルの統計関数です。品質管理での製品のばらつき測定、全社員の給与分散の分析、生産工程の安定性評価、学校全体の成績分布の把握など、データ全体のばらつき具合を数値化する様々…
詳しくみるスプレッドシートで合計を求めるには?SUM関数の基本から応用まで
Googleスプレッドシートで数値データの合計を求めることは、売上管理、経費計算、在庫管理など、あらゆるビジネスシーンで必要不可欠な作業です。単純な合計から複雑な条件付き集計まで、適切な関数を使いこなすことで、データ分析の効率と精度を高める…
詳しくみるスプレッドシートで文字列を結合するには?改行を含む場合まで徹底解説
Googleスプレッドシートで文字列を結合すると、氏名や住所の整形、商品コードの生成など幅広い業務に役立ちます。&演算子、CONCATENATE関数、CONCAT関数、TEXTJOIN関数といった複数の方法があり、それぞれに適した使…
詳しくみるRANDBETWEEN関数の使い方:エクセルで指定範囲の乱数を生成する方法
RANDBETWEEN関数は、指定した最小値と最大値の間でランダムな整数を生成するエクセルの乱数関数です。テストデータの作成、シミュレーション、ランダムサンプリング、ゲームやクイズの作成など、様々な場面で活用されています。本記事では、RAN…
詳しくみるスプレッドシートをメール添付して送るには?PC・スマホでの送信方法まで解説
Googleスプレッドシートをメールで送信する方法には「共有リンクの送信」「ファイルを添付」「スプレッドシートから直接送信」の3つがあります。それぞれ特徴が異なるため、用途に応じた使い分けが重要です。本記事では、PCとスマホそれぞれでの具体…
詳しくみる



