2017-03-07 29 views
0

spreadsheet-image showing lookup-formula使用查找配方

我想用一個VLookup公式列中的每一個細胞(德語= sverweis)。 VLookup範圍始終保持不變,但值(m3,m4,m5)必須在每個單元格中更改。

由於我使用表單,新記錄總是進來,因此拖下公式不是一個好主意。該公式正在N列的每個單元格中運行。

我嘗試使用數組公式,但不知何故,我卡住了。

你知道如何解決這個問題嗎?提前致謝!

+2

將範圍轉換爲列表(插入 - 表格),以便在出現新記錄時自動拖動公式? – GSerg

+0

這將是我的答案,但它看起來像他使用谷歌牀單。我有一個腳本,可以在表單提交時將編輯鏈接放入工作表中,並將其修改爲在同一時間添加幾個公式。我會看看我能否找到它。 – Gordon

回答

0

這裏有一個使用腳本的技巧,將編輯鏈接放入您的表單回覆表單中。你會在底部看到我添加了幾個簡單的公式來添加2個單元格在一起sheet.getRange(i+1, columnIndex+2).setValue('=B'+intRow+'+C'+intRow);這是你可以把你的查找公式的地方。

您需要將YOUR-FORM-ID更改爲表單網址中的長表單ID。由於Google現在將您的ID隱藏在面向用戶的表單中,所以您需要轉到表單編輯器並從該表單複製ID,因此我遇到了麻煩。

您還必須在代碼中更改表單名稱以符合您的要求。

// Form URL 
var formURL = 'https://docs.google.com/forms/d/YOUR-FORM-ID/viewform'; 
// Sheet name used as destination of the form responses 
var sheetName = 'Form Responses 1'; 
/* 
* Name of the column to be used to hold the response edit URLs 
* It should match exactly the header of the related column, 
* otherwise it will do nothing. 
*/ 
var columnName = 'Edit Url' ; 
// Responses starting row 
var startRow = 2; 

function getEditResponseUrls(){ 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName); 
    var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues(); 
    var columnIndex = headers[0].indexOf(columnName); 
    var data = sheet.getDataRange().getValues(); 
    var form = FormApp.openByUrl(formURL); 
    for(var i = startRow-1; i < data.length; i++) { 
    if(data[i][0] != '' && data[i][columnIndex] == '') { 
     var timestamp = data[i][0]; 
     var formSubmitted = form.getResponses(timestamp); 
     if(formSubmitted.length < 1) continue; 
     var editResponseUrl = formSubmitted[0].getEditResponseUrl(); 
     Var intRow = i + 1 
     sheet.getRange(i+1, columnIndex+1).setValue(editResponseUrl); 
     sheet.getRange(i+1, columnIndex+2).setValue('=B'+intRow+'+C'+intRow); 
     sheet.getRange(i+1, columnIndex+3).setValue('=H'+intRow+'+E'+intRow); 
    } 
    } 
} 

如果您不熟悉腳本編輯器,您只需點擊工具和腳本編輯器,然後用此代碼替換那裏的任何代碼。

+0

嗨戈登,哇,你是我的冠軍!非常感謝!我會檢查並回來! –

+0

我只注意到代碼使用一個名爲columnName的變量來自動找到更新的正確列。您可以將其更改爲電子郵件,然後將您的vlookup放在具有editResponseUrl的位置。 – Gordon