2016-06-15 9 views
0

私は、GoogleシートのvLookupと同様に動作するスクリプトを作成する方法を探しています。私がやろうとしています何Google Apps Scriptの2つの範囲の間でvlookupを実装する

Here is a link to a simplified example document.

種類の形態として「シート1」を使用しています。 "Sheet1"列に情報を入力すると、カスタムメニューボタンをクリックし、 "Sheet1"列の情報をB列に自動的に入力して、A列の値を "Sheet 2"の最初の空の列に挿入します。 。

私はカスタムメニューを作成して関数を実行するスクリプトを書くことができますが、関数自体を書く方法は不明です。

答えて

0

このような機能は次のようになります。各シートへのポインタを取得し、それぞれから適切な範囲を取得します。列Aと列Bは、下の空の行を無視します。次に、値を取得し、それらの比較を開始します。列Aが一致すると、列Bが割り当てられます。最後の行は、修正された配列valuesをSheet2に戻します。

function vl() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet1 = ss.getSheetByName('Sheet1'); 
    var sheet2 = ss.getSheetByName('Sheet2'); 
    var range1 = sheet1.getRange(1, 1, sheet1.getLastRow(), 2); 
    var range2 = sheet2.getRange(1, 1, sheet2.getLastRow(), 2); 
    var values1 = range1.getValues(); 
    var values2 = range2.getValues(); 
    for (var i = 0; i < values1.length; i++) { 
    for (var j = 0; j < values2.length; j++) { 
     if (values1[i][0] === values2[i][0]) { 
     values2[i][1] = values1[i][0]; 
     } 
    } 
    } 
    range2.setValues(values2); 
} 
+0

ありがとうございました。コードは非常に有用でした!このシートのスクリプトエディタを見てみましょうか?私は私のニーズに合うようにコードを少し微調整しましたが、まだまだ小さな問題に直面しています。 "データベース"シートでは、列 "B"の対応する値が見つからない場合、列 "A"の "titles"をコードに貼り付けているようです。私はそれらの細胞を空白にしたいです! https://docs.google.com/spreadsheets/d/1zYiai0fvPFAxd5DmrPH_aYB5eXw3ECYRoCwgGOBt2Gk/edit?usp=sharing – UglyNford

関連する問題