スプレッドシートとGoogle Apps Script(GAS)で、予約の残り枠が表示されるウェブアプリを作成します。

目次

  1. 全体の流れ

  2. スプレッドシートの準備

  3. ウェブアプリの作成

  4. ウェブアプリとして公開

  5. まとめ

全体の流れ

  1. スプレッドシートで予約枠を管理(Googleフォームを使った場合と同じようなイメージ)

  2. GASでウェブアプリを作成

    • HTMLファイルで予約フォームの見た目を作成

    • GASのサーバー側スクリプトで、残り枠のデータ処理と予約の受付処理を行う

  3. ウェブアプリとして公開

スプレッドシートの準備

予約枠を管理するためのスプレッドシートを用意します。

  • シート1 (予約管理):

    • A列: 予約項目名(例:9月29日 10:00-11:00)

    • B列: 定員数(例:5)

    • C列: 予約済み(GASが自動で更新)

    • D列: 残り枠(GASが自動で計算)

  • シート2 (予約履歴): 予約受付後に、回答内容を保存するシート。

 

画像
 

ウェブアプリの作成

スプレッドシートからApps Scriptエディタを開き、ウェブアプリを作成します。

1. HTMLファイル(index.html)を作成

予約フォームの見た目を定義します。選択肢はJavaScriptで動的に生成します。

<!DOCTYPE html>
<html>
<head>
  <base target="_top">
  <style>
    /* CSSでフォームのスタイルを調整 */
  </style>
</head>
<body>
  <h1>予約フォーム</h1>
  <form id="bookingForm">
    <label for="name">お名前:</label><br>
    <input type="text" id="name" name="name" required><br><br>

    <label for="email">メールアドレス:</label><br>
    <input type="email" id="email" name="email" required><br><br>

    <label for="slot">ご希望の予約枠:</label><br>
    <select id="slot" name="slot" required>
      <!-- 予約枠の選択肢はGASから取得してここに表示 -->
    </select><br><br>

    <button type="submit">予約する</button>
  </form>

  <div id="result"></div>

  <script>
    // 予約枠の情報を取得して、プルダウンに表示
    document.addEventListener("DOMContentLoaded", function() {
      google.script.run.withSuccessHandler(showBookingSlots).getBookingSlots();
    });

    function showBookingSlots(slots) {
      const selectElement = document.getElementById("slot");
      selectElement.innerHTML = ''; // 既存の選択肢をクリア
      if (slots.length === 0) {
        const option = document.createElement("option");
        option.text = "満席のため、現在予約できません。";
        selectElement.add(option);
        selectElement.disabled = true;
      } else {
        slots.forEach(slot => {
          const option = document.createElement("option");
          option.value = slot[0]; // 予約項目名
          option.text = `${slot[0]} (残り${slot[1]}席)`; // 項目名と残り枠を表示
          selectElement.add(option);
        });
      }
    }

    // フォーム送信時の処理
    document.getElementById("bookingForm").addEventListener("submit", function(e) {
      e.preventDefault(); // ページの再読み込みを防止
      const name = document.getElementById("name").value;
      const email = document.getElementById("email").value;
      const slot = document.getElementById("slot").value;

      google.script.run.withSuccessHandler(showResult).submitBooking(name, email, slot);
    });

    function showResult(result) {
      const resultDiv = document.getElementById("result");
      resultDiv.textContent = result;
      // 成功したらフォームをリセット
      if (result.includes("予約が完了しました")) {
        document.getElementById("bookingForm").reset();
        google.script.run.withSuccessHandler(showBookingSlots).getBookingSlots(); // 再度残り枠を更新
      }
    }
  </script>
</body>
</html>
コードは注意してご使用ください。

2. GASのサーバー側スクリプト(コード.gs)

HTMLとスプレッドシートを連携させるための処理を記述します。

const SPREADSHEET_ID = 'スプレッドシートIDを設定';
const BOOKING_SHEET_NAME = '予約管理';
const LOG_SHEET_NAME = '予約履歴';

function doGet() {
  return HtmlService.createHtmlOutputFromFile('index.html');
}

