※当サイトの商品・サービスのリンク先にPRを含みます。

Google Apps Script

【5分で楽】GASでVLOOKUP関数のような検索機能を作成

お仕事おつにゃッス🐈

文系未経験から社内SEになった、あっきょ(@daily_code_JP)です!

作成したリストから希望するデータを探すのは、多大な時間と労力を使いますよね?

この記事ではそのお悩みを、5分でできるGoogle Apps Scriptで解決します。

あっきょ
この記事は以下で悩んでいる人におすすめッス!

  • スプレッドシートでデータを検索したい
  • 検索する機能をもっと便利にしたい
  • プログラミングでJavaScriptを学んだけど、何を作っていいかわからない

簡単に誰でも無料で作れるので、お気軽に学んでいきましょう!

0円でプログラミングを学べるスクール

侍テラコヤのロゴ

侍テラコヤはサブスク型のプログラミングスクール。

  • 50種類以上の教材を学び放題
  • 回答率100%の質問掲示板が無制限
  • 無料で学べる「フリープラン」

仕事後の夜遅くでもスキルアップするならおすすめです。

VLOOKUP関数のような機能を作るイメージ

Google Apps ScriptでVLOOKUP関数のような機能を作成するイメージ図

この記事では企業名と商品を入力すると、購入した個数を検索表示するコードを作成します。

例えば、株式会社Bが購入したキーボードの個数をスプシから検索して「100個」とログ出力。

膨大なデータから探すのは手間がかかる作業をGASであっという間に検索結果を表示します。

検索機能を作成する準備

Google Apps ScriptでVLOOKUP関数のような機能を作る準備します。ファイルは1つ必要です。

必要なファイル

  • Google スプレッドシート ・・・ 商品購入履歴の作成&プログラムを実行

Google スプレッドシートの作成

検索機能を作成するGoogle スプレッドシートを作成します。

「企業名」、「商品名」、「数量」の計3つの項目をシートの1行目に記入。

2行目からは企業の名前などをセルの列ごとに書き込みます。

シートの名前を変更します。

下のバーの左側にある「シート1」を右クリックして「リスト」に変更。

Google スプレッドシートの設定は以上です。

画像に alt 属性が指定されていません。ファイル名: make-list-sheet-vlookup.png

サンプルコードを貼り付ける方法

サンプルコードはGoogle スプレッドシートにコピペ。

上バーの「拡張機能」の中にある「Apps Script」をクリックしてコードを貼り付けます。

GASをスプレッドシートに記入する際の「Apps Script」の表示

検索機能のサンプルコード

VLOOKUP関数をGASで再現するサンプルコードと説明をしていきます。

解説の項目

  • サンプルコード
  • A, 検索ワードを入力
  • B, 操作するシートの定義
  • C, 一致する値だけを取得してログ出力

サンプルコード

右上にあるマークを押すとコードのコピペが一瞬でできます。

コード内で文頭にアルファベットが付いているコメントごとに詳細を説明します。

function searchBoughtNum(){
  //A.検索ワードを入力
  const companyName = "株式会社B"; //検索する企業名
  const boughtItem = "キーボード"; //検索する商品名

  //B,定数の定義
  const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
  const listSheet = spreadSheet.getSheetByName('リスト');
  const listLastRow = listSheet.getLastRow();

  //C,一致する値だけを取得してログ出力
  for (var i=1; i<=listLastRow; i++){
    const listedCompany = listSheet.getRange("A"+ i).getValue(); //A列の i 行目の企業名
    const listedItem = listSheet.getRange("B"+ i).getValue(); //B列の i 行目の商品名

    //値が一致していたらログ出力
    if(companyName == listedCompany && boughtItem == listedItem){
      const getNum = listSheet.getRange("C" + i).getValue();
      Logger.log(getNum + "個");
    }else{
      continue;
    }
  }
}

A, 検索ワードを入力

//A.検索ワードを入力
const companyName = "株式会社B"; //検索する企業名
const boughtItem = "キーボード"; //検索する商品名

検索する値を定義。

この例では、「株式会社B」と「キーボード」を検索対象に設定しています。

「リスト」シートに存在する値なら定数内の値を自由に変更できます

B, 操作するシートの定義

//B,操作するシートの定義
const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
const listSheet = spreadSheet.getSheetByName('リスト');
const listLastRow = listSheet.getLastRow();

操作するスプレッドシートを定義します。

定数 SpreadSheet で現在使っているスプレッドシートを取得、定数listSheet で「リスト」シートを取得。

また、getLastRowメソッドでセルが空白でない最終行の番号を取得します。

最終行を取得する方法の詳細は以下の記事から。

【5分で解決】GASでスプレッドシートの最終行と最終列を取得

続きを見る

