我有一个包含列的表,每个列都包含客户联系信息。我还有一个公式,可以使用多个条件查找电话号码:customer ID
,type
(移动设备,家庭等)和primary
Y / N.问题是这些信息可能会发生多次但具有不同的日期,在这种情况下需要选择最新的事件。目前的CSE公式为:
=INDEX($C$6:$BZ$18;10;MATCH(<client_ID>;IF(($C$8:$BZ$8=<client_ID>)*($C$17:$BZ$17="home")*($C$18:$BZ$18="Y");$C$8:$BZ$8);0))
其中
$ C $ 6:$ BZ $ 18包含所有数据
$ C $ 8:$ BZ $ 8包含所有客户ID
$ C $ 17:$ BZ $ 17包含电话号码类型
$ C $ 18:$ BZ $ 18包含该数字是否是该类型的主要数字
$ C $ 8:$ BZ $ 8包含输入数字的日期
数据如下所示:
B C D
---------------------------------------------------------------------
8 CLIENTID |Client1 |Client1 |
9 other | | |
10 other | | |
11 other | | |
12 other | | |
13 other | | |
14 other | | |
15 PHONE NUMBER |9876543210 |1234567890 |
16 DATE |2015-04-15 |2015-04-16 |
17 TYPE |Home |Home |
18 Primary |Y |Y |
以上公式选择电话号码9876543210
,但需要选择1234567890
,因为这是最新条目。
关于如何从这里开始的任何想法?
答案 0 :(得分:0)
日期的基础值是数字,因此我们可以通过使用MATCH function搜索不可能的高数字来查找连续右侧最远的日期,而无需查找完全匹配。
F6中的数组公式是
=INDEX($B$8:$BZ$18, MATCH(F$5, $B$8:$B$18, 0), MATCH(1E+99, IF($B$8:$BZ$8=$C6, IF($B$17:$BZ$17=$D6, IF($B$18:$BZ$18=$E6, $B$16:$BZ$16)))))
数组公式需要使用 Ctrl + Shift + Enter↵进行最终确定。
如果您的日期按升序排列(从左到右),则必须寻找完全匹配。三个标准伪MAXIF公式可以将其返回到修改的原始公式中以查找完全匹配。如果重复最大日期,则返回第一个日期。
=INDEX($C$8:$BZ$18, MATCH(F$5, $B$8:$B$18, 0), MATCH(MAX(INDEX($C$16:$BZ$16*($C$8:$BZ$8=$C6)*($C$17:$BZ$17=$D6)*($C$18:$BZ$18=$E6), , )), IF($C$8:$BZ$8=$C6, IF($C$17:$BZ$17=$D6, IF($C$18:$BZ$18=$E6, $C$16:$BZ$16))), 0))
为了提供一些没有错误的数学,我将计算范围转移到C:BZ。数组公式仍然需要使用 Ctrl + Shift + Enter↵进行最终确定。
通过适当地锁定行,列或两个单元格地址,我们可以使用列标题来识别与B行不同的类别,就像我使用DATA LINE一样。公式可以简单地填写。