【问题标题】:Array Arithmetic, Excel, Non-VBA数组算术、Excel、非 VBA
【发布时间】:2017-04-13 20:33:08
【问题描述】:

我不是在寻找 VBA 解决方案。 目标是找出约翰在 2015 年 7 月 1 日开始的 12 个月内工作了多少小时。 我有两个工作表。工作表一如下所示:

Name   |     Date Start     | Total Hours
John   |     7/1/2015       |    Formula goes here

工作表二

   Date    |     John           |    Jane         | Joe
  7/1/2015 |      3             |    2            | 2.5
  7/2/2015 |      3             |    2.5          |  0
  rest of attendance data

日期可以在电子表格允许的范围内下降。我要做的是将函数保留在工作表公式中。我现在的公式是:

=SUMIFS(Worksheet2!B:B, Worksheet2!$A:$A, ">="&Worksheet1!$B2, Worksheet2!$A:$A, "<="&EDATE(Worksheet1!$B2, 12))

如果我通过 VBA 做到这一点,我可以这样做:

Range("B"&2 & ":" & "B" & 1058476)

但我正在寻找某种方法来查找该人的哪一列,谁的名字在该行的表 1 上,他们的名字出现在表 2 的哪一列;然后,总结工作表 2 中该列中 12 个月时间跨度之间的所有值,并将该数字放入工作表 1 单元格 C2 中。我不想使用 Worksheet2!B:B。

【问题讨论】:

  • 没关系!我已经回答了这个问题 - 类似于:=SUMPRODUCT(OFFSET(Attendance!$A$1, 0, 1, 368))

标签: excel excel-formula


【解决方案1】:

尝试使用偏移量。

=SUMIFS(OFFSET(Worksheet2!A:A,0,MATCH(Worksheet1!$B1,Worksheet2!$A2:$A100,0)), Worksheet2!$A:$A, ">="&Worksheet1!$B2, Worksheet2!$A:$A, "<="&EDATE(Worksheet1!$B2, 12))

应该获取正确的列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-14
    • 2011-11-04
    • 1970-01-01
    • 2010-10-23
    • 2017-10-27
    • 1970-01-01
    • 2019-03-12
    • 2013-03-26
    相关资源
    最近更新 更多