独立于国际设置的 Excel DATEVALUE 函数

标签 excel date internationalization

在我的 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/

相关文章:

node.js - 如何使用 i18n-node 在模块化 Express 应用程序中划分语言环境文件?

string - 比较两个字符串的元素

cmd脚本中的日期算术

mongodb - 获取Mongodb中两个日期之间的工作日数

drupal - 如何为自定义 Drupal 7 模块生成翻译文件?

sql - 固定链接/slug 最佳实践

c# - Excel 自动化 C# : How to delete multiple rows?

excel - Type Mismatch错误设置Excel app计算

Excel 获取一组已排序 id 的按月日期差异

ruby-on-rails - 使用多种可接受的格式验证 Ruby 中的日期字符串?