2015-07-11 76 views
0

我需要一点帮助。我正在尝试使用INDEX MATCH公式,但它没有给我想要的结果。这是我的查询。INDEX MATCH不给我想要的结果

我有2个表格。表1是汇总表,表2是一些特定客户的列表。 在我的表格表1中,有客户名称和佣金额栏。

我只是想,当有客户名称在客户栏输入这个名字也列于表2,简单地乘以10列3否则将状态0

我曾尝试是如下所示: IF(MATCH([Customer Name],Table2 [Commission],0),[Quantity] * 0.1,“0”)

它返回客户名称输入时的值,也列在表2中,但当输入的其他客户名称未列在表2中时,它不显示0.请审查并帮助我。

谢谢。

回答

0

一般你不应该使用那样的IFIF只是评估一个陈述,以确定它是否是TRUEFALSE。在这种情况下,当未找到匹配时,MATCH将返回#N/A(错误),导致表达式因为返回错误而停止评估。

有几种方法可以解决这个问题,但您可以先使用ISERROR来确定是否找到匹配项。

=IF(ISERROR(MATCH([Customer Name],Table2[Commission],0)),0,[Quantity]*0.1) 

现在您的函数将检查MATCH是否被评估为错误。如果是错误,请返回0,否则返回[Quantity]*0.1

+0

它正在工作。我只需要知道一件事。在IF声明中,我将数量* 0.10放在真实场景中,为什么将它放在虚假场景中? –

+0

@SalmanKhan:在这种情况下,我们正在检查'MATCH'是否被评估为错误。 'IF'是一个错误('TRUE'),然后返回'0',否则返回'[Quantity] * 0.1'。如果你喜欢(也就是说,如果它不是错误,返回'[Quantity] * 0.1',否则返回'0'),你可以用'NOT(ISERROR(...))'来反转逻辑。如果您逐步完成“评估公式”的步骤并查看发生了什么,这可能会更加明显。 – grovesNL

+0

非常感谢你详细解释我。非常感谢 –