【发布时间】:2017-10-18 21:56:56
【问题描述】:
挑战是:如果假日日期 ($F) 介于(A2:B2、A3:B3 等)之间,我想将假日名称 ($G) 复制到相关的原因列 $D 和计数$H 到关联的 $C 列)
示例:假期 '17 在 10/15/17 持续 5 天,因为它落在 10/3/17 和 10/16/17 数据将被复制到 $C 和 $D 列...如何我可以这样做吗?
【问题讨论】:
标签: excel date excel-formula
挑战是:如果假日日期 ($F) 介于(A2:B2、A3:B3 等)之间,我想将假日名称 ($G) 复制到相关的原因列 $D 和计数$H 到关联的 $C 列)
示例:假期 '17 在 10/15/17 持续 5 天,因为它落在 10/3/17 和 10/16/17 数据将被复制到 $C 和 $D 列...如何我可以这样做吗?
【问题讨论】:
标签: excel date excel-formula
你可以使用这两个数组公式(同时点击Ctrl + Shift + Enter):
来自cell C2:
=IFERROR(INDEX($H$2:$H$11,SMALL(IF((A2<=$F$2:$F$11)*(B2>=$F$2:$F$11)>0,ROW($F$2:$F$11)-ROW($F$1),""),1)),0)
来自cell D2:
=IFERROR(INDEX($G$2:$G$11,SMALL(IF((A2<=$F$2:$F$11)*(B2>=$F$2:$F$11)>0,ROW($F$2:$F$11)-ROW($F$1),""),1)),"")
这两个公式的作用是找到第一个匹配项并返回值。
另外,我注意到您的C9 and D12 的结果与我的不同。不知道出了什么问题,但我猜这是由于您在此处发布的示例数据。不管怎样,试着让我知道。
【讨论】:
Ctrl + Shift + Enter),您应该会看到大括号将包含在公式中(参见我的图片)。此外,这些范围需要根据您的数据输入进行调整。我不建议使用整个列,因为它会减慢速度,但如果您没有太多数据,您可以这样做。
把这个放在C2中,复制到D2,然后复制下来:
=IFERROR(INDEX(H$2:H$4, POWER(SQRT(MAX(IF($F$2:$F$4-$A2>=0, IF($F$2:$F$4-$B2<=0, ROW($F$2:$F$4)-ROW($F$1))))-1), 2)+1), "")
【讨论】: