显示来自特定日期的数据,来自大型数据集

时间:2016-07-04 12:58:55

标签: excel vba

我在工作中有一组数据,我需要根据每日价值进行分析和总结。每个日期我有48个值;每半个小时一次。

我目前已经设置了sumif和countif-system来计算平均值,但是我需要一个解决方案来显示仅一个日期的数据,因此我可以评估数据是否完整(供应商已知有传感器中缺少数据)

举个例子,这就是我的数据。这次我只有6000行。它们不时出现在块中,所以我永远不知道我会得到多大的数据集。最后一个是约2200行

11-03-2016 11:30:00:000     13,3    51,6    7,85
11-03-2016 12:00:00:000     14,9    51,6    7,85
11-03-2016 12:30:00:000     13,9    51,6    7,86
11-03-2016 13:00:00:000     14,9    51,7    7,87
11-03-2016 13:30:00:000     14,7    52      7,87
11-03-2016 14:00:00:000     14,7    52      7,88
11-03-2016 14:30:00:000     0,1     52,1    7,89
11-03-2016 15:00:00:000     0,1     52,2    7,89
11-03-2016 15:30:00:000     14,8    52,1    7,9
11-03-2016 16:00:00:000     14,8    52      7,9
11-03-2016 16:30:00:000     13,3    52      7,91
11-03-2016 17:00:00:000     12,8    51,9    7,92
11-03-2016 17:30:00:000     7,9     52      7,92

日期格式为“一般”,我似乎无法将其更改为任何类型的日期或时间格式。
现在我在日期左边有一列读

=INT(LEFT("Range",10))

从带有日期的文本格式单元格中提取日期。 理想情况下,我想要一个显示小时数的单元格,但不能完全确定那个小时。

我想要的是VBA或其他代码,我有一个单元格,我输入要分析的日期值,然后运行宏,并且只分别显示那48个数据点。
我知道可以将其设置为表格并过滤数据,但这非常耗时。

如果可以在不使用宏的情况下完成(即使用类似vlookup的东西),我会接受建议,但我自己也想不出任何解决方案。

1 个答案:

答案 0 :(得分:0)

使用以下公式提取时间:

=MID(A1,12,5)

这将导致" hh:mm"。将5替换为8以提取秒数。

要将日期文本可靠地转换为日期格式,您可以使用以下公式:

=DATE(MID(A1,7,4),MID(A1,4,2),MID(A1,1,2))

关于一个日期的分析:假设单元格F1是您的日期输入。创建一个如下表格(假设时间列是A列)

TIME             DATETIME
00:00:00:000     =A2&" "&$F$1
00:30:00:000     =A3&" "&$F$1
...              ...

如果以正确的格式在F1中输入日期作为文本,则DateTime列将与数据集中的日期完全相同,您可以使用简单的Sumif()来完成任务。

编辑:您还可以查看新推出的PowerQuery Addin。它本身随Excel 2013和2016一起提供,您可以免费下载Excel 2010.它是从非结构化数据集中重复提取干净值的绝佳方式。见这里:Introduction to PowerQuery

编辑2 :如果您真的只是想在数据集中找到差距,请尝试以下方法:选择一列并应用以下自定义日期格式:

dd-mm-yyyy hh:mm:ss":000"

然后在第一行输入值 01/01/2016 00:00:00 ,在第二行输入 01/01/2016 00:30:00 。尽量拉下来。在其旁边的列中执行Vlookup并过滤#N / A错误的结果。现在,您的数据存在差距。 (也许你需要先将lookup-column转换为文本格式)