在我的 Excel 工作簿中,我从另一个(文本)来源复制了一些日期信息。 为了能够对这些日期进行计算,我使用了函数“DATEVALUE”。
示例:单元格 A1 包含文本 20 february 2014
,单元格 B1 包含公式 =DATEVALUE(A1)
。
这按预期工作:我得到自 1-1-1900 以来的天数,我可以用任何可以想象的日期符号显示它。
到目前为止没问题。即使这不是英语中的典型日期表示法,DATEVALUE 也会将 february
识别为月份名称并相应地执行操作。
现在,当我在具有不同国际设置(Windows 7:控制面板 -> 区域和语言 -> 格式)的计算机上打开此工作簿时,单元格 B1 会出现 #VALUE
错误。只有当我将 A1 中的文本更改为 20 februari 2014
(荷兰语日期字符串,根据该 PC 上的国际设置)时,DATEVALUE 才会给出与以前相同的结果。
显然,DATEVALUE 使用国际设置将字符串转换为日期。
有什么办法可以防止这种情况发生吗?
- 让Excel明白A1中的字符串是用英文写的, 无论 PC 上的国际设置是什么
- 并将此字符串转换为日期,以便随后用于计算?
最佳答案
你可以试试这个公式:
=DATE(RIGHT(A1;4);MATCH(MID(A1;4;3);{"Jan";"Feb";"Mar";"Apr";"May";"Jun";"Jul";"Aug";"Sep";"Oct";"Nov";"Dec"};0);LEFT(A1;2))
日期总是以年、月、日的顺序接受参数
我承认日期值始终是 2 位数字。
如果您不介意将月份写成缩写。在一个范围内,那么您可以获得更短的公式。
根据您的区域设置,您可能需要替换字段分隔符“;”通过“,”
关于独立于国际设置的 Excel DATEVALUE 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21907765/