function getBookingSlots() {
  const ss = SpreadsheetApp.openById(SPREADSHEET_ID);
  const bookingSheet = ss.getSheetByName(BOOKING_SHEET_NAME);
  const lastRow = bookingSheet.getLastRow();
  const bookingData = bookingSheet.getRange(2, 1, lastRow - 1, 4).getValues();

  const availableSlots = bookingData.filter(row => row[3] > 0).map(row => [row[0], row[3]]);
  return availableSlots;
}

function submitBooking(name, email, slot) {
  const ss = SpreadsheetApp.openById(SPREADSHEET_ID);
  const bookingSheet = ss.getSheetByName(BOOKING_SHEET_NAME);
  const logSheet = ss.getSheetByName(LOG_SHEET_NAME);

  const lastRow = bookingSheet.getLastRow();
  const bookingData = bookingSheet.getRange(2, 1, lastRow - 1, 3).getValues(); 
  // A:予約項目名 B:定員 C:予約済み

  let bookedSuccessfully = false;

  for (let i = 0; i < bookingData.length; i++) {
    let [slotName, capacity, booked] = bookingData[i];
    let remaining = capacity - booked;

    if (slotName === slot && remaining > 0) {
      // 予約済みを+1
      bookingSheet.getRange(i + 2, 3).setValue(booked + 1);

      // 履歴シートに追加
      logSheet.appendRow([new Date(), name, email, slot]);

      bookedSuccessfully = true;
      break; // 見つかったら終了!
    }
  }

  if (bookedSuccessfully) {
    return `予約が完了しました。\n予約枠: ${slot}`;
  } else {
    return '申し訳ありませんが、その予約枠はすでに埋まってしまいました。';
  }
}
コードは注意してご使用ください。

ウェブアプリとして公開

  1. Apps Scriptエディタで「デプロイ」→「新しいデプロイ」をクリックします。

  2. 種類の選択で「ウェブアプリ」を選びます。

  3. アクセスできるユーザーを「全員」に設定します。

  4. 「デプロイ」をクリックします。

  5. URLが発行されるので、そのURLにアクセスすれば予約フォームが表示されます。

画像
 

 

 

 

 

 

なぜペルソナ作成が大事なのか?

マーケティングやSNS運用、商品企画などでよく聞く「ペルソナ」。
これは単なる“理想のお客様像”ではなく、行動や価値観まで具体的に描くことで「誰に届けるか」がはっきりし、発信や施策の精度がぐっと上がります。

しかし「どう作ればいいのかわからない…」という方も多いはず。
そこで今回は、ペルソナ作成を練習するためのフォーマットをご紹介します。


ペルソナ作成の基本フォーマット

下記の項目を埋めるだけで、1人の人物像が浮かび上がります。

ペルソナ作成フォーマット

  1. 名前(仮名でOK)
  2. 年齢・性別
  3. 職業・ライフスタイル
  4. 価値観・趣味
  5. 課題や悩み
  6. 求めていること/解決したいこと
  7. 情報収集の方法(SNS、検索、口コミなど)
  8. 行動パターン(購入までの流れ)

実際に練習してみよう(事例)

例:カフェの新メニューを広めたい場合

ペルソナ例

  • 名前:彩子さん(仮名)
  • 年齢:28歳
  • 性別:女性
  • 職業:広告代理店勤務、SNSが生活の一部
  • 趣味:カフェ巡り、Instagram投稿
  • 悩み:忙しくても「ちょっとした癒し時間」が欲しい
  • 求めていること:SNS映えするスイーツや写真が撮れる空間
  • 情報収集:Instagramで検索、友人の投稿をチェック
  • 行動パターン:気になるカフェは即Googleマップで調べ、週末に友達と行く

このようにまとめると、
「彩子さんが魅力を感じるSNS投稿は何か?」を考えやすくなります。


練習するときのコツ

  • 細かく描きすぎなくてもOK:まずは8割イメージできれば十分
  • 感情を入れる:「忙しい」「癒されたい」など心の声を書く
  • 複数パターンを作る:1つの事業に対して3人くらいのペルソナを考えると発信に幅が出る
 
 

 

「100匹目の猿現象」とは、ある島の猿が新しい行動を学び、それが一定数に達すると、離れた場所の猿たちにも自然に広がったとされる現象です。

 

