【发布时间】:2021-05-22 05:12:34
【问题描述】:
在单元格 A1 中,我有一个间隔值,它是一个整数,可以是 1、5 或 15,表示 1 分钟、5 分钟或 15 分钟
在“B1:B12”范围内,我有样本数据(会更多)
12:03
12:03
12:06
12:06
12:09
12:11
12:14
12:15
12:15
12:16
12:31
12:32
现在在 C 列中,我需要根据单元格 A1 中可用的数字提取时隙。
如果单元格 A1 有 15,那么列 C 将包含以下内容
12:15
12:30
因为列中的前 15 分钟从 12:15 开始,然后将其递增 15 分钟,直到最后一个可用数据落在该 15 分钟范围内。
如果单元格 A1 有 5,那么列 C 将包含以下内容
12:05
12:10
12:15
12:30
因为前 5 分钟从 12:05 开始,然后将其递增 5 分钟,直到最后一个可用数据落在该 15 分钟范围内。
如果单元格 A1 有 1,则提取 除重复项之外的所有内容。
我希望我已经正确地解释了这个场景。我想不出在 excel vba 中执行此操作的逻辑,需要有关如何开始的帮助,以便我可以尝试应用该逻辑并提出代码。
谢谢
编辑
我正在添加所需结果的图片。 如果 A1 包含 1,则复制 C 列中的所有时间戳,不包含重复项
如果 A1 包含 5 则仅显示 5 次 5 分钟间隔
如果 A1 包含 15 则仅显示 3 次 15 分钟间隔
【问题讨论】:
-
必须是VBA吗?我认为这是一个相当简单的公式。
-
恐怕这个问题并没有你想的那么清楚……你说的是“1、5或15”。 '12:03', '12:06' 之类的 A1 值,不包括在第一个提到的范围内,它们会被忽略吗?那么,代码是否应该在 B:B 中的所有值之间进行迭代,以及如何在 C:C 中返回?你到底是怎么给我们看的?我的意思是一个在另一个之上的值? B:B 范围有什么格式? C:C 的格式是什么? “单元格 A1 有 1 然后提取除重复项之外的所有内容”是什么意思?这个提取是什么意思?你想引用 B 吗?
-
我建议您编辑您的问题并放置两张图片。一个是现有情况,第二个是处理后的情况......
-
@FaneDuru 不,它们不应被忽略,是的代码在 B 中的所有值之间迭代并在 C 中返回。范围没有任何公式,C 中的格式将是时间格式。简而言之,我希望将所有时间戳分组为 1 分钟、5 分钟和 15 分钟。我将使用所需输出的图片编辑我的问题
-
现在我正在查看您的图片,并且可以得出结论,这个世界上的任何人都无法理解您在编辑之前表达的问题。这是一个如此简单的任务,但没有清楚地描述......
标签: excel vba unique excel-2007 array-formulas