我有两个工作表
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,但我不知道如何使用它们)来查找客户是否为该特定月份付款。
答案 0 :(得分:2)
考虑使用带有"月"的数据透视表。在列标签框中,"名称"在行标签框中,"付费金额计数"在值框中。
在表2中选择整个表格。
选择插入 - >数据透视表(功能区左侧)
如上所述拖放类别。
这将为您提供客户已支付的每月/名称组合1,否则为空白。现在选择数据透视表的内部,右键单击和"更改格式"选择自定义格式,然后向下滚动到名为"TRUE";"TRUE";"FALSE"
的类型并应用。
右键点击" Grand Total"和#34;删除Grand Total"如果你愿意的话。
数据透视表一开始很吓人,但非常强大,值得学习。
(我在制作下表之前添加了另一个人)
答案 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 请注意,您需要根据需要调整范围。