LoginSignup
0
0

【GAS】Googleフォームで連携したスプレッドシートの行に関数をいれる

Last updated at Posted at 2023-05-03

目的 

XLOOKUPでslack シートのB列のユーザー名に対応したD列のclassの値を取得したい
Googleフォームとスプレッドシートを連携すると、新しい行が追加されるため事前にセルにXLOOIUPなどの関数を事前にいれることができない

1slack.png

実行したこと

GASを使い対象の行にsetFormulaで指定したセルに式を代入する

コード

function getClass(){
  //アクティブシート取得
  var sheets = SpreadsheetApp.getActiveSpreadsheet();
  
  //「"フォームの回答 1"」のシート情報を取得し「fmSheet」に代入
  var fm =sheets.getSheetByName("フォームの回答 1");
  

  //A列の最終行取得
  var fmlastRowA = fm.getRange(fm.getMaxRows(), 1).getNextDataCell(SpreadsheetApp.Direction.UP).getRow();

  //C列の最終行取得
   var fmlastRowC = fm.getRange(fm.getMaxRows(), 3).getNextDataCell(SpreadsheetApp.Direction.UP).getRow();
  
  for (i=fmlastRowA; i<=fmlastRowC; i++){
  
    //値を入れたいセルを指定 最終行、O列
    var cell = fm.getRange(i, 15);
    
    //XLOOKUPで参照したいのでsetFormulaでXLOOKUPの関数をセルに入れる
    //検索するデータの列,探す範囲の列,参照で取り出したいデータの列
    cell.setFormula("=XLOOKUP(C:C,slack!B:B,slack!E:E)");
    
    //A列のフラグに文字を入力する
    fm.getRange(i, 1).setValue("SlackOK");

  }
}

結果

O列にslackのシートから値を取得できた
2slack.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0