首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多域公式excel

多域公式excel
EN

Stack Overflow用户
提问于 2014-11-11 09:19:15
回答 1查看 60关注 0票数 0

我有一个关于在excel中使用公式的问题。

我有一本有两张桌子的工作簿。表1载列不同资产的计划运输,表2载列同一运输的实际运抵人数。

表1如下所示:

  • asset#|from|to /计划出发计划到达计划到达实际到达
  • 上午10 :00-2014年11月11日10:00
  • 20 /abc/ccc/11.11/2014 09:00 /11.11/2014 11:00
  • 10 -bbb-ccc-11.11-2014 09:00 -11.11-2014 11:00
  • 10 /ccc/abc/11.11/2014 09:00 /11.11/2014 12:00

表2如下所示:

  • asset#|to /实际到达
  • 10 /bbb-2014年11月11日09:56
  • 10 /ccc/11.11 2014 10:55
  • 20 /ccc/11.11 2014 11:05
  • 2014年11月11日12:01

我喜欢做的是用表2中的数据填充表1中的字段“实际到达”。要做到这一点,我必须在表2中查找与asset#匹配的事件,该站点I字段" to ",它大于字段“计划离开”的时间。

结果如下:

  • asset#|from|to /计划出发-计划到达-实际抵达-
    • 10 -abc-bbb-11.11-2014 09:00 -11.11-2014 10:00-11.2014 09:56
    • 20 /abc/ccc/11.11.2014 09:00 +11.11/2014 11:00 11:2014 11:05
    • 10 -bbb ccc-11.11.2014 09:00 -11.11-2014 11:00 11:2014 11:2014 10:55
    • 10 -ccc-abc-11.11.2014 09:00 -11.11.2014 12:00-11.11-2014 12:01

表1包含大约1500行,表2包含大约5000行。

对于Excel中的公式,这是可能的吗?还是我必须使用VBA或Access?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-11 11:11:38

假设表1名为Sheet1,表2命名为Sheet2,且数据以Sheet1!A1:Fn和Sheet2!A1:Cn表示,那么可以使用Sheet1!F2中的以下数组公式来实现这一点,然后进行填充:

代码语言:javascript
运行
复制
{=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的公式如下:

代码语言:javascript
运行
复制
{=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")}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26861370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档