我有一个关于在excel中使用公式的问题。
我有一本有两张桌子的工作簿。表1载列不同资产的计划运输,表2载列同一运输的实际运抵人数。
表1如下所示:
表2如下所示:
我喜欢做的是用表2中的数据填充表1中的字段“实际到达”。要做到这一点,我必须在表2中查找与asset#匹配的事件,该站点I字段" to ",它大于字段“计划离开”的时间。
结果如下:
表1包含大约1500行,表2包含大约5000行。
对于Excel中的公式,这是可能的吗?还是我必须使用VBA或Access?
发布于 2014-11-11 11:11:38
假设表1名为Sheet1,表2命名为Sheet2,且数据以Sheet1!A1:Fn和Sheet2!A1:Cn表示,那么可以使用Sheet1!F2中的以下数组公式来实现这一点,然后进行填充:
{=INDEX(Sheet2!$C$1:$C$10000,MIN(IF(($A2=Sheet2!$A$1:$A$10000)*($C2=Sheet2!$B$1:$B$10000)*($D2<Sheet2!$C$1:$C$10000),ROW(Sheet2!$C$1:$C$10000),10000+1)))}要输入数组公式,必须输入不带花括号的公式,然后按CTRL+Shift+Enter而不是只输入Enter。然后,应自动添加花括号。
因为整个列的数组公式都比较慢,所以我将其限制为10000行。如果这是小的,你必须增加公式内的所有10000。
Sheet1:

Sheet2:

如果出发时间没有可能到达,则该公式返回#REF。为了避免这种情况,使用IFERROR的公式如下:
{=IFERROR(INDEX(Sheet2!$C$1:$C$10000,MIN(IF((A2=Sheet2!$A$1:$A$10000)*(C2=Sheet2!$B$1:$B$10000)*(D2<Sheet2!$C$1:$C$10000),ROW(Sheet2!$C$1:$C$10000),10000+1))),"no arrival in Sheet2 until now")}https://stackoverflow.com/questions/26861370
复制相似问题