1

例如:

在我的第一个选项卡Last visit上,我有列Customer Name、、Customer #Scheduled date

在我的第二个选项卡上,All visits我有Customer NameCustomer #Visit Dates。现在,此选项卡显示所有访问日期(甚至是最后一个打开的日期Last visit),而第一个选项卡仅显示他们的上次访问日期和下一个预定日期。

目标:在我的第一个选项卡上Last Visit,我需要一些逻辑来比较计划的访问日期与所有访问日期......对于那个特定的客户 ID。因此,在Scheduled date我想要一个新列Last visit date来比较该特定客户的最后一次访问日期之前的访问之后的下一列。所以有些客户有多次访问,我需要每个客户的每个单元格(这家商店超过 300 个)读取他们访问的所有时间,并且只提取最大值(最近但不是他们最后一次访问的时间)日期第二个标签All visits

我想要他们所有访问的第二大日期的原因是因为在all visits选项卡中,甚至他们的预定日期也输入在那里。

示例:选项卡 1:

Billy Joe    12345     1/02/15       <-- Scheduled visit    new column    --> visit before last visit

Custmer2      Id2       Date

等表 2:

  Billy Joe    12345     03/15/14

  Billy Joe    12345     04/15/14

  Billy Joe    12345     1/02/15

所以我想要日期4/15/14而不是其他两个..

我有一个适用于大多数客户的部分方程。方程的问题是:

如果客户每月访问一次以上,它仍然会拉出他/她所有访问的第二高日期。我如何检查以确保最后一次访问之前的访问必须少于他们的最后一次访问

这是我的等式:

{=LARGE(IF(('所有访问'!B:B='上次访问'!B2),('所有访问'!C:C)),2)}

B2对应于客户 ID(它与另一页上的他们的 ID 匹配,所以当我将其向下拖动时,它只会继续匹配 ID)...

一个问题的例子:

6/3/2015
6/18/2015
6/26/2015
6/9/2015

请注意每月有多次访问,因此我的等式将 6/18/2015 放在所有位置,即使他们该月的预定访问次数少于他们的last visit.

4

1 回答 1

1

如果我理解正确,我们需要做的就是在你的LARGE函数中添加一个额外的数组条件。

根据客户 ID,您已经获得了第二大。但是我们想要基于客户 ID预定日期的第二大:

=LARGE(('All visits'!B:B='Last visit'!B1)*('All visits'!C:C>0)*(IF('All visits'!C:C<='Last visit'!C1,'All visits'!C:C)),2)
         ^^^^^^^^^ Customer ID  ^^^^^^^^    ^^ignore blanks^^    ^^^^ Only grab the dates that are <= last visit ^^^^   ^ 2nd largest

编辑以在客户只有 1 个访问日期时添加额外检查:

如果我们希望它显示#N/A少于两个日期,我们必须使用 aSUMPRODUCT来获取条目总数:

SUMPRODUCT(('All visits'!B:B='Last visit'!B1)*('All visits'!C:C>0)*('All visits'!C:C<='Last visit'!C1))

然后,我们可以将其添加到IF语句中以返回案例或案例NA()<2原始公式>=2

=IF(SUMPRODUCT(('All visits'!B:B='Last visit'!B1)*('All visits'!C:C>0)*('All visits'!C:C<='Last visit'!C1))<2,NA(),LARGE(('All visits'!B:B='Last visit'!B1)*('All visits'!C:C>0)*(IF('All visits'!C:C<='Last visit'!C1,'All visits'!C:C)),2))

您可以将其更改NA()为适合您要求的任何内容

于 2015-06-19T14:56:23.167 回答