C, 一致する値だけを取得してログ出力

 //C,一致する値だけを取得してログ出力
  for (var i=1; i<=listLastRow; i++){
    const listedCompany = listSheet.getRange("A"+ i).getValue(); //A列の i 行目の企業名
    const listedItem = listSheet.getRange("B"+ i).getValue(); //B列の i 行目の商品名

    //値が一致していたらログ出力
    if(companyName == listedCompany && boughtItem == listedItem){
      const getNum = listSheet.getRange("C" + i).getValue();
      Logger.log(getNum + "個");
    }else{
      continue;
    }
  }

for文で「リスト」シート内の行を1つずつ取り出します。

条件を満たす場合は「リスト」シート内のC列の i 行目にある値を取得し、定数 getNum に代入してログ出力。

一致しなければ continue で次の処理に移ります。

コードの説明は以上です。

一致する値を検索するテスト

実際に、GASで作成したVLOOKUP関数のような検索機能をテスト。

Apps Scriptの上バーの文字が「searchBoughtNum」になっていたら、「実行」を押します。

「このアプリはGoogleで確認されていません」と表示した場合はこちら

【3分で解決】GASの「このアプリはGoogleで確認されていません」を許可する方法

続きを見る

画面の下部で実行ログを確認します。

今回は「株式会社Bはキーボードを何個買ったか」を調べるので、購入した個数を出力。

5行目のC列は「100」なので、出力に成功しています。

事務職&営業職でも学びやすいスクール3選

初心者でも学びやすいプログラミングスクールを3つ紹介します。

プログラミング独学の挫折率は60%近くと高め

エラーを解決できなかったり相談できる人がいなかったりと理由はさまざまです。

モチベを保てる環境を整えたのがスクールで挫折率を1割未満に抑えられます。

そこで、デイコーで調査した82社から厳選して解説します。

  • テックアカデミー | 未経験から月5万の副収入を目指す
  • インターネット・アカデミー | Excel自動化で残業減
  • 侍テラコヤ | 50種類以上の教材を学び放題

テックアカデミー | 未経験から月5万の副収入を目指す

はじめての副業コースのトップイメージ
引用:テックアカデミー

テックアカデミーは総合満足度95.3%で未経験者に人気のプログラミングスクール。

テキスト形式の教材で進めながら不明点を現役エンジニアのメンターに質問します。

  • 週2回のマンツーマンメンタリング
  • 毎日15〜23時までのチャットサポート
  • 課題レビューとアドバイス

夜遅くまで対応するので退勤後も気軽に相談できます。

「はじめての副業コース」ではGASの開発ベースになったJavaScriptを使ってWeb制作を学習。

学習後はメンターの支援を受けつつスクールの独自案件で副業の実績を積み上げます。

案件報酬と1件につき1~5万円と高単価ッスよ!
あっきょ
卒業生の口コミ33件紹介 口コミ・評判はこちら
無料相談でアマギフ500円分もらえる 公式サイト

インターネット・アカデミー | Excel自動化で残業減

インターネット・アカデミーのトップ画面
引用 : インターネットアカデミー

インターネット・アカデミーは初心者から最短距離でスキルを習得するスクール。

初心者が挫折しないサポートが10個が特徴で以下はその一部。

  • 動画授業が24時間見放題
  • 1年間受講受け放題
  • 技術面の質問ができるチャットサービス
  • 受講生限定のセミナーや交流会
  • 手厚い転職準備サポート&求人紹介

卒業後には未経験からエンジニア転職するキャリアプランも築けます。

Python×Excel自動化講座はエクセル自動化に特化したカリキュラム。

売上伝票の集計や顧客リスト抽出など実践的に学びながらPythonの基礎基本を身に着けます。

いつもの作業を効率化して残業を減らすならおすすめ。

受講者の8割近くが初心者で学びやすいのがわかるッス!
あっきょ
82社から8つ厳選 Pythonを学べるスクール
1分で無料カウンセリング予約 公式サイト

侍テラコヤ | 50種類以上の教材を学び放題

侍テラコヤのトップ画面
引用 : 侍テラコヤ

侍テラコヤは50教材以上を定額で受け放題のオンラインスクール。

回答率100%の質問掲示板などの初心者でも挫折しない環境が整っているのが特徴です。

フリープランは無料で教材の一部を閲覧可能

GASを学ぶ場合、「業務自動化コース」で基礎基本から学べます。

まずは0円で教材を利用したい人にはおすすめです。

Python や HTML/CSS などのほかの言語も学べるッス!
あっきょ
卒業生の口コミ23件紹介 口コミ・評判はこちら
「フリープラン」でGASを無料で学習 公式サイト

まとめ | GASで簡単に検索機能を作れる!

以上がGoogle Apps ScriptでVLOOKUP関数のような検索機能を作成する方法でした。

そのままコピペしたり、プログラミングの練習や動作確認用に使ったりしてみましょう。

今回紹介したサンプルコード以外にも、GASで便利な検索機能の作成は可能。

ヒューマンエラーが起きやすく時間がかかる作業をGASに任せましょう。

不明点やスクール選びで悩んでいるならデイコーのお問い合わせまでご連絡を。

あなたのお力になります。

-Google Apps Script
-, , , , , , , , , , , , , , , ,