我想在 Excel 工作表中使用瑞典格式 dd/mm 输入日期,但 Excel 将其解释为 mm/dd。也就是说,在单元格中写入“7/8”会转换为 Excel 日期(2019-07-08,YYYY-MM-DD)。其他问题涉及将 mm/dd/yyyy 更改为 dd/mm/yyyy,这可以通过 Windows 设置完成,但我找不到更改 mm/dd 格式的方法。
基于字符串的解决方案可以按照某些答案中的建议工作,但是我询问的原因是因为我需要手动输入 dd/mm 格式的日期列表中的日期,并且必须在脑海中扭曲每个日期,或者(虽然它显然可行并且更加健壮)必须设置例如月份和日期的两列,这很烦人。
答案1
Windows 通过“短日期”设置来设置 Excel 如何使用“XX/YY”输入。
这并不是“立即显而易见”的,因为最接近的设置格式似乎是选择“dd/mm/yy”选项。但请注意,这会将输入的前两位设置为日,然后是月。
Excel 将获取两部分条目并将当前年份添加到其中。它随时可以执行此操作,如果您输入的条目被它识别为可能需要执行此操作,它会尝试执行此操作,然后将其运行到操作系统设置中,以查看结果是否可以通过它们进行解释,如果可以,它将接受您的输入作为年份中的日期(根据操作系统,这是当前年份)。
因此,直接输入“XX/YY”会直接失败,或者输入“XX/YY/2022”并根据操作系统格式选择进行检查时会失败。但使用数字而不是字母,您可能会成功。当然,“34/75”不会成功,因为此方案中没有包含 34 或 75 月份的结果……但对于像“7/8”这样的数字,它将使用“7/8/2022”并继续前进。
现在,它有完整的年、月、日字符串来对照操作系统选择,并发现它可能与短日期或长日期匹配。如果它们本质上相同(一个不是日-月,另一个不是月-日!),那么 Excel 可以让输入(例如“7/8”)与其中一个匹配,并采用其中任何一个方式。
如果您选择日-月-年作为短日期,它将把“7”视为日,把“8”视为月,并给出该结果,此时转换为自己的系统。从那时起,它就是一个符合您想要的日期(您可以随意更改其显示形式而不会破坏它)。
假设如果操作系统的短日期和长日期格式相反,它会选择短日期格式,因为它知道您输入的方式与输入“短日期”的方式相同。这只是猜测,但我认为它至少是这么聪明。
因此,即使操作系统没有与所需“dd/mm”直接匹配的格式,它也不需要,因为 Excel 实际上不是这么做的。它会生成一个完整的三部分字符串来与操作系统格式选项进行比较。因此,您需要选择其中一个具有完整三部分的字符串,而不是一个(不存在的)只有两部分的字符串。
至于更改区域设置,如果您打开标准格式对话框(即第一个数字格式选项卡),然后在常规格式类型列表中选择“日期”,您将在右侧看到一些可用日期格式的列表。在它的正下方是单击以选择其他区域设置的位置。如果您选择“时间”或“特殊”作为所需格式的常规类型,也可以以同样的方式使用它。在其中任何一个区域设置中选择的区域设置都会反映在其他两个区域设置中,因此您选择哪个区域设置并不重要。但实际上,如果您从“日期”常规类型中进行选择,您会立即看到可用的格式,如果您没有看到所需的格式,可以选择略有不同的格式。
有趣的是,一些格式在选择“英语(美国)”时不起作用,我的意思是,即使您在“自定义”常规类型中输入了正确的格式字符串,现在也可以使用了。您可以选择一种格式,然后转到“自定义”查看其格式字符串,复制该格式字符串,将其改回“英语(美国)”,然后尝试使用它,但会失败!这怎么可能呢?但这是需要记住的,可以破解系统。
答案2
你总是可以像字符串一样设置它,根据你的情况,这可能更方便,也可能更不方便
假设您想要的日期在某一列中,本例中为“B”(您可以隐藏它),您可以执行以下操作:
=Text(day("B2");"00")&"/"&text(month("B2");"00")
Excel 对与美国日期“mm/dd/yyyy”(及其变体)格式不同的日期非常挑剔,在内部,如果符合美国日期模板,它会尝试转换任何日期。我被这个问题困扰过好几次,因为在我的国家我们使用的是“dd/mm/yyyy”,所以对于“01/04/2018”这样的日期,excel 有时会发疯。