Excel查找用户是否支付了月度帐单

时间:2015-08-07 23:39:00

标签: excel if-statement excel-formula vlookup

我有两个工作表

Worksheet1看起来像:

Customer  | June | July | August
John      |      |      |     
Jane      |      |      |     
Bob       |      |      |     
Ann       |      |      |     

Worksheet2看起来像:

Customer  | Paid Amount | Month
John      | $50         | June    
Jane      | $20         | June    
Bob       | $100        | June    
Ann       | $10         | June  

John      | $30         | July    
Jane      | $40         | July      
Ann       | $5          | July  

Bob       | $10         | August
John      | $10         | August
Jane      | $20         | August

在Worksheet1中,我需要一个公式,只需返回一个字符串,如“付费”或“未付费”,方法是从Worksheet1获取客户名称,在Worksheet2上查找该客户名称,并检查是否有付款该月的记录。根据上面的示例数据,Worksheet1中的结果应如下所示:

Customer  | June | July     | August
John      | Paid | Paid     | Paid    
Jane      | Paid | Paid     | Paid    
Bob       | Paid | Not Paid | Paid   
Ann       | Paid | Paid     | Not Paid    

我尝试了以下内容:

IF(ISNA(VLOOKUP([@Customer],table_from_Worksheet2,2,FALSE)),"No","Yes")

问题在于检查整个Worksheet2而不是按相关月份过滤。我需要以某种方式调整VLOOKUP(或使用其他方法,如INDEX和MATCH,但我不知道如何使用它们)来查找客户是否为该特定月份付款。

2 个答案:

答案 0 :(得分:2)

考虑使用带有"月"的数据透视表。在列标签框中,"名称"在行标签框中,"付费金额计数"在值框中。

在表2中选择整个表格。

选择插入 - >数据透视表(功能区左侧)

如上所述拖放类别。

这将为您提供客户已支付的每月/名称组合1,否则为空白。现在选择数据透视表的内部,右键单击和"更改格式"选择自定义格式,然后向下滚动到名为"TRUE";"TRUE";"FALSE"的类型并应用。

右键点击" Grand Total"和#34;删除Grand Total"如果你愿意的话。

数据透视表一开始很吓人,但非常强大,值得学习。

(我在制作下表之前添加了另一个人)

enter image description here

答案 1 :(得分:1)

将公式放在工作表1(John和June见面的地方)的B2中并横向和向下复制。请务必使用 CTRL + SHIFT + ENTER 输入公式:

=IFERROR(IF(INDEX(Worksheet2!$B$2:$B$12,MATCH($A2,IF(B$1=Worksheet2!$C$2:$C$12,Worksheet2!$A$2:$A$12),0)),"Paid","Not Paid"),"Not Paid")

对于您可以使用的表:

=IFERROR(IF(INDEX(Table_from_Worksheet2[Paid Amount],MATCH([@Customer],IF(B$1=Table_from_Worksheet2[Month],Table_from_Worksheet2[Customer]),0)),"Paid","Not Paid"),"Not Paid")

您还需要输入 CTRL + SHIFT + ENTER 请注意,您需要根据需要调整范围。