これは単なる噂や都市伝説ではなく、「集合意識」「臨界数」「人類の進化」などを考えるうえで重要なヒントを与えてくれるテーマとして、多くの研究者やスピリチュアル分野で取り上げられています。

 

 

 

 

 

パーマリンクとはWebページごとに固定されたURLのことです。この記事では、パーマリンクの基本的な意味、仕組み、そしてWordPressでの設定方法をわかりやすく解説します。

パーマリンクとは何か?

パーマリンク(permalink)とは、「Permanent Link(パーマネントリンク)」の略で、ウェブページごとに設定される恒久的なURLのことを指します。

たとえば、以下のようなURLがパーマリンクです。

https://example.com/about/

 

これは「about」ページを指す固定のURLであり、記事の内容を更新してもこのリンク自体は基本的に変わりません。

一度シェアされたリンクが後に変更されると、アクセスできなくなってしまいます。そうした問題を避けるために、パーマリンクは「変わらないURL」として設計されます。

パーマリンクの役割

パーマリンクはWebサイト運営やコンテンツ管理において、次のような重要な役割を担っています。

  • ユーザーがブックマークや共有をしやすくなる

  • コンテンツの所在を一意に示す

  • 検索エンジンがページ内容を識別しやすくなる

  • 外部リンクやSNSで拡散されたURLが有効に保たれる

たとえばブログ記事や商品ページなどは、それぞれに固有のパーマリンクを持つことで、検索エンジンやユーザーに正確に内容を伝えることができます。

パーマリンクの構造

パーマリンクは以下のような構成でできています。

https://example.com/category-name/post-name/


この場合、
  • https://example.com/ → ドメイン名

  • category-name/ → カテゴリースラッグ(省略可能)

  • post-name/ → 投稿スラッグ(各記事に固有)

投稿スラッグ(末尾の部分)は、各投稿ごとに設定され、英数字とハイフンで構成されるのが一般的です。

WordPressでのパーマリンク設定方法

WordPressでは、投稿や固定ページのURLを簡単にカスタマイズできます。ここではパーマリンクの設定手順を紹介します。

パーマリンクの基本設定(サイト全体)

  1. WordPress管理画面にログイン

  2. 左メニューから「設定」→「パーマリンク」をクリック

  3. 表示された選択肢の中から、適切な構造を選択(投稿名、日付と投稿名など)

  4. 最下部の「変更を保存」をクリック

この設定は、サイト全体のパーマリンク構造を一括で適用します。

各投稿のスラッグ設定

  1. 投稿の編集画面を開く

  2. 右サイドバーの「パーマリンク」または「URLスラッグ」を確認

  3. 任意の文字列に変更(半角英数字とハイフンが推奨)

  4. 投稿を保存または公開

たとえば、「パーマリンクとは」という記事なら permalink や permalink-guide などと設定できます。

パーマリンク変更時の注意点

サイト公開後にパーマリンクを変更すると、次のような影響があります。

  • 旧URLが無効になり、リンク切れが発生

  • 検索エンジンに再インデックスされるまでに時間がかかる

  • 外部リンクやSNSの評価が無効化される可能性がある

そのため、パーマリンクの設計は初期段階で慎重に決めておくことが重要です。やむを得ず変更する場合は、リダイレクト(301リダイレクト)設定を行い、旧URLから新URLへ自動転送する処理が必要になります。

まとめ

パーマリンクとは、Webページごとに割り当てられる固定のURLであり、サイト構造やSEOにも深く関係する重要な要素です。特にWordPressを使っている場合、最初にパーマリンクの構造を整えておくことで、後々のトラブルを防ぎ、検索エンジンからの評価も高めやすくなります。

パーマリンク設定には必ず気を配りましょう。

 

 

 

 

 

 

UDPとは?

UDP(User Datagram Protocol)は、インターネットで使われる通信プロトコルの一つで、TCP/IPプロトコル群に属します。
TCPとは異なり、接続の確立や確認応答を行わない「非接続型」の通信方式であることが最大の特徴です。

UDPの主な特徴:軽量で高速

