使用多个标准寻找价值
Find value using multiple criteria
我有一个 table 列,每个列都包含客户联系信息。我还有一个公式可以使用多个条件查找 phone 号码:customer ID
、type
(手机、家庭等)和 primary
Y/N。问题是此信息可能会出现多次,但日期不同,在这种情况下,最新出现的信息需要 selected。当前的 CSE 公式为:
=INDEX($C:$BZ;10;MATCH(<client_ID>;IF(($C:$BZ=<client_ID>)*($C:$BZ="home")*($C:$BZ="Y");$C:$BZ);0))
哪里
$C$6:$BZ$18 包含所有数据
$C$8:$BZ$8 包含所有客户端 ID
$C$17:$BZ$17 包含 phone 个数字
的类型
$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 |
上面的公式selects phone数9876543210
但是需要select1234567890
因为那是最新的条目。
关于如何从这里开始的任何想法?
日期的基础值是数字,因此我们可以通过使用 MATCH function 搜索不可能大的数字而不是寻找精确匹配来查找一行中最远的日期。
F6中的数组公式为,
=INDEX($B:$BZ, MATCH(F, $B:$B, 0), MATCH(1E+99, IF($B:$BZ=$C6, IF($B:$BZ=$D6, IF($B:$BZ=$E6, $B:$BZ)))))
数组公式需要用Ctrl+Shift+Enter↵.
如果您的日期按升序排列 (left-to-right),则必须寻找完全匹配的日期。一个三条件 pseudo-MAXIF 的公式可以 return 即修改成原来的公式来寻找精确匹配。如果最大日期重复,第一个是 returned。
=INDEX($C:$BZ, MATCH(F, $B:$B, 0), MATCH(MAX(INDEX($C:$BZ*($C:$BZ=$C6)*($C:$BZ=$D6)*($C:$BZ=$E6), , )), IF($C:$BZ=$C6, IF($C:$BZ=$D6, IF($C:$BZ=$E6, $C:$BZ))), 0))
为了提供一些没有错误的数学,我已将计算范围移至 C:BZ。数组公式还是需要用Ctrl+Shift+Enter↵.
敲定
通过适当地锁定行、列或同时锁定单元格地址,我们可以使用列 header 来识别与列 B 不同的类别,就像我在数据行中所做的那样。公式可以简单填对
我有一个 table 列,每个列都包含客户联系信息。我还有一个公式可以使用多个条件查找 phone 号码:customer ID
、type
(手机、家庭等)和 primary
Y/N。问题是此信息可能会出现多次,但日期不同,在这种情况下,最新出现的信息需要 selected。当前的 CSE 公式为:
=INDEX($C:$BZ;10;MATCH(<client_ID>;IF(($C:$BZ=<client_ID>)*($C:$BZ="home")*($C:$BZ="Y");$C:$BZ);0))
哪里
$C$6:$BZ$18 包含所有数据
$C$8:$BZ$8 包含所有客户端 ID
$C$17:$BZ$17 包含 phone 个数字
的类型
$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 |
上面的公式selects phone数9876543210
但是需要select1234567890
因为那是最新的条目。
关于如何从这里开始的任何想法?
日期的基础值是数字,因此我们可以通过使用 MATCH function 搜索不可能大的数字而不是寻找精确匹配来查找一行中最远的日期。
F6中的数组公式为,
=INDEX($B:$BZ, MATCH(F, $B:$B, 0), MATCH(1E+99, IF($B:$BZ=$C6, IF($B:$BZ=$D6, IF($B:$BZ=$E6, $B:$BZ)))))
数组公式需要用Ctrl+Shift+Enter↵.
如果您的日期按升序排列 (left-to-right),则必须寻找完全匹配的日期。一个三条件 pseudo-MAXIF 的公式可以 return 即修改成原来的公式来寻找精确匹配。如果最大日期重复,第一个是 returned。
=INDEX($C:$BZ, MATCH(F, $B:$B, 0), MATCH(MAX(INDEX($C:$BZ*($C:$BZ=$C6)*($C:$BZ=$D6)*($C:$BZ=$E6), , )), IF($C:$BZ=$C6, IF($C:$BZ=$D6, IF($C:$BZ=$E6, $C:$BZ))), 0))
为了提供一些没有错误的数学,我已将计算范围移至 C:BZ。数组公式还是需要用Ctrl+Shift+Enter↵.
敲定通过适当地锁定行、列或同时锁定单元格地址,我们可以使用列 header 来识别与列 B 不同的类别,就像我在数据行中所做的那样。公式可以简单填对