【发布时间】:2019-04-24 05:35:56
【问题描述】:
我的工作表中有这个设置:
A B C D E F
1 11-apr 1pm 2pm START END TOTAL
2 2pm 3pm 11-apr 14-apr 8,50 h
3 6pm 7pm 15-apr 25-apr ....
4 7pm 8pm
5 14-apr 10am 11am
6 12am 12:30am
7 2pm 3pm
8 3pm 5pm
9 15-apr 1pm 3pm
10 6pm 7pm
...
我需要做以下事情:
以 D2 和 E2 为起点,计算 4 月 11 日至 4 月 14 日之间每天花费的小时数,并将总数写入 F2。 我无法修改我的工作表,并且我不想为引用值创建隐藏单元格,因为我不想弄乱我的 Excel 表。
我正在寻找的是,因为我有一些编程技能,所以在 A:A 单元格之间执行一个 for 循环,并从“11-apr”(在本例中为 A1)所在的行开始,一直到我找到了“14-apr”并在第二天单元格之前停止(所以在 A8 处)。我也更喜欢不制作宏,因为它需要在 D 和 E 列方面是动态的。 A中的日期是随机的,所以没有办法提供下一天的到来。
我问你这是否可以在单元格 F2 中的一个公式中实现。
我所做的是寻找参考。 “11-apr”和“14-apr”的行,然后在数组公式中找到哪些单元格不为空(如 INT(A:A<>"") )并使用返回的数组我想从“11-apr”行直到next-non-empty-cell-after-"14-apr"-row 减 1(直到 "15-apr" row - 1 ),即数组中的下一个非 0(非 FALSE)值 AFTER 行 "14-apr" " 减 1。我将很多公式与 MATCH、INDEX、LARGE 结合起来获取第 n 个元素但没有用。
希望我已经足够清楚了,在此先感谢!
附:我正在使用 Excel for Mac,以防万一知道有用!
【问题讨论】:
-
与其告诉我们您尝试了什么,强迫我们尝试重构您的公式,不如向我们展示您尝试了什么。也就是说,请edit your question给我们你使用的公式
-
你愿意使用自定义的 vba 函数吗?
-
时间
1pm是字符串还是以这种方式格式化的时间? -
不用担心格式,我对日期列没问题。我描述了我尝试过的东西,没有有效的解决方案,也没有有效的尝试,我不能这样做,这就是我在这里问的原因。我在 Excel for Mac 上,我不太了解它,所以我不知道 vba 函数是否适合我……如果可能的话,我更喜欢公式
-
您可以在一个公式中完成此操作,但这会非常复杂。我会写 vba
标签: excel excel-formula