UDPはヘッダ情報が最小限(8バイト)であるため処理が軽く、データの送受信が高速で行えます。

リアルタイム性が高い

確認応答や再送処理がないため、遅延が少なくリアルタイム性が求められるアプリケーションに適しています。

信頼性は低い

パケットの欠落や順序の入れ替わり、重複の可能性があるため、信頼性を求める通信には不向きです。

TCPとの違い

項目 TCP UDP
接続方式 コネクション型(接続を確立) 非コネクション型(接続不要)
信頼性 高い(再送・順序制御あり) 低い(再送・順序制御なし)
転送速度 やや遅い 高速
用途 Web通信、メールなど 動画配信、音声通話、オンラインゲームなど

UDPが使われる主な用途

  • 動画配信(ストリーミング)
    多少のパケットロスよりもスムーズな再生が優先されるため、UDPが適しています。
  • 音声通話・ビデオ会議(VoIP)
    遅延を最小限に抑える必要があるためUDPが多く使われます。
  • オンラインゲーム
    プレイヤーの動作をリアルタイムで反映するため、UDPが選ばれます。
  • DNS(ドメインネームシステム)
    名前解決処理に高速性が求められるため、UDPが利用されます。

UDPを使うときの注意点

UDPは信頼性が低いため、アプリケーション側でエラーチェックや再送処理を実装する必要があります。また、偽装がしやすいという特性から、セキュリティ対策(ファイアウォールやアクセス制御)も重要です。

 

 

 

 

 

「風が吹けば桶屋が儲かる」という日本のことわざは、一見関係のない出来事が連鎖して予期せぬ結果をもたらすことを示しています。このことわざの具体的なストーリーは次のようなものです。

  1. 「風が吹けば桶屋が儲かる」のストーリー
  2. 1. 顧客行動の連鎖効果を理解する
  3. 2. 間接的な影響を活用する
  4. 3. データ分析による因果関係の把握
  5. 4. コミュニティの活用
  6. 5. 新たな市場機会の探索
  7. 例えば、美容サロンのマーケティングで考える
  8. まとめ

「風が吹けば桶屋が儲かる」のストーリー

  1. 風が吹くと砂埃が立つ。
  2. 砂埃が目に入って目を傷める人が増える。
  3. 目を傷めた人が盲目になる。
  4. 盲目の人が三味線を弾いて生計を立てるようになる。
  5. 三味線の需要が増える。
  6. 三味線に使われる猫の皮の需要も増える。
  7. 猫の数が減る。
  8. 猫が減ることで鼠が増える。
  9. 鼠が増えることで桶をかじる。
  10. 桶が壊れるので桶の需要が増え、桶屋が儲かる。

このように、風が吹くという初めの出来事が連鎖的に影響を及ぼし、最終的に桶屋が儲かるという予想外の結果に繋がるという教訓です。

「風が吹けば桶屋が儲かる」ということわざをマーケティングに活かす方法はいくつか考えられます。このことわざの本質は、間接的な要因が連鎖して大きな結果をもたらすという点です。これをマーケティングに応用する方法をいくつか紹介します。

1. 顧客行動の連鎖効果を理解する

顧客の行動や選択がどのように連鎖して最終的な購買に繋がるのかを分析することが重要です。

例えば、SNSでの口コミが広がることで商品への関心が高まり、それが実店舗やオンラインショップでの購買に繋がる可能性があります。

2. 間接的な影響を活用する

直接的な販売促進だけでなく、間接的な影響を与えるマーケティング施策を考えます。

例えば、特定のイベントやキャンペーンを開催することでブランドの認知度を高め、最終的には商品の売上増加に繋げることができます。

3. データ分析による因果関係の把握

データ分析を用いて、どのような要因が売上や顧客満足度に影響を与えているのかを把握します。

これにより、見えにくい連鎖効果を明らかにし、戦略的なマーケティング施策を講じることができます。

4. コミュニティの活用

顧客同士のコミュニケーションや共有がどのようにブランド価値を高めるかを考えます。

顧客の口コミやレビューが広がることで、新たな顧客獲得やリピート購入に繋がる可能性があります。

5. 新たな市場機会の探索

一見関係のない出来事やトレンドが、自社のビジネスにどのように影響を与えるかを考えます。

