IF INDEX在价值回报和#34; x"

时间:2015-04-23 15:36:19

标签: arrays indexing excel-formula match

A         B        C          D        E
Id      Status  gmtDate      Gmt   Length
A       online  01.02.15    07:03   00:03
A       offline 01.02.15    07:06   29:02
A       online  02.02.15    12:08   00:39
A       pause   02.02.15    12:47   00:46
A       online  02.02.15    13:34   00:24
A       online  02.02.15    13:58   00:00
A       offline 02.02.15    13:59   00:11
A       online  02.02.15    14:11   03:52
A       offline 02.02.15    18:03   21:03
A       online  03.02.15    15:06   01:41
A       pause   03.02.15    16:48   02:12
A       offline 03.02.15    19:00   17:57

这是第一张。它基本上是一个可用性表。从何时到代理在线,离线或暂停时。可用信息是不同状态之间的日期,时间和持续时间。

我用过:

=E4-E3+(E3>E4) 

计算持续时间。

然后,我使用具有多个条件的数组公式来查找Gmt时间。

I3=01.02.15
J3=online

作为我对测试的参考。

=INDEX($D:$D,MATCH(I3&J3,$C:$C&$B:$B,0))

这给了" 07:03"

我知道,从在线它可以转换到离线或暂停我可以使用下面的单元格来停止在线时间。我在那里用过这个:

=INDEX($D:$D,MATCH(I3&J3,$C:$C&$B:$B,0)+1)

这给了" 07:06"

我希望根据这些数组公式的组合在单元格中输入值。

      A           B       C       D       E       F       G       H       I       
    Online     Offine   Pause
     Date      Hours  Minutes  07:00   07:01   07:02   07:03   07:04   07:05   
    01.02.15    0,0      3       OFF     OFF      OFF     ON      ON     ON
    02.02.15    0,0      0                                              
    03.02.15    0,0      0                                              
    04.02.15    0,0      0  

上面的表格是我的目标。仅显示01.02.15的实例。

我想基本上停止参考I3和J3并开始输入时间跟踪表。

这是我跟踪座席在线离线或暂停的时间。从D2开始,时间延长24小时。我想用ON =在线,OFF =离线和P =暂停来填写D2。

以下所有公式使用Cmd + Return

输入MAC

在线:

=IF(AND(D2>=INDEX($D:$D,MATCH(A3&A1,$C:$C&$B:$B,0)),D2<INDEX($E:$E,MATCH(A3&A1,$D:$D&$C:$C,0)+1))),"ON","")

离线:

=IF(AND(D2>=(INDEX($D:$D,MATCH(A3&B1,$C:$C&$B:$B,0)),D2<(INDEX($E:$E,MATCH(A3&B1,$D:$D&$C:$C,0)+1)))),"OFF","")

暂停:

=IF(AND(D2>=(INDEX($D:$D,MATCH(A3&C1,$C:$C&$B:$B,0)),D2<(INDEX($E:$E,MATCH(A3&C1,$D:$D&$C:$C,0)+1)))),"P","")

这些公式可以单独使用。问题是我可以让代理在同一天多次进入各种状态(在线,离线和暂停)。我希望使用条件格式并将三个规则添加到应用的单元格然后如果实例匹配所有条件,则相应地填充单元格(ON,OFF,P)但同时不仅仅使用第一个实例它找到了匹配标准,但每次条件都满足时。

我试图绝望地做到这一点:

它会在每个日期找到第一个在线实例,但不会检查整个日期列。公式很重。拿我的电脑(16gb ram)很长时间来计算。

=IF(AND(D2>=INDEX($D:$D,MATCH(A3&A1,$C:$C&$B:$B,0)),D2<INDEX($E:$E,MATCH(A3&A1,$D:$D&$C:$C,0)+1))),"ON",IF(AND(D2>=(INDEX($D:$D,MATCH(A3&B1,$C:$C&$B:$B,0)),D2<(INDEX($E:$E,MATCH(A3&B1,$D:$D&$C:$C,0)+1)))),"OFF",IF(AND(D2>=(INDEX($D:$D,MATCH(A3&C1,$C:$C&$B:$B,0)),D2<(INDEX($E:$E,MATCH(A3&C1,$D:$D&$C:$C,0)+1)))),"P","ERR"))

它不起作用。

有多个匹配实例,因为:

    A       online  02.02.15    12:08   00:39
    A       pause   02.02.15    12:47   00:46
    A       online  02.02.15    13:34   00:24
    A       online  02.02.15    13:58   00:00
    A       offline 02.02.15    13:59   00:11
    A       online  02.02.15    14:11   03:52
    A       offline 02.02.15    18:03   21:03

在同一天,代理人多次处于各州。

老实说,我不需要离线部分。如果我能得到两个条件。一旦填写ON,一次填写P即可。

添加一些上下文。这是在线聊天服务代理的时间跟踪文件。这将用于在线监控代理。例如,他们有8小时轮班(480分钟)他们可以暂停1小时(60分钟)午餐,但仍然需要在线420分钟。我需要按分钟执行此操作的原因是因为时间跟踪将用于计算和预测许多不同的度量,例如聊天密度,即他们在同一时间内有多少聊天等等。

0 个答案:

没有答案