2016-09-18 54 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

相关问题