根据多列中的多个条件进行计算

根据多列中的多个条件进行计算

我有一张名为“数据”的数据输入表。输入的数据是性别、年龄和分数。在另一张用作参考/查找的工作表“FACTG_Ref”中,包括性别、年龄 1、年龄 2、左和右。年龄 1 和年龄 2 用作年龄组的范围。左和右用作分数的范围。

数据

FACTG_Ref

我需要根据“数据”工作表中的性别值与“FACTG_Ref”中的性别匹配,年龄值在正确的年龄范围内(FACTG_Ref 中的 age1 和 age2 之间),计算“数据”工作表中的“BELOW”、“BETWEEN”和“ABOVE”列。如果年龄未满 18 岁,则所有计算留空。然后,如果分数在左下方,则 BELOW = 1,分数在左右之间,BETWEEN = 1,如果分数在右上方,则 ABOVE = 1。

答案1

这将找到正确的行并将两个变量传递给 Match,然后将其传递给外部 INDEX 以选择正确的值。

如果此值与标题匹配,1则放置a,0否则:

=IF(OR($K2<18,$J2="Missing"),"",--(M$1=IFERROR(INDEX({"BETWEEN","ABOVE"},MATCH($L2,INDEX($F:$G,MATCH($J2,$A:$A,0)+MATCH($K2,$B$2:$B$7)-1,0))),"BELOW")))

在此处输入图片描述

答案2

COUNTIF包裹IF可以解决问题:

在此处输入图片描述

  • 单元格中输入公式D21,填充即可。

    =IF(D$20="Below",IF($B21<18,"",COUNTIF($C21:$C21,"<"&Sheet2!$L21)),IF(D$20="Between",IF($B21<18,"",COUNTIFS($C21:$C21,">="&Sheet2!$L21,$C21:$C21,"<="&Sheet2!$M21)),IF(D$20="Above",IF($B21<18,"",COUNTIF($C21:$C21,">"&Sheet2!$M21)),0)))
    

您可以根据需要调整公式中的工作表名称和单元格引用。

相关内容