我想将一份账单报告从葡萄牙语(巴西)翻译成英语。它以月为单位精确计算,并且是一份自动化表格。
合同可能从 1 月开始,但通常也从其他 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
你需要添加其余的月份,但这应该是直截了当的,然后想想它们如何“翻译”
你甚至可以使用类似这样的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)
如果前一个月已经是 12,则使用 IF 从 1 重新开始。“如果没有 if,它仍然会继续超过 13”