Преобразование формата даты США в формат даты Великобритании - PullRequest
0 голосов
/ 11 марта 2020

Я скачал набор данных временных рядов короновируса covid-19, и мне нужно преобразовать заголовки столбцов в файле .csv в британский формат даты. Затем я хочу установить заголовки столбцов в качестве оси даты на графике для построения графика распространения инфекции.

Набор данных начинается с 1/22/20, 1/23/20, а затем изменяется на 02/01 / 2020, 02/02/2020, затем меняется на 13.02.20, 14.02.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), так как я хотел начать с первого символа. Я получаю следующие результаты: Итоговый вывод

Набор данных: 1/22/20 Выход: 22 января 2020 г. Результат: правильный

Набор данных: 01.02.2020 Выход: 02 января 2020 г. Результат: неверный

Результаты повторяются в зависимости от формата ввода.

Что я делаю не так? Есть ли лучший способ конвертировать даты из формата США в Великобританию?

1 Ответ

0 голосов
/ 22 марта 2020

Не ответ - но раздражен Excel и файлами covid-19 и прибегнул к другому решению. Просмотр файла с использованием gapminder.org в качестве визуализатора. Импортируя данные с помощью грязного инструмента, я написал: https://github.com/perolo/covid19togapminder

...