これにより、新たな市場機会や成長のチャンスを見つけることができます。

例えば、美容サロンのマーケティングで考える

 

 

2025年4月発売の「Google Pixel 9a」は、最新のAI機能「Gemini Nano」やTensor G3チップ、大容量バッテリーなどを搭載した注目のスマートフォンです。この記事では、Pixel 9aのデザイン・性能・カメラ・AI機能・価格・おすすめポイントを徹底的に解説します。

 

洗練されたデザインとカラー展開

Pixel 9aは、前モデルまでのカメラバーを廃し、フラットかつエッジの少ない洗練されたデザインに刷新されました。

本体サイズは6.1インチクラスのコンパクト設計でありながら、薄型かつ耐久性の高いアルミボディを採用。カラーは以下の4色展開で、個性を引き立てます。

  • オブシディアン(黒)
  • ポーセリン(白)
  • ピオニー(ピンク系)
  • アイリス(ブルー系)

ディスプレイ性能は?明るく滑らかで見やすい

  • サイズ:6.1インチ OLED(有機EL)
  • リフレッシュレート:最大120Hz(自動切替)
  • 解像度:FHD+(2400×1080)
  • 輝度:最大2000~2700nits(HDR対応)

通常利用から動画鑑賞、ゲームプレイまで、なめらかで発色の美しい映像体験を実現しています。直射日光下でも見やすい明るさが特長です。


SoC(チップセット)・処理性能は?

Pixel 9aには、上位モデルにも搭載されているGoogle Tensor G3プロセッサを採用。

  • CPU性能:高性能3.0GHzコア×1+中性能コア×4+省電力コア×4の構成
  • メモリ(RAM):8GB LPDDR5
  • ストレージ:128GB / 256GB UFS 3.1
  • セキュリティ:Titan M2チップ内蔵

日常使用から高度なAI処理、ゲームまで幅広く対応できるパワーを備えています。


AI機能が超進化。Gemini Nano対応

Pixel 9aの最大の強みが**Gemini Nano(生成AI)**を活用したローカルAI処理。

  • 要約生成(音声録音の要点抽出)
  • スパム通話のリアルタイム検知・文字起こし
  • 写真補正や消しゴムマジック(AI画像処理)
  • リアルタイム翻訳や文字読み取り

Google独自のAIによって、スマートフォン体験が次の次元に引き上げられています。


カメラ性能とAI処理の融合

  • リアカメラ
    • メイン:4800万画素(OIS付き)
    • 超広角:1300万画素
  • フロントカメラ
    • 1300万画素(広角)

AI処理で、ブレ補正・夜景撮影・肌の質感補正・消しゴムマジック・ベストショット合成などが可能。SNS映えする写真もワンタップで作成できます。


バッテリーと充電性能

  • 容量:5000mAhクラス
  • 持続時間:通常使用で最大30時間以上
  • スーパー バッテリー セーバー:最大72~100時間駆動
  • 充電:18W急速充電(USB PD 3.0対応)

1日中使ってもバッテリー切れの心配が少なく、長時間の外出や旅行にも最適です。


防水・指紋認証・5G対応など基本性能も万全

  • 防水防塵:IP67(雨や水没にも耐える設計)
  • 生体認証:ディスプレイ指紋センサー搭載
  • 対応通信
    • Sub6/ミリ波5G
    • Wi-Fi 6E
    • Bluetooth 5.3
    • eSIM/物理SIMのデュアル対応

販売価格と取り扱いキャリア

モデル 容量 価格(税込) 取り扱い
Pixel 9a 128GB 79,800円 Googleストア、各キャリア
Pixel 9a 256GB 94,800円 Googleストア限定

大手キャリア(ドコモ・au・ソフトバンク)からも販売されており、MNP(乗り換え)での割引も充実しています。

※2025年6月時点


Pixel 9aはこんな人におすすめ

  • 高性能で安定したスマホが欲しい
  • 写真・動画をよく撮る
  • バッテリー持ちを重視したい
  • 最新AI機能を試したい
  • コスパ重視で選びたい

まとめ:Pixel 9aは2025年コスパ最強のAIスマホ

