我已经下载了冠状病毒covid-19时间序列数据集,并且需要将.csv文件中的列标题转换为英国日期格式。然后,我想将列标题设置为图表上的日期轴,以绘制感染率。
数据集以1/22 / 20、1 / 23/20开头,然后更改为02/01 / 2020、02 / 02/2020,然后更改为2/13 / 20、2 / 14/20和然后是03/01 / 2020、03 / 02/2020。这些都是M / D / Y。
我写了一个Excel VBA宏,它检查M值是1位还是2位,如果一致性为1,则添加零。由于文本到列的转换仍然无法按预期进行,因此我添加了将年份从20修正到2020的规定,以提供一致的输入数据集。
我使用的代码是:
Sub usDateToUkDate()
Dim r As Range
Dim cells As Integer
Dim cell As Range
Set r = Range("E1", Range("E1").End(xlToRight))
For Each cell In r
cell.Select
If Left(ActiveCell.Value, 1) <> 0 Then
cell.Value = "0" & cell.Value
End If
If Len(ActiveCell.Value) <> 10 Then
cell.Value = Replace(cell.Value, "20", "2020", 7)
End If
Selection.TextToColumns Destination:=ActiveCell(), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, OtherChar _
:="/", FieldInfo:=Array(0, 3), TrailingMinusNumbers:=True
ActiveCell.EntireColumn.AutoFit
Next cell
End Sub
虽然在复制记录的宏时我不完全了解TextToColumns语法,但是为什么会得到不一致的结果。我确实想从第一个字符开始将FieldInfo:= Array(1,3)更改为Array(0,3)。我得到的结果是: Summary output
数据集:1/22/20 产出:2020年1月22日 结果:正确
数据集:2020年2月1日 输出:2020年1月2日 结果:不正确
根据输入格式重复结果。
我在做什么错?是否有更好的方法将日期从美国转换为英国格式?
答案 0 :(得分:0)
没有答案-但是对Excel和covid-19文件感到恼火,并求助于其他解决方案。 使用gapminder.org作为可视化工具查看文件。 使用我编写的肮脏工具导入数据:https://github.com/perolo/covid19togapminder