【问题标题】:Excel TEXT() Formula Getting the Month returning "mmm"Excel TEXT() 公式获取月份返回“mmm”
【发布时间】:2018-08-07 15:56:22
【问题描述】:

我在 excel 中收到一份报告,但我在使用俄罗斯电脑时遇到了一些问题。公式 TEXT 用于从日期中获取月份名称,但在俄罗斯 PC 中它不起作用并且没有给出错误。

公式为=TEXT(D7, "mmm"),结果为"mmm"

我也试过(处理不同语言日期的excel方法):

=TEXT(D7, "[$-409]mmm"),结果为"mmm"

我测试了不同的日期函数,它们都可以正常工作。 (Sum()month()、更改数据格式等)。

版本:Excel 365

因为它在我的电脑上工作,有没有人知道可能导致错误的原因是什么?

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    首先 - mmm 应该是 MMM

    那么,PC 是俄语这一事实有点无关紧要。重要的是 Excel 的安装语言。

    你可以试试下面的

    • A1范围内写入43319
    • 然后写这个公式=TEXT(A1,"MMM"),使用英文M而不是西里尔字母。虽然它们看起来完全一样,但它们是不同的。
    • 它应该返回 Aug 作为月份;

    【讨论】:

    • 如果我直接从 RU-RU 文档中复制 ММ 并测试字符代码,我会得到 ascii 63(unicode 1052)。不是我对 EN-US M (ascii 77) 的期望。
    • @Jeeped - 如果你复制这些词中的任何一个 - =ТЕКСТ(СЕГОДНЯ();"ДД.ММ.ГГ") 你会得到 63。猜猜你正在使用这样的东西 - ?Asc(Range("A1"))stackoverflow.com/questions/25838639/…
    • 不,只是工作表上的 CODE(...) 和 UNICODE(...)。
    • @Jeeped - 是的,内置公式更快。
    • 抱歉,回答时间过长。但它也没有奏效。我尝试使用数字格式代替日期,但结果始终是相同的“MMM”。
    【解决方案2】:

    我找到了一种方法来修复它,在 VBA 中创建一个新公式,效果很好。

    按 Alt+F11(打开 VBA 编辑器)然后单击菜单项 Insert > Module 在新的 VBA 模块中,输入以下内容:

    Public Function FMT$(ByVal Value, ByVal strFormat)
        FMT = VBA.Format$(Value, strFormat)
    End Function
    

    要使用它,只需输入=FMT(A1, "MMM") 而不是=TEXT(A1, "MMM")

    感谢https://superuser.com/questions/730371/how-to-prevent-excel-to-use-the-os-regional-settings-for-date-patterns-in-formul

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-02
      • 2015-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多