【GAS 24.】プルダウン(ドロップダウン)リストからQUERY文を作成する(データの入力規則)

GAS

プルダウンリスト一覧

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

【GAS基礎講座 2. 】ループを使い4つのセルに5を足し込んでいく方法(for)
GASでループさせることができるようになります。 一つの動作を連続して行うことができます。

今回は、とっても価値の高い方法をお伝えします。


これを知ることであなたは、

  • 自作関数と組み合わせてQUERYを実行する方法がわかります。
  • サブルーチンの作り方がわかります。

なので、サクッとマスターして

と答えてあげてください。

動画はこちら

スクリプト

function test_makeQuery() {

  // makeQuery("aaa","vvv","cccc")
  makeQuery("","vvv","cccc")
  // makeQuery("aaa", "", "ccc")
  // makeQuery("aaa", "", "")
}



function makeQuery(strq1, strq2, strq3) {

const SELECT_A = "select *"
  let basestr = ""

  basestr = addstring( basestr,strq1 ,"A")
  basestr = addstring( basestr,strq2 ,"B")
  basestr = addstring( basestr,strq3 ,"C")

if (basestr === ""){
  retstr = SELECT_A
}
else{
  retstr = SELECT_A + " where " + basestr

}


  // // 先頭にはandを付加しない(1個めの引数)
  // if (basestr === "") {
  //   basestr = strq1
  // }
  // // 先頭にはandを付加しない(2個めの引数)
  // if (strq2 !== "") {

  //   if (basestr === "") {
  //     basestr = strq2
  //   }
  //   else {
  //     basestr += " and " + strq2
  //   }
  // }

  // // 先頭にはandを付加しない(3個めの引数)
  // if (strq3 !== "") {
  //   if (basestr === "") {
  //     basestr = strq3
  //   }
  //   else {
  //     basestr += " and " + strq3
  //   }
  // }
  console.log(retstr)

  return retstr
}

// 先頭以外の場合はandを付加する
function addstring( bstr,addstr ,colstr){

  if (addstr !== "") {
    if (bstr === "") {
      bstr = colstr + "='"+ addstr + "'"
    }
    else {
      bstr = bstr + " and " +colstr + "='"+ addstr + "'"
    }
  }
  console.log(bstr)
  return bstr

}

 

シートはこちら


※クリックするとシートが開きます。

 

 

 

 

 

引数を範囲にした場合

  • 自作関数で複数のセルを引数にする方法がわかります。
  • ドキュメントの記載方法がわかります。

 

function test_arraytest() {
  let strss = [["aaa", "bbb", "ccc"]]
  arraytest(strss)
}


/**
 * makeQueryRange
 * QUERY文を生成する
 * @param {Array<string[]>} strss 項目の範囲
 * @return QUERY文
 * @customfunction
 */
function makeQueryRange(strss) {
  // let strss = [["aaa","bbb","ccc"]]
  const itembuf = ["A", "B", "C"]

  const SELECT_A = "select *"
  let basestr = ""

  let strs = strss[0]


  console.log(strs.length)
  for (let i = 0; i < strs.length; i++) {
    basestr = addstring(basestr, strs[i], itembuf[i])
    console.log(strs[i])
  }
  if (basestr === "") {
    basestr = SELECT_A
  }
  else {
    basestr = SELECT_A + " where " + basestr

  }

  return basestr

}

 

つぎはこちら

ExcelやGoogleスプレッドシートの名簿、住所録(テストデータ)作成方法
個人情報(氏名、フリガナ、生年月日、住所、血液型、電話番号)のサンプルデータが 一瞬で作れます。

プルダウンリスト一覧

コメント

タイトルとURLをコピーしました