GAS「ねこあつめ」IF文で条件に該当するねこ名を出力する「ねこあつめシリーズ:その4」

この記事では、GAS(Google Apps Script)でForループの中でIF文を使って、ある条件に該当するセルの値を取得する方法を掲載しています。
また、その条件とは、「セルに値が入っていない空欄」なので、NOTという演算子を使う書き方を学べます。

とてもシンプルな内容で、対象者は「猫が好きなGAS入門者」です。「ねこあつめアプリ」を題材に記事を書いています。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

まず、前回の復習をします。


このようなスプレッドシートから、A列の「なまえ」で2行目の「へきさにゃん」〜5行目の「とらきち」までログに出力します。
出力結果とコードです。

function myFunction() {
  const ss=SpreadsheetApp.getActiveSheet();
  let lastRow=ss.getLastRow();//最終行を取得
  
  //ループでねこちゃん達の名前を出力
  for(let i=2;i<=lastRow;i++){
    console.log(ss.getRange(i,1).getValue());
  }
}

今回の内容に入る前に、「ねこあつめ」画像で癒されます(=^x^=)
このコは茶トラのヘキサにゃんです。

では、今回扱うスプレッドシートは、以下の様に用意いたしました。

一番右側の列「入力」の所に何も入っていない猫ちゃんの名前を出力します。
つまりこの例では、「ヘキサにゃん」と「とらきち」が出力されます。

Forループの中にIF文を書いていきます。
イメージは、こんな感じです。

「For
 「IF
 」

「」をブロッック( { } )に見立ててイメージすると分かりやすいかもしれません。

一番右の列が空白だったら、ということは、「セルの中身に何も入っていない」、つまり、言い換えると、
中身に文字が入っていることの否定」です。

この否定(NOT)は、先頭に「!」をつけて書きます。
いきなり論理演算NOTなんて出てくるとチョットびっくりしちゃいますよね。
ビックリマークなんて出てきたし。
そこで、懐かしのベン図を使って解説致します。
(ビックリマンも懐かしいな・・・。)

赤く塗っているところが「東京都民」です。

NOTを使うために「!」を使うと、東京都民では「ない」人が赤くなります。

「!東京都民」で例えば北海道とか沖縄が該当します。
この例では、「!なんか文字が入っている」→「空欄」を指定しています。

では、1番右の列に何も入っていない、つまり「!なんか入っている」場合に限り、猫ちゃんの名前を出力します。
7行目のIF文にご注目をお願いします。 

function myFunction() {
  const ss=SpreadsheetApp.getActiveSheet();
  let lastRow=ss.getLastRow();//最終行を取得
  
  //ループで入力の列に何も入っていない猫ちゃんたちの名前を出力
  for(let i=2;i<=lastRow;i++){
    if(!ss.getRange(i,4).getValue()){
      console.log(ss.getRange(i,1).getValue());
    };    
  }
}

実行結果です。

これで、「ヘキサにゃん」と「とらきち」が出力されました(=^x^=)
ご精読ありがとにゃん(=^x^=)

参考記事:【初心者向けGAS】条件分岐をするif文の使い方の超基本

■参考文献の紹介■
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。

GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本を通してじっくり学べます。

サイトマップはこちらから

GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介

←前に戻るにゃん          次行くにゃっ→

投稿者: nekosiestr

プログラミング学習中のロスジェネ(就職氷河期世代)の発達障害者です。 宜しくお願いします。 趣味で写真を撮っています。 プログラミングは、GAS/HTML/CSS/JavaScript/jQuery/PHP、 発達障害は、自閉症スペクトラムASD/ADHD、その他双極性障害やHSP(5人に1人の繊細さん)などの生きづらさを抱えておりますが、それでも楽しく生きて行きたいです!! 写真は、以前はコンパクトデジカメ、現在は、OLYMPUSミラーレス一眼を使っています。