我一直在融化我的大脑,试图找出我需要进行多项条件查找的公式。
我有两个数据集,一个是作业数据,另一个是合同数据。 作业数据包含客户名称,作业位置和作业日期。我需要找出工作是否在合同发生时签订合同,以及是否在合同数据中从第N列返回一个值。
当我尝试使用日期范围时会出现问题,因为每个客户经常会有多个合约。
例如,在我的工作数据中: -
CUSTOMER |位置|工作日期
客户A |港口A | 2014年1月1日
客户A | B口| 2014年1月2日
客户A在B港口签订的合同于2014年2月21日到期,所以我希望在合同数据中从合同数据中返回N栏中的值。 客户A在工作时没有在A港签订合同,所以我希望它返回“没有合同”。
合同数据包含的列包含客户名称,端口名称,开始和结束日期值以及我的查找类别。
我认为我需要使用索引/匹配,但我似乎无法使用我的日期范围。我可以使用其他类型的查找来实现此功能吗?
请帮助,我失去了情节!
谢谢:)
答案 0 :(得分:0)
您可以在此处使用两种方法:
在结果表和源表中都创建一个帮助列,它连接所有三个值,如下所示:=A2&B2&C2
。这样你就可以得到像'Cust APort A01 / 01/2014'这样的东西。也就是说,您将获得一个唯一值,您可以通过该值识别行。您可以根据需要添加分隔符:=A2&"|"&B2&"|"&C2
。然后,您可以按此值执行VLOOKUP
。
您可以在源表中添加一个行号(1,2,3 ...)的辅助列。然后,您可以使用=SUMIFS(<row_number_column>,<source_condition_column_1>,<condition_1>,<source_condition_column_2>,<condition_2>,...)
返回匹配所有三个条件的源表的行号。您可以使用此行号来执行INDEX
或任何需要的操作。但是要小心:检查源表中是否只有所有三列的唯一组合,否则这种方法可能会返回错误的结果。即如果在3
行和7
行中符合匹配条件,则会返回10
,这是完全错误的。