使用多个条件查找值

时间:2015-04-16 10:50:16

标签: excel excel-formula

我有一个包含列的表,每个列都包含客户联系信息。我还有一个公式,可以使用多个条件查找电话号码:customer IDtype(移动设备,家庭等)和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,因为这是最新条目。

关于如何从这里开始的任何想法?

1 个答案:

答案 0 :(得分:0)

日期的基础值是数字,因此我们可以通过使用MATCH function搜索不可能的高数字来查找连续右侧最远的日期,而无需查找完全匹配。

Last number in row

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一样。公式可以简单地填写。