GAS入門者へおすすめ動画教材&書籍おすすめ!

Google Apps Script(GAS)

GASでの自分用メモ(シート間を比較して正しかったらコピペ)

2018年5月2日

0
0

自分用のメモ

二つのスプレッドシートがあったとして、AシートのA行の値と、BシートのA行の値を比較します。もし、BシートのA行の値の中に、AシートのA行の値と被るものが合った場合、AシートのB行の値を、BシートのA行コピペします。パラメーターを変えるだけで、どうにでもできるようにしただけです。

実装

 

var Polygon = function(copyFromSheetId, setToSheetId, copyFromSheetNum, setToSheetNum, copyFromRow, setToRow, copyFromRowValue,setToRowValue)
{
      this.copyFromSheetId = copyFromSheetId;
      this.setToSheetId = setToSheetId ;
      this.copyFromSheetNum = copyFromSheetNum;
      this.setToSheetNum = setToSheetNum;
      this.copyFromRow = copyFromRow;
      this.setToRow = setToRow;
       this.copyFromRowValue = copyFromRowValue;
      this.setToRowValue = setToRowValue;
      this.logDimension = function()
      {

      var copyFromArray = {};
      var setToArray = {};

      var copyFromSpreadsheetId = SpreadsheetApp.openById(this.copyFromSheetId);
      var setToSpreadsheetId = SpreadsheetApp.openById(this.setToSheetId);

      var copyFromSheetNum = copyFromSpreadsheetId.getSheets()[this.copyFromSheetNum];
      var setFromSheetNum = setToSpreadsheetId.getSheets()[this.setToSheetNum];

      var copyFromSheetLastRow = copyFromSheetNum.getLastRow();
      var setFromSheetLastRow =  setFromSheetNum.getLastRow();  

      for(var i = 1; i <= copyFromSheetLastRow; i++) 
      {
          if(copyFromSheetNum.getRange(i, 1).getValues() != "")
          {    
              copyFromArray[
              copyFromSheetNum.getRange(i, this.copyFromRow).getValues()
              ] = copyFromSheetNum.getRange(i, this.copyFromRowValue).getValues();
          }
      }

      for(var i = 1; i <= setFromSheetLastRow; i++) 
      {
          for (var key in copyFromArray) 
          { 

             Logger.log(    setFromSheetNum.getRange(i,  this.setToRowValue).getValues()      );


              if(    String(key) === String(setFromSheetNum.getRange(i,  this.setToRow).getValues()))
              {
                Logger.log("正解");
                Logger.log(      copyFromArray[key] );
                setFromSheetNum.getRange(i, this.setToRowValue).setValue( copyFromArray[key] );
              }
          }
      } 
    }
};

function testPoly()
{
      var poly1 = new Polygon
      (
        '17FNDl3iKQHusFI6K3IFmjUibsuhgN3CRbSnGUQnqK14', //copyFromSheetId
        '1DtH6QACaBynUJrrAG9qvP3CqYohX6px7rpDIh3m7Vi4', //setToSheetId
        1, //copyFromSheetNum
        1, //setToSheetNum;
        1, //copyFromRow;
        1, //setToRow
        1, // copyFromRowValue;
        3 // setFromRowValue;
      );
      poly1.logDimension();
}

//      Logger.log("copyFromSheetId");
//      Logger.log(this.copyFromSheetId);
//      Logger.log("setToSheetId");
//      Logger.log(this.setToSheetId);
//      Logger.log("copyFromSheetNum");
//      Logger.log(this.copyFromSheetNum);
//      Logger.log("setToSheetNum");
//      Logger.log(this.setToSheetNum);
//      Logger.log("copyFromRow");
//      Logger.log(this.copyFromRow);
//      Logger.log("setToRow");
//      Logger.log(this.setToRow);
//      Logger.log("copyFromRowValue");
//      Logger.log(this.copyFromRowValue);
//      Logger.log("setToRowValue");
//      Logger.log(this.setToRowValue);

 

ここら辺の本を読んで、めっちゃ勉強になりました、ブログって簡単にわかるけど、深い部分で基礎が結構抜け落ちてたりするんだよね... 基礎の徹底は、良いエンジニアの基本なので、ここら辺を横着するか否かで将来のエンジニア人生も大きく変わる。なので、こういう本はしっかり読もうと思います。(お勧めなので、是非読んでみればいいと思います :))

Pocket
LinkedIn にシェア

りょすけ
毎月3万人以上のプログラマーが訪れるoff.tokyoで、プログラマーさん向けのアンケートを実施しています、アンケートに無料回答すると、他の人の投票も見ることが出来ます!

学びたいプログラミング言語は何ですか?

GAS入門者へのおすすめ記事

 vaaaval@gmail.com



  • この記事を書いた人
  • 最新記事

藤沢瞭介(Ryosuke Hujisawa)

りょすけと申します。18歳からプログラミングをはじめ、今はフロントエンドでReactを書いたり、AIの勉強を頑張っています。off.tokyoでは、ハイテクやガジェット、それからプログラミングに関する情報まで、エンジニアに役立つ情報を日々発信しています!

-Google Apps Script(GAS)

Copyright© off.tokyo , 2021 All Rights Reserved Powered by AFFINGER5.