0

Google が提供する複製ファインダーのコードをカスタマイズして書き直そうとしています。私のコードを以下にコピーします。まだ最終バージョンではありませんが、この段階では既に動作するはずです。残念ながら、なぜそうならないのかわかりません。

tablicaLinkowは、アクティブな範囲のすべての値を含む配列です 。tablicaNowaは、重複していない値を格納する配列です。

私がそれを機能させたかったのは、「tablicaLinkow」がすべてのアクティブな行の2番目の列から収集された値の配列であることです(したがって、1次元配列です)。スクリプトは「tablicaLinkow」から 1 つの値を取得し、「tablicaNowa」でそれを検索します。存在する場合、スクリプトはduplicateをログに記録します。そうでない場合、スクリプトはそれを「tablicaNowa」に入れ、重複していないことをログに記録します。

何らかの理由で、スクリプトは重複を認識しません。値が重複しているにもかかわらず、値が重複していないことを常にログに記録します。サンプルログも以下にあります。

手伝ってくれてありがとう!

function sprawdzWielokrotne3() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.getActiveSheet();
  var aktZas = ss.getActiveRange();

  var kolUwag = 9,                                     //Nevermind
      kolSpra = 2,                                     //Column that is to be checked
      aktRzad = aktZas.getRowIndex(),                  //First row of the active range
      aktWysk = aktZas.getHeight(),                    //Amount of active rows
      calSzer = sheet.getDataRange().getNumColumns();  //Nevermind

  //Checks if user chose more than one row
  if (aktWysk > 1){
    //Gets values of 2nd column of all the active rows
    var tablicaLinkow = sheet.getRange(aktRzad, kolSpra, aktWysk).getValues();
    //Array where the non-duplicates are to be put
    var tablicaNowa = new Array();

    for (var i in tablicaLinkow){
      var duplo = false;
      for (var j in tablicaNowa){
        if (tablicaLinkow[i] == tablicaNowa[j]){
          duplo = true;
        }
      }
      if (duplo == false){
        Logger.log(tablicaLinkow[i] + ' not a duplicate');
        tablicaNowa.push(tablicaLinkow[i]);        
      } else {
        Logger.log(tablicaLinkow[i] + ' duplicate');
      }
    }
  }
}

ログの例

[13-07-22 17:36:19:145 CEST] 3199894 not a duplicate
[13-07-22 17:36:19:145 CEST] 3199894 not a duplicate
[13-07-22 17:36:19:146 CEST] 3199894 not a duplicate
[13-07-22 17:36:19:146 CEST] 2417512 not a duplicate
[13-07-22 17:36:19:146 CEST] 2417512 not a duplicate
[13-07-22 17:36:19:147 CEST] 199894  not a duplicate
[13-07-22 17:36:19:147 CEST] 2342261 not a duplicate
4

2 に答える 2