在 Excel 2010 中显示用户输入日期的每周摘要

在 Excel 2010 中显示用户输入日期的每周摘要

我有一个项目,需要创建一个自动电子表格。第一张表格用于接收人员手动输入的数据。例如,假设人员输入他在 XX/XX/XX 日期收到的金额 X(使用文本将 Excel 中的列分隔开,然后单击制表符和空格并完成)。

       11/19/2015   11/20/2015  11/25/2015  11/30/15    1/2/2016
Apples    4             5           2           7           1
Bananas   6             4           5           7           3
Oranges   3             0           4           0           0

现在,这些都是用户输入的数据。根据用户输入的数据,我需要第二张表显示每周日期(即星期六,定义星期)以及该周收到的所有东西的总和。这是我需要 Sheet 2 从用户输入的数据中显示的内容:

        11/21/2015  11/28/2015  1/2/2016
Total      22           11         4
Apples      9            2         1
Bananas    10            5         3
Oranges     3            4         0

如果您注意到,2015 年 11 月 19 日和 2015 年 11 月 20 日都属于 2015 年 11 月 21 日那一周,因此 2015 年 11 月 21 日只显示在一个单元格中,该单元格中所有数据都汇总。用户输入的日期可以相隔很远,这就是我包含 2016 年 1 月 2 日的原因。

现在,计算总和的公式应该更简单,但我遇到的问题是只显示一次每周日期。可能发生的情况之一是用户错误地输入了两次相同的日期。我使用以下公式检查了这一点:

=IF(IFERROR(MODE.SNGL(1:1)>=1,0),"CHECK DATES",__________)

第一个每周日期单元格很简单,因为它响应用户首次输入的日期。它只是:

=IF(IFERROR(MODE.SNGL(1:1)>=1,0),"CHECK DATES",B1-weekday(B1)+7)

因此问题是下一个日期不再显示 2015 年 11 月 21 日。

更新 经过谷歌搜索后,我的问题基本上与找到比指定数字大 k 倍的数字相同。值得庆幸的是,有很多网站为我提供了有用的信息。我想出的显示第一个周日期之后的周日期的最终公式是:

=IF(IFERROR(MODE.SNGL(1:1)>=1,0),"CHECK DATES",IFERROR(LARGE(1:1,COUNTIF(1:1,">"&B17))-WEEKDAY(LARGE(1:1,COUNTIF(1:1,">"&B17)))+7,""))

此公式还允许最后一个周日期后面的单元格显示“”,如果需要,可以修改为显示 #N/A 值。现在转到正确的求和。

答案1

我将您的问题解释为“我想要从第三个单元格开始的水平数组中每第七个单元格的值。”

如果是这种情况,那么您可以在单元格 A2 中使用以下公式并填充第 2 行:

=INDEX($A1:$J1,1,7*(B1-$A1)-4)

请确保:
A:检查 Excel 是否将输入的数据识别为日期而非文本。您可能需要将输入的日期更改为本地格式(例如 dd/mm/yy)才能使其正常工作。B
:将 $A1:$J1 范围扩大到数据范围的整个宽度。

相关内容