Excel连接字符串,包括if-else语句

Excel连接字符串,包括if-else语句,excel,if-statement,excel-formula,concatenation,Excel,If Statement,Excel Formula,Concatenation,我有这张桌子 A B C D 1 User | priv1 | priv2 | priv3 2 test | y | n | n 3 more | n | y | n 以此类推,我想从中生成db2命令 ="GRANT "&(IF B2="y", B1, "")& ", "&(IF C2="y", C1, "" )& ", "&(IF D2=

我有这张桌子

      A      B       C       D
 1   User | priv1 | priv2 | priv3
 2   test |   y   |   n   |   n   
 3   more |   n   |   y   |   n  
以此类推,我想从中生成db2命令

 ="GRANT "&(IF B2="y", B1, "")& ", "&(IF C2="y", C1, "" )& ", "&(IF D2="y", D1, "" )&" on DATABSE TO USER "&A2&";"
是否应该有

 GRANT priv1 ON DATABASE TO USER test;
然而,我无法让这些部件正常工作

有什么想法吗?我尝试了很多语法,但没有一个能起作用。谷歌也不是我的朋友

Windows 10上的EXCEL 365

谢谢

IF后面的括号

 ="GRANT "&IF(B2="y", B1, "")& ", "&IF(C2="y", C1, "" )& ", "&IF(D2="y", D1, "" )&" on DATABASE TO USER "&A2&";"
编辑:在B1、C1、D1和A2中的文本周围加引号

="GRANT "&IF(B2="y", "'"&B1&"'", "")& ", "&IF(C2="y", "'"&C1&"'", "" )& ", "&IF(D2="y","'"&D1&"'", "" )&" on DATABASE TO USER '"&A2&"';"
如果要在单元格中输入多个“y”,可以使用textJoin函数

像这样:

="GRANT "&TEXTJOIN(", ";1;IF(B2="y";$B$1;"");IF(C2="y";$C$1;"");IF(D2="y";$D$1;""))&" on DATABASE TO USER "&A2&";"
如果需要,此公式将放置逗号

下面是一个工作示例:

更新: 如果您能够更好地修改源表,请将其修改为:

      A      B       C       D
 1   User | priv1 |       |     
 2   test | priv2 |       |      
 3   more | priv3 |       |   
 4   other| priv1 | priv3 |
那么公式将更简单,如下所示:

="grant "&TEXTJOIN(", ";1;B2:D2)&" on database to user "&A2&";"

下面是一个示例:

它对我有效-错误是什么你复制并粘贴公式了吗?尝试用分号作为分隔符符号?我应该把分号放在哪里?对不起,我忘了用你的实际数据测试它,所以我没有注意到需要引号的文本。我得到了#名称?如果我用这个,你能分享一下吗?