Google Pixel 9aは、ミドルレンジ価格帯ながらもハイエンドに迫る性能を誇り、カメラ・AI・バッテリー・セキュリティの全てにおいて高水準。初めてのPixelとしても、買い替えにもおすすめできる1台です。

「AIで賢く、ずっと快適に使える」スマホを探している方に、Pixel 9aは「買い」の選択肢のひとつです。

 

 

 

 

Googleスプレッドシートで「ある条件に合う複数列のデータだけを抽出したい」と思ったことはありませんか?
そんなときに便利なのが、FILTER関数です。
この記事では、FILTER関数を使って複数の列(例えば「名前」と「年齢」など)を一括で抽出する方法をわかりやすく解説します。

目次

  1. FILTER関数の基本構文とは?

  2. 具体例:男性の「名前」と「年齢」だけ抽出したい!

  3. ポイント

  4. 結果の表示

  5. 応用編:複数条件で抽出したい場合

  6. FILTER関数の注意点

  7. まとめ

FILTER関数の基本構文とは?

まずはFILTER関数の基本形を確認してみましょう。

=FILTER(範囲, 条件)
  • 範囲:抽出したいデータの範囲

  • 条件:抽出する際のフィルター条件(同じ行に対応する必要あり)

具体例:男性の「名前」と「年齢」だけ抽出したい!

以下のようなデータがあるとします。

A列(名前)B列(年齢)C列(性別)山田25男佐藤30女鈴木28男高橋35女

この中から「性別が男の人」の名前と年齢を取り出したいときに使う関数がこちら:

=FILTER({A2:A,B2:B}, C2:C="男")


ポイント

  • {A2:A5,B2:B5} のように波かっこ { } を使って列を連結することで、「名前」と「年齢」の2列をまとめて抽出できます。

  • 条件 C2:C5="男" は「性別が男」の行だけを抽出します。

結果の表示

上記の数式を入力すると、以下のような結果が得られます。

名前年齢山田25鈴木28

とても簡単に目的のデータが表示されました!

応用編:複数条件で抽出したい場合

例えば、「性別が男」かつ「年齢が30歳未満」の人だけを抽出したい場合は、条件を *(AND条件)でつなげます。

=FILTER({A2:A,B2:B}, (C2:C="男") * (B2:B<30))

FILTER関数の注意点

  • 抽出結果が0件の場合、#N/Aエラーが表示されます。
     ⇒ 対策として、IFERROR関数を組み合わせましょう。

=IFERROR(FILTER({A2:A,B2:B}, C2:C="男"), "該当なし")

 

 

 

 

 

 

 

 

AppSheetでは、最新のデータを常に上に表示させたいというニーズがよくあります。特に「更新日」で並び替えることで、変更されたばかりのレコードをすぐに確認できるようになります。この記事では、AppSheetアプリ内で「更新日」列を基準に降順で並び替える方法を、わかりやすくステップごとに解説します。

  1. AppSheetで並び替えが必要な理由とは?
  2. UXビューでの並び替え設定手順 [UX] → [Views] を開く
  3. [2] 「Sort by」設定を追加する
  4. [3] 保存して反映を確認
  5. 注意点と補足
  6. よくある質問
  7. まとめ

AppSheetで並び替えが必要な理由とは?

AppSheetはデータの自動取得と表示に優れていますが、デフォルトでは並び順が設定されていないことも多いです。そのため、「最近更新したデータが下の方に表示されて探しにくい」といった問題が起こります。

そこで、「更新日」列を基準にして降順(新しい順)に並び替えることで、使いやすいアプリに改善できます。

 

 

 

UXビューでの並び替え設定手順 [UX] → [Views] を開く

まず、AppSheetのエディタにアクセスします。

左側のメニューから「UX」を選択し、並び替えを適用したい対象のビュー(例:一覧表示ビューなど)をクリックします。


[2] 「Sort by」設定を追加する

画面を下にスクロールして「Sort by」というセクションを見つけます。

ドロップダウンリストから「更新日」列を選び、並び順を「Descending(降順)」に設定しましょう。

Sort by: [更新日] ↓ Descending









[3] 保存して反映を確認

右上の「Save」ボタンをクリックして、設定を保存します。

