Как автоматически перевести месяцы с одного языка на другой?

Как автоматически перевести месяцы с одного языка на другой?

Я хотел бы перевести отчет по выставлению счетов с португальского (Бразилия) на английский. Он точен по месяцам и представляет собой автоматизированную таблицу.
Контракт может начаться в январе, но обычно он начинается и в другие 11 месяцев.

Если я установлю первый месяц на апрель, то одиннадцать других справа продолжат расти (май, июнь, июль...) до марта.

Я создал эту формулу:

=PROPER(TEXT((B1&1)+31;"mmmm")) 

со второго по двенадцатый месяц.

Однако я использую его на португальском (Бразилия), и он работает очень хорошо. Но когда попадаешь на английский месяц, он не работает.

Я пробовал [$-409], но это не работает так, как мне хотелось бы.

Если я использую это, то получится что-то вроде Жанейро и февраль, а в следующих месяцах будет ошибка.

Я хочу записать январь и получить февраль, март и т. д.

Возможно, это сработает на вашем компьютере. Попробуйте также и с другими языками.

Примечание: VBA не работает, мне нужно отправить его своим клиентам.

решение1

Я думаю, что то, чего вы хотите, невозможно осуществить так, как вы хотите.

Согласно вашим комментариям, вы не можете изменить настройки локали системы, поскольку этот документ можно использовать на других компьютерах, где это невозможно.

Единственное решение, которое я могу придумать, это использовать VBa.

В этом примере я просматриваю весь рабочий лист и заменяю слова на эквивалентные.

Во-первых, сделайте резервную копию файла. VBa отменить нельзя

Sub ChangeTheNameMeHearties()

Dim cell As Range

For Each cell In ActiveSheet.UsedRange
    Dim s As String
    Select Case LCase(cell.Value)

        Case cell.Value = "january"
            cell.Value = "Janeiro"

        Case cell.Value = "february"
            cell.Value = "Fevereiro"

    End Select
Next

End Sub

Вам нужно будет добавить остальные месяцы, но это должно быть просто, а затем подумайте, как они «переводятся».

Также смКак добавить VBA в MS Office?

Вы даже можете использовать такой оператор case:

    Case cell.Value = "january"
        cell.Value = "Janeiro"

    Case cell.Value = "janeiro"
        cell.Value = "January"

    Case cell.Value = "february"
        cell.Value = "Fevereiro"

    Case cell.Value = "fevereiro"
        cell.Value = "February"

Это значит, что при каждом запуске вы будете переключаться между языками

решение2

Я уже исправил, извините за опоздание.

Я исправил с помощью

=PROPER(TEXT((DATE(2014,B3,1)),"mmmm"))

где «B3» — номер месяца, который изменяется только один раз и извлекается из сводной таблицы.

Следующий месяц получает +1 вместо «следующий месяц».

=IF(B3<12,B3+1,1)

IF используется для перезапуска с 1, если предыдущий месяц уже 12. «Без if он все равно продолжал бы расти после 13».

Связанный контент