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