2016-02-04 76 views
0

因此,我继承了一个Excel文件,该文件用于为约100名员工安排和跟踪PTO和OT时间。他们每年的每一天都有专栏,并将年份分成两页。如果其他单元格匹配,则Excel中的某些单元格范围会匹配列

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

我想创建一个公式,将检查员工的名字与跟踪表上的名称列,然后只计算一部分包含NM1的细胞行等

这里是其中的一个单元,因为它现在是:

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

员工姓名在列d,这是通过计算NM1只是一月(E栏啊)。

+0

你可能想考虑一些VLOOKUP。这可能有帮助。 – durbnpoisn

+0

所以你想添加到现有的公式还包括员工姓名的标准? –

+0

我想看看是否有一个更简单的方法来构建这个,以避免必须剪切和粘贴100次以及更改查找/替换行参考 –

回答

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*") 

编辑,解释:如果员工是在D7

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

该函数返回相对行中的目标员工被发现,即和范围为D6:D106则返回的值是1,因为该相对从起始范围偏移量(从0开始)

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

此功能通过的数目移位的任何给定的范围行和列。在前面的函数中,范围偏移1行(向下移动1行)。

COUNTIF(<range>,<criteria>) 

<range>由OFFSET功能的移位范围决定。

+0

'OFFSET()'是一个[volatile函数](https://msdn.microsoft.com/zh-cn/library/office/bb687891 .aspx),因为它会在每次有变化时重新计算所有单元格,而不管它是否影响公式的数据。根据OP将在表单中放置的这些公式的数量,在任何时候进行更改都会大大减慢。 –

+1

好点,会记住这一点。谢谢。 –

+0

以下是有关文档中有关问题的链接https://docs.google.com/spreadsheets/d/1CbLsekrM2Em5NQ4ibg5MjtNpeJ0rDgsK5w4wVTcIMyY/edit?usp=sharing –

0

使用此:

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

更改“NAME”对有员工姓名汇总表的单元格。您也可以将“NM1”更改为单元格引用。

相关问题