Я хотел бы перевести отчет по выставлению счетов с португальского (Бразилия) на английский. Он точен по месяцам и представляет собой автоматизированную таблицу.
Контракт может начаться в январе, но обычно он начинается и в другие 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».