Dhanush Manjunath Asked: 2019-10-23 18:43:50 +0800 CST2019-10-23 18:43:50 +0800 CST 2019-10-23 18:43:50 +0800 CST Excel 上的替换和格式公式不正确 772 我制定了一个公式,可以将日期格式从 MM/DD/YYYY 和 MM-DD-YYYY 更改为“mmm”。但是,它仅适用于具有“/”的单元格。我该如何修正这个公式? =TEXT(SUBSTITUTE((LEFT((TEXT((SUBSTITUTE((F33),"-","/")),"mm/dd/yyyy")),10))," ",""),"mmm") 干杯 microsoft-excel 1 个回答 Voted Best Answer Ron Rosenfeld 2019-10-25T02:05:09+08:002019-10-25T02:05:09+08:00 问题在于 CSV 文件中的日期格式和您的 Windows 区域短日期 (WRSD) 格式不同。 Excel 将根据您的 WRSD 设置解析日期,这可能是 DMY。因此,当日期的第二部分大于 12 时,它就变成了文本。没有变成文本的日期将把 D 和 M 颠倒过来。这可能是因为 CSV 设置是 MDY。 要处理此问题,您可以在打开 CSV之前将 WRSD 更改为 MDY ,也可以导入CSV 文件。这将打开文本导入向导,让您有机会告诉 Excel CSV 文件中的日期是 MDY,覆盖您的 WSRD。 导入文件在不同版本的 Excel 中是不同的。但是,通常,您导航到“数据”选项卡并查找显示“来自文本”的内容。那应该会弹出一个文件选择对话框。 如果您有 O365,您可能需要从后续对话框中选择“转换数据”,以便到达可以正确定义日期列的位置;在早期版本中,您应该会看到类似文本到列向导的内容,它提供相同的功能。 然后,要获取月份,您可以将列格式化为mmm或使用简单的文本函数: =text(cell_ref, "mmm" 对于非文本日期,您的公式可能不会返回 CSV 文件创建者想要的月份。由于您对文本字符串使用的方法,这似乎是正确的。“实际日期”将使用上面显示的简单公式显示月份。您可以查看他们是否同意您的合理日期。
问题在于 CSV 文件中的日期格式和您的 Windows 区域短日期 (WRSD) 格式不同。
Excel 将根据您的 WRSD 设置解析日期,这可能是 DMY。因此,当日期的第二部分大于 12 时,它就变成了文本。没有变成文本的日期将把 D 和 M 颠倒过来。这可能是因为 CSV 设置是 MDY。
要处理此问题,您可以在打开 CSV之前将 WRSD 更改为 MDY ,也可以导入CSV 文件。这将打开文本导入向导,让您有机会告诉 Excel CSV 文件中的日期是 MDY,覆盖您的 WSRD。
导入文件在不同版本的 Excel 中是不同的。但是,通常,您导航到“数据”选项卡并查找显示“来自文本”的内容。那应该会弹出一个文件选择对话框。
如果您有 O365,您可能需要从后续对话框中选择“转换数据”,以便到达可以正确定义日期列的位置;在早期版本中,您应该会看到类似文本到列向导的内容,它提供相同的功能。
然后,要获取月份,您可以将列格式化为
mmm
或使用简单的文本函数:=text(cell_ref, "mmm"
对于非文本日期,您的公式可能不会返回 CSV 文件创建者想要的月份。由于您对文本字符串使用的方法,这似乎是正确的。“实际日期”将使用上面显示的简单公式显示月份。您可以查看他们是否同意您的合理日期。