MS Excel - 如何从使用不同语言环境生成的文本中读取日期

MS Excel - 如何从使用不同语言环境生成的文本中读取日期

我读完后写了这个问题如何在不更改系统设置的情况下使用具有不同区域设置的 DATEVALUE没有解决我的问题。

这是关于从使用不同语言环境创建的文本中读取正确的月份。例如,日期来自美国语言环境,而我使用的是 GE 语言环境。然后月份略有不同:

美国月份 JAN、FEB、3月, 四月,可能、六月、七月、八月、九月、10月十一月十二月

GE月份 一月、二月、机读区, 四月,马来西亚航空、六月、七月、八月、九月、俄克拉荷马州立大学十一月德兹

我已经看到了一个解决方案使用 TEXT 函数来设置不同的语言环境,但我想知道现在最有效的方法是什么。(我认为创建表或数组是最后的手段 ;-))。

谢谢你的提示!+Daniel+

答案1

..使用 TEXT 函数,但我想知道什么是有效的方法..

效率方面?...我不确定是更简单还是更复杂...我认为简单是相对的。我坚持的是...当我们对一种方法有信心(并且清楚理解)时,这种方法就是有效的。恕我直言,如果我们对该方法有怀疑,那么就会更麻烦。(:

假设源文本在 A1 中,请执行以下操作:

=DATE(MID(A1,8,4),CHOOSE(MATCH(MID(A1,4,3),{"JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"},0),1,2,3,4,5,6,7,8,9,10,11,12),MID(A1,1,2))+TIME(MID(A1,13,2),MID(A1,16,2),0)

主意 :

  1. 使用 MID() 获取年/月/日/hh/ss(数字和文本)值
  2. 使用 choose() n match() 来“转换”月份。
  3. 使用 date()&time()“转换”为 excel

希望能帮助到你。

答案2

您可以采取的一种方法是,注意有四个月份需要从英文缩写更改为德文缩写,并且您可以使用嵌套SUBSTITUTE()'s(其中四个)来替换出现的任何一个(如果其中一个出现),而保留八个 OK 的。

这为您的公式提供了一个您的版本应该识别的字符串,因此如果您将其包装在函数中VALUE(),则将字符串转换为当天的日期数字应该不会出现问题。

如果您按照通常的方式格式化单元格,那么您就可以开始了。

然而,我承认我从未使用过非英语版本,也不知道其功能与英语版本相比有多么相似,所以其VALUE()功能可能不会与英语版本完全相同。

(当然,这些功能可能有不同的名称,但这很简单。)

相关内容