为了确定哪位学生能获得 5 分的“加分”,研究生必须参加两次研讨会。
本科生 (UGRAD) 必须参加过 SEM 1 或 SEM 2。
如果研究生参加过一次研讨会或者没有参加过研讨会,则奖励=0。如果研究生没有参加过研讨会,则奖励=0。
我想出了针对本科生、研究生和研究生的公式,但很难按照要求将这些功能组合成一个。
对于 GRAD 我使用了:
=IF(AND(Status="grad",Sem_1="present",Sem_2="present"),5,0)
对于 UGRAD 我使用了:
=IF(OR(Sem_1="present",Sem_2="present"),5,0)
** 编辑只能使用一个公式
答案1
如果你可以使用:
=IF(AND(Status="grad",Sem_1="present",Sem_2="present"),5,IF(AND(Status="ugrad",OR(Sem_1="present",Sem_2="present")),5,0))
我通过添加和状态将您的 2 个 if 合并为一个,这是一个嵌套的 if,在 false 部分,您可以启动第二个语句。我尝试使用正常引用:
=IF(AND(B3="grad",C3="present",D3="present"),5,IF(AND(B3="ugrad",OR(C3="present",D3="present")),5,0))
使用相同的图片显示
B 列是状态 C 和 D 列 Sem_1 和 Sem_2
答案2
没有任何IF
声明,只是为了好玩。在单元格中H5
:
=5*(0<(Status="grad")*((Sem_1="present")*(Sem_2="present"))+(Status="ugrad")*((Sem_1="present")+(Sem_2="present")))
present
我将通过将任何状态 更改为1
和absent
来进一步改进此工作表0
。您可以使用自定义数字格式使它们显示为“存在”和“不存在”(即,通过选择这些单元格,按 Ctrl+1,转到自定义,并指定"present";;"absent"
为格式。
这将使表格看起来完全相同,但公式变得更短:
=5*(0<(Status="grad")*(Sem_1+Sem_2)+(Status="ugrad")*(Sem_1*Sem_2))
这也更易于维护——如果您想要更改,比如从“出席/缺席”更改为“出席/缺席”,您无需编辑公式。换句话说,该公式不会对 Sem_1 和 Sem_2 单元格的措辞做出假设,只会假设它们的值。例如,它还可以更轻松地计算出出席/缺席的学生人数。