具有多个条件和重复值的索引匹配功能

时间:2019-01-22 10:04:01

标签: arrays excel indexing excel-formula match

我正在尝试使用索引和匹配功能解决问题(使用此功能相对较新) 我有一个具有多个条件的数据库,并且也有重复的值。我有3个索引和匹配条件 营业员姓名(在该字段中重复),月份和值大于0。我必须根据营业员姓名,月份和值选择商店名称。

Outlet Name       salesman Name     Month       Value
Outlet ABC           Tom             Jan         1
Outlet BCD           Tom             jan         2
Outlet XYZ           Marc            Feb         1
Outlet UTR           Tom             Mar         0

如何使用索引匹配功能来选择业务员“ Tom”月份“ Jan”和value > 0

注意:月,销售人员在“输入销售人员姓名和月份-输入字段”的每一行中都是固定的,但是值标准固定为“> 0”

1 个答案:

答案 0 :(得分:0)

假设您只想在重复的情况下选择第一个出口...

您可以使用INDEX / MATCH / INDEX根据多个条件进行选择:

=INDEX($A$2:$A$5,MATCH(1,INDEX(($B$2:$B$5=$F2)*($C$2:$C$5=$G2)*($D$2:$D$5>0),0),0))

enter image description here

这与普通的INDEX / MATCH基本相同,但是它使用第二个INDEX来查找所有所需条件都为真的索引。

如果要在重复的情况下同时返回两个出口,我建议添加一个辅助列(“出口ID”)并使用MINIFS公式选择每个出口。让我知道您是否需要澄清此建议。

编辑:基于更多评论的更新

如果我理解正确,我认为您想要一个可以输入推销员和月份的表,它会吐出一个值> 0的“ Outlets”列表。

基于此,我认为您最好的选择是在数据列表中添加一个帮助器列。该帮助列为每个不同的插座赋予唯一的ID:

enter image description here

=IF(
    MINIFS($A$2:$A2,$B$2:$B2, $B3)=0,
    MAX($A$2:$A2)+1,
    MINIFS($A$2:$A2,$B$2:$B2,$B3)
)

此公式将检查是否已将ID分配给当前插座。如果有,它将使用那个。如果没有,它将检查到目前为止使用的最大ID,然后将其加1。

现在,我们可以使用这些ID生成与特定Salesman / Month / Value相关的ID的动态列表:

enter image description here

这里的主要公式是:

MINIFS($A$3:$A$7,$C$3:$C$7,$G$3,$D$3:$D$7,$H$3,$E$3:$E$7,">"&0,$A$3:$A$7,">"&MAX($G$6:$G6))

剩下的只是删除当列表中没有更多ID时返回的零。

MINIFS公式选择最低的ID,其中推销员是我们想要的ID,月份是我们想要的ID,值> 0,且ID大于列表中已经出现的ID。

有了ID列表后,使用INDEX / MATCH检索网点的名称很简单。然后,我们可以根据需要完全隐藏ID。

enter image description here

=IFNA(INDEX($B$3:$B$7,MATCH($G7,$A$3:$A$7,0)),"")

IFNA只是为了防止在空行上显示错误。如果愿意,可以改成这样:

=IF($G7="","",INDEX($B$3:$B$7,MATCH($G7,$A$3:$A$7,0)))

如果您需要我进一步扩展,请告诉我。