任务完成excel函数

任务完成excel函数,excel,if-statement,excel-formula,task,Excel,If Statement,Excel Formula,Task,我有两个表,一个是DB,另一个是UI;我的EmployeeDB表是这样的: Name: Task 1 Task 2 Task 3 John Smith X X X Alexandra Kole X X Jane Austin X 在我的UI表中,第一列有员工姓名,我想显示所有任务是否完成的状态。所以一定是这样的 Name: Status Jo

我有两个表,一个是DB,另一个是UI;我的EmployeeDB表是这样的:

Name:           Task 1  Task 2 Task 3
John Smith        X       X      X
Alexandra Kole    X       X             
Jane Austin               X
在我的UI表中,第一列有员工姓名,我想显示所有任务是否完成的状态。所以一定是这样的

Name:            Status 
John Smith       Complete
Alexandra Kole   Incomplete
Jane Austin      Incomplete
我已将以下公式粘贴到此表的状态列:

=IF(EmployeeDB[Name]=B4;IF(OR(EmployeeDB[Task 1]=""; EmployeeDB[Task 2]="";  EmployeeDB[Task 3]="");  "Incomplete"; "Complete"); "n.a"). 
但它只适用于状态表中的第一个员工,对于其他员工,结果为n.a,即使该员工在DB上

请说明问题所在,以及如何解决问题?

试试看

=IF(COUNTA(INDEX(DB[[Task 1]:[Task 3]], MATCH([@[Name:]], DB[Name:], 0), 0))=3, "Complete", "Incomplete")

这将起作用:

假设您的数据开始于
B2
,结束于D2, 像这样:

那么下面的公式就行了

=IF(COUNTA(B2:D2) = COLUMNS(B2:D2), "Complete", "Incomplete")


不过,此解决方案非常简单,如果您想将名称与特定索引相匹配,则应使用@QHarr提供的解决方案。这只能说明一种简单的解决方法

您已经有了一个很好的解决方案,可以避免不稳定的间接冲突。这里是间接的

氢减阻

=IF(NOT(COUNTBLANK(OFFSET(INDIRECT(CELL("ADDRESS",INDEX(A2,MATCH($G2,$A2:$A4,0)))),,1,1,3))),"COMPLETE","INCOMPLETE")
资料


那么哪个单元格是B4或更好,它的内容是什么?B4是第二个表中“名称”列下的单元格:-其中有员工姓名(本例中为John Smith)。我的公式在C4中,它必须通过检查员工姓名与数据库中的姓名是否匹配以及任务是否完成来显示状态。谢谢,Rawrplus,这似乎也是一个明智的解决方案,我选择@Jeeped的版本是因为您指定的原因。