訪問して頂きありがとうございます。まさふくろーです。
この記事では、文字列を検索して該当データを取得する方法をご紹介します。
目次
文字列を検索して該当データを取得する

使用するシート名
「シート1」シート、「住所マスタ」シート

動作イメージ

使用するデータ
都道府県一覧の全国一括.zip
使用するメソッド
getActiveSpreadsheetメソッド
SpreadsheetApp.getActiveSpreadsheet()
| 説明 |
| 現在アクティブなSpreadsheetオブジェクトを返します。 |
getSheetByNameメソッド
Spreadsheetオブジェクト.getSheetByName(シート名)
| 説明 |
| 指定したシート名のSheetオブジェクトを返します。 |
getRangeメソッド
Sheetオブジェクト.getRange(a1Notation)
| 説明 |
| セル範囲を取得します。 |
| 指定項目 | 必須 | 説明 |
| a1Notation | 〇 | 単一セルまたはセル範囲(複数セル)を指定します。 |
getValueメソッド
getRangeメソッドで取得した単一セル.getValue()
| 説明 |
| getRangeメソッドで取得した単一セルの値を取得します。 |
setValueメソッド
getRangeメソッドで取得した単一セル.setValue(設定する値)
| 説明 |
| getRangeメソッドで取得した単一セルに値を設定します。 |
| 指定項目 | 必須 | 説明 |
| 設定する値 | 〇 | 単一セルに設定する値を指定します。 |
使用する関数
QUERY関数
QUERY(データ, クエリ , [見出し])
| 説明 |
| QUERY関数は、クエリ言語を使用してデータを抽出する関数です。 |
| 指定項目 | 必須 | 説明 |
| データ | 〇 | クエリを実行するセルの範囲を指定します。 |
| クエリ |
〇 |
データを抽出するクエリを指定します。 |
| クエリは二重引用符で囲みます。 | ||
| 見出し |
- |
見出しの行数を数値で指定します。 |
| 省略した場合は、全ての行を抽出対象のデータとして扱われます。 |

手順
おおまかな流れ
詳細
Step.1 シートにボタンを作成
参考 Step.1 シートにボタンを作成ボタンをクリックしたときにスクリプトを実行する
Step.2 スクリプトを作成
「ツール」をクリックします。

「スクリプトエディタ」を選択します。

すると、スクリプトエディタが起動します。

スクリプトを記述します。

|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function getHitData() { let spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); let sheet = spreadsheet.getSheetByName('シート1'); sheet.activate(); let range = sheet.getRange('B2'); let SearchChar = range.getValue(); sheet.getRange('A8').setValue('=QUERY(住所マスタ!A:I,"SELECT G,H,I WHERE H LIKE \'%' +SearchChar+'%\'")'); } |
| 1 | 「getHitData」関数を作成。 |
| 3 | 現在アクティブなスプレッドシートオブジェクトを取得し、変数「spreadsheet」に格納。 |
| 4 | 「シート1」シートオブジェクトを、変数「sheet」に格納。 |
| 6 | 「シート1」シートを選択状態にする。 |
| 8 | 「シート1」シートの「B2」セルの位置を取得。 |
| 9 | 「シート1」シートの「B2」セルの値を取得し、変数「SearchChar」に格納。 |
| 11 | 9行目で取得した変数「SearchChar」を条件に「住所マスタ」シートからデータを取得するクエリを、「シート1」シートの「A8」セルに設定し、実行します。(クエリの文字列をセルに設定することにより、自動的に実行されます。) |
Step.3 ボタンにスクリプトを割り当てる
参考 Step.3 ボタンにスクリプトを割り当てるボタンをクリックしたときにスクリプトを実行する
関連記事
文字列を検索して該当件数を求める
最後まで読んでいただき、ありがとうございました!

