2016-07-02 16 views
1

モックアップスプレッドシートが含まれていますhere!私はまったく同じ処理を行い、別の関数を記述しようとしていますGoogleシートの列名でシートのセル値を別のシートに抽出する

function onAnotherSwitch() { 
var ss = SpreadsheetApp.getActive() 
var sheet  = ss.getSheetByName("Meeting Completed"); 
var activeCell = sheet.getActiveCell(); 
var col  = activeCell.getColumn(); 
var row  = activeCell.getRow(); 
if (col == 10 && activeCell.getValue() === "Completed") { 
sheet.getRange(row, col+1).setValue(new  
Date()).setNumberFormat('MM/dd/yyyy'); 
} 
} 

:私はこれを「完了」するとき、選択し、「完了」ドロップダウン値をとるコードを書かれている

、それは現在の日付をポスト「Completed」が選択されているが、代わりにYtd Attendanceをシート「Meeting Members List」から取り出し、Ytd Attendance値をタイムスタンプの右側に「Meeting Completed」というシートの2つのスペースを入れます。 YTDは出席者の名前に対応する必要があります。さらに、これらのシートの両方に列を追加する予定であるため、これらの値を列名で検索させようとしています。

私が来た最も近いが、この程度のものです:

function onAnotherSwitch() { 
var ss = SpreadsheetApp.getActive() 
var sheet  = ss.getSheetByName("Meeting Completed"); 
var activeCell = sheet.getActiveCell(); 
var col  = activeCell.getColumn(); 
var row  = activeCell.getRow(); 
if (col == 10 && activeCell.getValue() === "Completed") { 
sheet.getRange(row, col+1).setValue(
} 
} 

答えて

2

次の2枚のシート間のデータの照合に使用する出席者の名前を持つ列を指定しませんでした。伝統的に、この種のデータは最初の列にあるので、私はそうであると仮定します。スクリプトは、これをすることができる:(JavaScriptで標準的であるように)シートに、列/行番号は1から始まるながら

function attendance() { 
    var ss = SpreadsheetApp.getActive() 
    var sheet  = ss.getSheetByName("Meeting Completed"); 
    var activeCell = sheet.getActiveCell(); 
    var col  = activeCell.getColumn(); 
    var row  = activeCell.getRow(); 
    if (col == 10 && activeCell.getValue() === "Completed") { 
    var name = sheet.getRange(row, 1).getValue(); // get the name from column A 
    var listSheet = ss.getSheetByName("List of Meeting Members"); 
    var data = listSheet.getDataRange().getValues(); // all data from that sheet 
    var colIndex = data[0].indexOf('Ytd Attendance'); // found column with attendance 
    var attendance = 'N/A'; // in case there's no data for this person 
    for (var i = 1; i < data.length; i++) { 
     if (data[i][0] == name) {   // found the name 
     attendance = data[i][colIndex]; // took attendance 
     break; 
     } 
    } 
    sheet.getRange(row, col+2).setValue(attendance); 
    } 
} 

これを読んで、角括弧内のインデックスは0から始まることに注意してください。

+0

私はこれを仕事場のワークシートに使用しており、彼の答えに適応するためのロジックに従いたいと考えています。 data [0]は 'var colIindex'の式で何を意味しますか? 2番目のif文で 'data [i] [0]'はどういう意味ですか?なぜvarは私が1で始まるのですか?私はあなたがこの質問にすでに答えようとしたことを知っていますが、あなたはそれについて詳しく説明できますか? – Dleightful

関連する問題