如何在Excel中有条件地添加新行和制表符?

时间:2016-01-27 16:28:45

标签: excel excel-formula excel-2010

我有一个值列表id, name, category, description和可变数量的keyword值;每行0到18之间。我想以下列形式创建这些值的列表:

(id, 'keyword')
, (id, 'keyword')

如果有关键字与标识符一起使用,则列表仅增加。这是一个简单的SQL INSERT语句的手动列表。

我意识到我可以使用&CHAR(9)插入标签,&CHAR(10)插入新行,因此每个新条目的正确制表顺序为&CHAR(10)&CHAR(9)&CHAR(9)

=IF(G2<>"",CONCATENATE("(",A2,", '",UPPER(G2),"')"),"")
&CHAR(10)&CHAR(9)&CHAR(9)&
IF(H2<>"",CONCATENATE("(",A2,", '",UPPER(H2),"')"),"")

我尝试了几种不同的组合,例如:

=IF(G2<>"",CONCATENATE("(",A2,", '",UPPER(G2),"')"),"")+
IF(H2<>"",CHAR(10)&CHAR(9)&CHAR(9)&CONCATENATE("(",A2,", '",UPPER(H2),"')"),"")

=IF(G2<>"",CONCATENATE("(",A2,", '",UPPER(G2),"')",CHAR(10),CHAR(9),CHAR(9)),"")+
IF(H2<>"",CONCATENATE("(",A2,", '",UPPER(H2),"')"),"")

=IF(G2<>"",CONCATENATE("(",A2,", '",UPPER(G2),"')"),"")+
IF(H2<>"",CONCATENATE(CHAR(10),CHAR(9),CHAR(9),"(",A2,", '",UPPER(H2),"')"),"")

这些都给出了计算错误。有没有其他人一直渴望知道如何做到这一点,并有这种挫折感?有人有解决方案吗?

1 个答案:

答案 0 :(得分:0)

我实际上是在发布后的一个小时内发现了这一点,但忽略了在这里发布解决方案以防其他人想知道。

您必须CONCATENATE整个IF块系列,并将CHAR(10)CHAR(9)添加到内部CONCATENATE块中,如下所示:< / p>

=CONCATENATE(IF(G2<>"",CONCATENATE("(",A2,", '",UPPER(G2),"')"),""),
IF(H2<>"",CONCATENATE(CHAR(10),CHAR(9),CHAR(9),"(",A2,", '",UPPER(H2),"')"),""))

谢谢,

-C§