その後、プレビューまたは実際のアプリ上で並び順が正しく反映されているか確認しましょう。

 

 

 

 

 

Googleの無料BIツール「Looker Studio(旧Googleデータポータル)」を活用すれば、売上データをグラフや表で分かりやすく可視化できます。この記事では、Googleスプレッドシートにある売上データをもとに、ダッシュボードを作る手順を初心者向けに丁寧に解説します。

  1. 売上管理ダッシュボードを作る前に準備するもの
  2. Looker Studioにスプレッドシートを連携する
  3. 基本的なグラフや表を作成する
  4. ✅スコアカードで売上合計を表示する方法
  5. 操作できるフィルタや検索ボックスを設置する
  6. 見やすさ・使いやすさを意識したデザイン調整
  7. スプレッドシートと連携して自動更新する
  8. 売上分析に便利なTips
  9. ダッシュボードテンプレートの活用もおすすめ
  10. まとめ

売上管理ダッシュボードを作る前に準備するもの

Looker Studioでダッシュボードを作るには、以下の3点を準備しておきましょう。

  • Googleアカウント
  • 売上データが入力されたGoogleスプレッドシート
  • インターネット環境

スプレッドシートには以下のような形式でデータが整理されていると、Looker Studioとの連携がスムーズです。

売上データ例:

日付 商品名 商品カテゴリ 顧客名 単価 数量 売上額 地域
2025/05/01 Tシャツ アパレル 山田太郎 2000 2 4000 東京
2025/05/01 ノートPC 電化製品 鈴木花子 100000 1 100000 大阪

売上額列は、事前に「=単価 * 数量」で計算しておくと便利です。

A列にID(例:8桁英数)を設定しておくと望ましいです。

Looker Studioにスプレッドシートを連携する

まずはLooker Studioの画面にアクセスし、以下の手順でレポートを作成します。

  1. 【+作成】ボタンをクリックし、「レポート」を選択
  2. データソースに「Googleスプレッドシート」を選ぶ
  3. 対象のスプレッドシートとシートを選択
  4. 「接続」をクリックし、読み込み内容を確認
  5. 「レポートに追加」で新規レポートに反映

これでLooker Studioとスプレッドシートの接続が完了します。

基本的なグラフや表を作成する

売上の可視化におすすめのチャートは以下の通りです。

  • 時系列折れ線グラフ:日別・月別の売上推移が分かる
  • 棒グラフ:商品カテゴリごとの売上比較に便利
  • スコアカード:売上合計、平均単価、購入者数などのKPI表示
  • 地図チャート:地域ごとの売上分布が一目瞭然
  • 表(テーブル):詳細データを一覧で表示
  • スコアカード:スコアデータを表示(売上合計など)

それぞれクリックとドラッグ&ドロップで簡単に配置できます。

✅スコアカードで売上合計を表示する方法

【前提】

  • 売上データに「売上額」列があり、数値として認識されている
  • データソースはGoogleスプレッドシートなどで接続済み

🔧 手順

① Looker Studioレポートを開く

すでに作成した売上管理レポートを開きます。

② スコアカードを追加

  1. 上部メニューから
     👉【挿入】>【スコアカード】をクリック
  2. 任意の場所をクリックして、スコアカードを配置

③ 指標(メトリクス)を「売上額」に変更

  1. 右側の「データ」パネルを確認
  2. デフォルトでは「行数」などになっている
     👉【指標】の項目をクリック
     👉「売上額」(もしくは売上合計に使っている列名)を選択(例:「売上額」など)

④ 集計方法の確認

  • 「売上額」が合計として認識されていない場合は、指標を編集して「集計:合計」に設定

 

 

🎯結果

  • スコアカードに「売上合計(例:¥295,000)」などが表示されます

操作できるフィルタや検索ボックスを設置する

ユーザーが自由に絞り込みできるようにすることで、より実用的なダッシュボードになります。

  • 日付フィルタ:任意の期間で売上データを表示
  • カテゴリフィルタ:商品カテゴリや地域を選択可能に
  • 検索ボックス:商品名・顧客名などで検索可能に

これらの操作パネルは「コントロール」から追加できます。