文字列を数式に! 指定したシートの範囲をデータとして取得する(Gスプレッドシート)

応用編

応用一覧

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

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

前回

文字列内で文字を最後(右側)から検索する方法(Excel,Gスプレッドシート)
  • SUBSTITUTE関数の基本的な使い方がわかります。
  • 文字列内で検索したい文字を最後から検索する方法がわかります。
  • 名前付き関数の作成方法がわかります。
  • 今回は、とっても価値の高い方法をお伝えします。


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

    • 文字列を区切り文字を付けて連結する方法がわかります。
    • GASを使用して文字列の数式を数式として扱うことができます。
    • 指定したシートの範囲からデータを取得することができます。

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

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

    動画はこちら

    シートはこちら

    *クリックすることでシートが開きます。(コピーしてお使いください)

     

    スクリプト

    /**
     * 文字列の数式を実行して結果を出力する
     */
    function setformula(){
      const sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
      const val = sh.getRange("A11").getValue()
      console.log(val)
      sh.getRange("A13").setFormula(val)
    }

     

     

    ポイント

    複数の行の連結

    {範囲A;範囲B}中括弧内で;(セミコロン)を区切り文字とすることで範囲を連結できます。

    区切り文字を指定して連結

    区切り文字を指定して文字列を連結するには、TEXTJOIN関数を使用します。

    TEXTJOIN(区切り文字, 空のセルを無視, テキスト 1, [テキスト 2, …])

     

    区切り文字に;(セミコロン)を指定し前後を{}でくくれば、
    いい感じで数式ができあがります。

    例)

    =“{“&TEXTJOIN(“;”,true,D2:D4)&“}”

    {‘メール送信’!A2:C4;’メール送信’!A11:C12}

    後は、この文字列を数式として認識させます。

     

    文字列から数式

    数式でできればいいのですが、該当する数式がなさそうなので
    力技です。

    GASでセルの値を取得してsetFormula することで数式の結果が
    指定したセルに表示されます。

    /**
     * 文字列の数式を実行して結果を出力する
     * A13セルの結果をA14セルに出力
     */
    function setFormula(){
      const sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
      const val = sh.getRange("A13").getValue()
      console.log(val)
      sh.getRange("A14").setFormula(val)
     }

    ※セルは固定なのであなたの環境に合わせて変更してください。

     

     

    最後までご覧いただきありがとうございます。

    つぎはこちら

    はじめてのプルダウンリスト(ドロップダウン)(入力規則)(Gスプレッドシート)
  • 選択肢を簡単に作成することができます。
  • 選択肢を用意することで入力ミスを防ぐことができます。
  • 応用一覧

    コメント

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