2016-09-18 53 views
-2

我有一張帶有客戶信息和另一張紙張的表格,如果符合特定條件,客戶信息需要發送。例如,第一張表格中有一位客戶擁有唯一的標識符,在表格2上我有幾列可以檢查。如果這些列在被選取時,我需要的列標題被填充到一個細胞中的表1。所以Google表格需要將單張紙上的選中單元格映射到不同紙張上的單元格以填充單元格

John Doe 019384388 Eats cookies 
         Likes Movies 
         Needs Help from Stack exchange 

從表1和 表2

Name  uniques idetifier Eats cookies Likes movies Is tired Needs help 
John Doe 019384388    X    X      X 

我還沒有真正用JavaScript工作,這只是我在工作時用來簡化一些電子表格的東西。我曾與C,C++和Java合作,所以我理解條件語句和循環。我一直在嘗試在JavaScript中,但我很難知道如何調用電子表格中的單個單元格來製作條件語句,如if(box ==「x」& & unique id ==「xxxxxx」)cell(「 Ai「(sheet1)=」Ai「(sheet2))類型的東西。也許迭代所有的單元格使用for循環,改變我直到所有單元格被檢查。任何和所有的幫助表示讚賞。在ID

=if(B1 = 'x', $A$1, '') & if(B2 = 'x', $A$2, '') & ...

然後VLOOKUP(),並返回連接領域:

+0

@Tim威廉姆斯,在OP現在使用Excel公式作爲一種可能性添加onedit觸發。你可以加回Excel標籤嗎? – MacroMarc

+0

@MacroMarc - 我不喜歡用Excel來標記專門關於Google電子表格的問題,只是因爲在公式語法中存在一些重疊(無論大小)。這個問題應該能夠在谷歌電子表格中獨立存在。如果他們認爲合適,任何人都可以自由添加標籤。 –

+0

OP,到目前爲止有什麼幫助? – MacroMarc

回答

1

添加一行,如果複選框被選中的是串接頭。

如果您需要,請將逗號分隔符添加到if語句中,如果您不想在表格中看到它,請隱藏拼接字段。

+0

如何在IF語句中嵌套vlookup。這裏是我的:= IF('Sheet2!Q4 =「X」,'Sheet2!Q3,「」)&CHAR(10)&IF('Sheet2!R4 =「X」,'Sheet2!R3,「」) &CHAR(10)&IF('Sheet2!S4 =「X」,'Sheet2!S3「,」「)&CHAR(10)&IF('Sheet2!T4 =」X「,'Sheet2!T3」 10)&IF('Sheet2!U4 =「X」,'Sheet2!U3,「」)&CHAR(10)&IF('Sheet2!V4 =「X」,'Sheet2!V3「 &IF('Sheet2!W4 ='X','Sheet2!W3,「」)&CHAR(10)&IF('Sheet2!X4 =「X」,'Sheet2!X3,「」)&CHAR(10)&IF ('Sheet2!Y4 =「X」,'Sheet2!Y3,「」)&CHAR(10)&IF('Sheet2!Z4 =「X」,'Sheet2!Z3,「」) –

+0

我的vlookup看起來像這樣:(VLOOKUP(A4, 'Sheet2的' A4:A465,1,FALSE))。 –

2

您可以創建一個定製的谷歌Apps的功能,並把它.:

function autoCheck(e) { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet1 = ss.getSheetByName("Sheet1"); 
    var row = e.range.getRow(); 
    var col = e.range.getColumn(); 
    var sheet2 = ss.getSheetByName("Sheet2"); 
    if (e.range.getSheet().getName()=="Sheet2" && col >=3 && col<=5) { 
    var str = ""; 
    for (i=3; i<=6; i++) { 
     if (sheet2.getRange(row, i).getValue()=="X") { 
      if (str.length==0) { 
       str = sheet2.getRange(1, i).getValue(); 
      } else { 
      str =str + "\n" + sheet2.getRange(1, i).getValue(); 
      } 
     } 
    } 
    sheet1.getRange(row, 3).setValue(str); 
    } 
} 
+0

或者你可以使用Excel風格的公式 – MacroMarc

相關問題