如果其他单元格匹配列,则Excel计算行中的某些单元格范围

时间:2016-02-04 19:07:42

标签: excel count countif

所以我继承了一个Excel文件,用于为大约100名员工安排和跟踪PTO和OT时间。他们在一年中的每一天都有一个专栏,并将这一年分成两页。

我正在尝试创建一个总计表,显示每个员工的分组,并计算跟踪表中使用的每种时间代码类型。每次类型都有一个代码用于连续格式化NM1,NM2,......

我正在尝试创建一个公式,该公式将根据跟踪表上的名称列检查员工的姓名,然后只计算包含NM1等的单元格的行的一部分

这是现在的一个单元格:

=COUNTIF('2015MarNov'!$E$88:$AH$88,"*"&"NM1"&"*")

员工姓名在D栏中,这只计算一月份的NM1(E到AH列)。

2 个答案:

答案 0 :(得分:0)

试试这个:

=COUNTIF(OFFSET($E$1:$AH$1,MATCH(<target employee cell>,$D:$D,0)-1,0),"*NM1*")

在这个例子中,我假设第1行包含标题,第2行以雇员开头。如果不是这样的话,请尝试以下方法:

=COUNTIF(OFFSET($E$5:$AH$5,MATCH(<target employee cell>,$D$6:$D$106,0),0),"*NM1*")

编辑,解释:

Match(<target employee cell>,<range of employees>,0)

此函数返回找到目标员工的相对行,即如果员工在D7中且范围是D6:D106则返回值为1,因为这是从起始范围的相对偏移(从0)

OFFSET(<range>,<rows>,<columns>)

此函数按指定的行数和列数移动任何给定范围。在上一个函数中,范围偏移1行(向下移1行)。

COUNTIF(<range>,<criteria>)

<range>取决于OFFSET函数的移位范围。

答案 1 :(得分:0)

使用此:

=COUNTIF(INDEX('2015MarNov'$E:$E,MATCH("NAME",'2015MarNov'$D:$D,0)):INDEX('2015MarNov'$AH:$AH,MATCH("NAME",'2015MarNov'$D:$D,0)),"*"&"NM1"&"*")

将“NAME”更改为摘要表上具有Employee名称的单元格。您也可以将“NM1”更改为单元格引用。