Excel中的OR条件始终为TRUE

w8rqjzmb  于 2023-06-07  发布在  其他
关注(0)|答案(2)|浏览(185)

我的Excel有三个列:
| 使用者|工作状态|任务|
| - -----|- -----|- -----|
| 马里奥|完成|任务11|
| 阿娜|取消|任务12|
| 玛丽亚|在工作中|任务13|
| 赛琳娜|在工作中|任务14|
| 马里奥|完成|任务15|
| 卢卡|朗朗纳|任务16|
| 卢卡|完成|任务17|
| 赛琳娜|在工作中|任务18|
我想得到这样的结果:第一列是A列:Mario,Ana,Selena,Luca在第二列,名字旁边,是他们的任务,但只有当B列是“在工作”或“longrunner”时
我试过:

=TEXTJOIN(", ",TRUE,UNIQUE(IF(OR(Sheet1!$B$2:Sheet1!$B$20="longrunner",Sheet1!$B$2:Sheet1!$B$20="in work"),IF(A2=Sheet1!$A$2:Sheet1!$A$20,Sheet1!$C$2:Sheet1!$C$20,""),"")))

但是首先如果OR命令不起作用,它总是给予我true。当我只放一个B列的例子,没有OR

=TEXTJOIN(", ",TRUE,UNIQUE(IF(Sheet1!$B$2:Sheet1!$B$20="in work",
IF(A2=Sheet1!$A$2:Sheet1!$A$20,Sheet1!$C$2:Sheet1!$C$20,""),"")))

它运行良好。第一个条件是什么?

xqkwcwgp

xqkwcwgp1#

如果我理解正确,你可能需要使用这个:

·单元格E10中使用的公式

=LET(
a,FILTER(A2:C9,ISNUMBER(XMATCH(B2:B9,{"in work","longrunner"}))),
b,INDEX(a,,1),
c,INDEX(a,,3),
u,UNIQUE(b),
HSTACK(u,BYROW(u,LAMBDA(x,TEXTJOIN(", ",1,FILTER(c,x=b))))))

或者,如果你想为那些没有in-worklongrunner的字符设置空格,那么
·单元格E2中使用的公式

=LET(u,UNIQUE(A2:A9),
HSTACK(u,BYROW(u,LAMBDA(x,TEXTJOIN(", ",1,FILTER(C2:C9,(x=A2:A9)*(ISNUMBER(XMATCH(B2:B9,{"in work","longrunner"}))),""))))))
djmepvbi

djmepvbi2#

你可以使用这个公式:

= LET(u,UNIQUE(Tabelle1[user]),
t,BYROW(u,LAMBDA(x,TEXTJOIN(", ",TRUE,
                              FILTER(Tabelle1[task],(Tabelle1[user]=x)*
                                                                    ((Tabelle1[status]="in work")+(Tabelle1[status]="longrunner")),"-")
                               ))),
HSTACK(u,t))

相关问题