【问题标题】:finding a date range in an array - Excel在数组中查找日期范围 - Excel
【发布时间】: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


    【解决方案1】:

    你可以使用这两个数组公式(同时点击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 的结果与我的不同。不知道出了什么问题,但我猜这是由于您在此处发布的示例数据。不管怎样,试着让我知道。

    【讨论】:

    • 太棒了!!!非常感谢你的帮助!!所以有几件事:我注意到和你一样的事情,但是 $C 正在返回一个计数,但它需要返回在 $H 中找到的值(如果标签和我的解释不清楚,我深表歉意)我得到结果的唯一单元格是C8 & C9...所有其他都是空的...--查看数据,我可以合并彼此接近的日期 - 12/31/2017 -> 1 + 1/1/2018 -> 1 到成为一个 12/31/2017 -> 2
    • 我不确定,但如果您仅将这部分 (A2=$F$2:$F$11) 添加到单独的单元格,Excel将此视为 1:1 的关系。 A2 -> F2, A3 -> F3... 因为在 A12 之后我看到了#VALUE!
    • 刚刚注意到您没有将此作为数组公式输入(完全单击Ctrl + Shift + Enter),您应该会看到大括号将包含在公式中(参见我的图片)。此外,这些范围需要根据您的数据输入进行调整。我不建议使用整个列,因为它会减慢速度,但如果您没有太多数据,您可以这样做。
    • 是的......我不明白你的意思,但我得到了它的工作!太棒了……非常感谢!! (需要在公式栏上按下 Ctrl+Shit+Enter 以使其成为一个数组....对于正在阅读本文的其他人)
    • 正确,这就是您使用数组公式的方式。如果您知道如何使用它,它是一项强大的功能。
    【解决方案2】:

    把这个放在C2中,复制到D2,然后复制下来:

    =IFERROR(INDEX(H$2:H$4, POWER(SQRT(MAX(IF($F$2:$F$4-$A2&gt;=0, IF($F$2:$F$4-$B2&lt;=0, ROW($F$2:$F$4)-ROW($F$1))))-1), 2)+1), "")

    【讨论】:

      【解决方案3】:

      $C 应该具有在 $H 中找到的值,并且 $D 应该具有在 $G​​ 中找到的值

      【讨论】:

        猜你喜欢
        • 2021-09-07
        • 2017-11-26
        • 2020-02-19
        • 1970-01-01
        • 2013-03-04
        • 1970-01-01
        • 2015-10-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多