【问题标题】:Excel Index to check Start Date-End Date and all dates in betweenExcel 索引来检查开始日期和结束日期之间的所有日期
【发布时间】:2020-05-05 00:50:54
【问题描述】:

Excel2019 和 Excel 在线版

我的团队有一张已批准休假的表格,其格式如下:

Table name: leave_data
Name | start date | end date | leave type
emp1 | 4/1        |  4/3     | V

...

在一个单独的工作表上,我的日期水平跨列和一个带有员工姓名的表格,如下所示:

month: April

name | 4/1 | 4/2 | 4/3 | ... | 4/30
emp1          

我希望结果是:

name | 4/1 | 4/2 | 4/3 | ... | 4/30
emp1 |   V | V   |  V

我试过用这个公式:

=(INDEX(leave_data[[休假类型]:[休假类型]],SUMPRODUCT(--(leave_data[[姓名]:[姓名]]=emp1),--(leave_data[[开始日期]:[开始日期]]=B$2),ROW(请假数据[[请假类型]:[请假类型]])-ROW(请假数据[#Headers])))

它似乎可以工作,但是一旦 leave_data 表中有许多条目,它就会开始出现奇怪的行为。也可以使用其他解决方案,但最终我需要一个可以水平拖动的公式,它将 leave_data[leave type] 条目放在 leave_data[start date] 和 leave_data[end date] 之间的所有日期(列)中。

提前致谢。

【问题讨论】:

    标签: excel


    【解决方案1】:

    这是你想要的公式。它是为单元格 B12 设计的,可以从那里水平和垂直复制。注意这是一个错误公式,需要用Ctl+Shift+Enter确认。

    =IFERROR(INDEX(leave_data,MATCH(1,(leave_data[Name]=$A12)*(leave_data[Start Date]<=B$11)*(leave_data[End Date]>=B$11),0),4),"")
    
    [A10 =] Month:
    [B10] = 1/4/2020 with cell format `mmmm` (to display "April")
    [A11 =] Name
    [B11] =B10
    [C11] =IF(MONTH(B11+1)=MONTH($B$10),B11+1, "")
    [B11:C11] cell format = `dd/mm` to display "01/04"
    [C11] - copy across to AF
    [A12 =] First employee name: More names below in column A
    [B12 =] Above formula. Copy across down as far as you have names in column A
    [B12:B?] Copy across to AF
    

    您必须调整行,但这是我测试的设置。关键是您不能将数组公式从 B12 复制到 B12:AF12 (包括其原始单元格)。因此,您首先输入公式,使用 Ctl+Shift+Enter,然后先将单元格向下复制,然后在第三步中复制列对面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-04
      • 1970-01-01
      • 2021-09-14
      相关资源
      最近更新 更多