我有一个项目,需要创建一个自动电子表格。第一张表格用于接收人员手动输入的数据。例如,假设人员输入他在 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 范围扩大到数据范围的整个宽度。