我有一个带有客户/合同ID的表,其中包含交易。客户拥有至少一个合同(外壳)和至少一个合同项目(如果只有外壳合同->合同项目=外壳合同)。 “空壳合同”是“付费”或“免费”。
每个客户,合同和合同项目可以出现多次。例如,客户可以取消合同项目,之后取回取消合同,或创建新的合同项目等。
如前所述,客户始终具有“空壳合同”,并且在该“空壳合同”中没有,一个或几个其他合同。
现在我的问题是如何编写一个数组公式,该公式可以为每个客户提供其外壳合同是“付款”还是“免费”的合同。
在带有伪数据的表中,shell合同是带有“ contract_id” 1的合同。工作数组公式的结果将在“ pay or free for contract_id = 1”列中。
如您所见,只有包含合同ID 1的行与相应的结果相关。其他行可以忽略。
我已经尝试了不同的数组公式,但是它不能按应有的方式工作-.-文件中的所有其他列都是完全动态的,例如列合同状态,用于检查特定客户的最后transaction_date和特定的contract_id。只是最后一个公式不起作用。
从逻辑的角度来看,该公式的工作方式如下:
= if customer_id="xyz",
for each contract_id=1,
check if contract status="active" or "in cancellation",
"pay",
otherwise "free".
pay of free for contract_id=1 customer_id contract_id contract status
pay xyz 1 active
pay xyz 2 cancelled
pay xyz 1 active
pay xyz 3 in cancellation