excel 日期格式无效
excel date formatting not working
我有一个由第 3 方程序创建的 excel sheet。
其中一列的日期格式如下:"Jan 19, 2015 03:00:00 PM"
我希望这些日期以下列格式显示:“19/01/2015”
我选中了一个或多个单元格,右击选择"Format Cells...",在类别中选择"Date",然后在类型中选择“14/03/2001”,无济于事,日期不会改变。
我还尝试了 "Custom" 的类别和 "dd/mm/yyyy" 的类型,同样,完全没有变化。
文件未受保护,sheet可编辑。
谁能解释一下我做错了什么?
问候
克鲁兹
使用 A1 中的数据,在 B1 中输入:
=DATEVALUE(MID(A1,1,12))
并将 B1 格式设置为 dd/mm/yyyy 例如:
如果单元格看起来有 date/time,但它不响应格式更改,它可能是 Text 值而不是真正的 date/time.
鉴于您的区域设置(英国),以及无法更改日期的格式,您的日期时间字符串是文本。以下公式会将日期部分转换为 "real" 日期,然后您可以应用所需的格式:
=DATE(MID(A1,FIND(",",A1)+1,5),MATCH(LEFT(A1,3),{"Jan";"Feb";"Mar";"Apr";"May";"Jun";"Jul";"Aug";"Sep";"Oct";"Nov";"Dec"},0),MID(SUBSTITUTE(A1,","," "),5,5))
也许可以使用更多关于输入格式的信息来简化一些,但上面的应该可以正常工作。此外,如果您需要保留时间部分,只需附加:
+RIGHT(A1,11)
对上面的公式。
虽然您没有将 VBA 标记为可能的解决方案,但您可以利用某些人认为的 VBA 缺点来发挥自己的优势; VBA 严重默认为北美区域设置,除非明确告知要使用其他设置。
点击Alt+F11,当 VBE 打开时,立即使用下拉菜单插入 ► 模块 (Alt+I,M)。将以下内容粘贴到窗格标题中,例如 Book1 - Module1 (Code).
Sub mdy_2_dmy_by_Sel()
Dim rDT As Range
With Selection
.Replace what:=Chr(160), replacement:=Chr(32), lookat:=xlPart
.TextToColumns Destination:=.Cells(1, 1), DataType:=xlFixedWidth, FieldInfo:=Array(0, 1)
For Each rDT In .Cells
rDT = CDate(rDT.Value2)
Next rDT
.NumberFormat = "dd/mm/yyyy"
End With
End Sub
点击 Alt+Q 到 return 到您的工作表。 Select 所有日期(只是日期,不是整列)并点击 Alt+F8 到 运行 宏。
请注意,日期和时间都被保留了下来。如果您希望查看基本时间和日期,请更改单元格编号格式。
我遇到了类似的问题。我的 Excel sheet 有 102,300 行,其中一列日期很乱。再多的花招也不管用。花了一整天在网上输入疯狂的公式,但没有成功。查看截图
- 该列的外观("Short Date" Excel 格式)
无论你做什么技巧,红色圈出的单元格内容(有问题的)都不会改变。包括手动删除它们并输入"DD-MM-YYYY"格式的数字,或者从蓝色的复制粘贴格式。基本上,没有任何效果......顽固!
- 该列的外观("Long date" 格式 Excel)
可以看出,单元格内容无论如何都不会改变。
- 我是怎么解决的
解决这个问题的唯一方法是:
将 Excel sheet 上传到 Google 驱动器。在 Google 驱动器上执行此操作:
点击打开带有Google传播的文件sheet
一旦它作为 Google 展开 sheet,select 整个带有日期的列。
select格式类型为Date(你可以选择任何你想要的日期格式)。
将 Google 传播sheet 下载为 .xlsx。该列的所有内容现在都是 dates
与 ron rosefield 类似,但稍微简化了一些。
=DATE(RIGHT(A1,4),MATCH(MID(A1,4,2),{"01";"02";"03";"04";"05";"06" ;"07";"08";"09";"10";"11";"12"},0),LEFT(A1,2))
以下对我有用:
- Select 日期列。
- 转到“数据”选项卡并选择 "Text to Columns"。
- 在第一个屏幕上,将单选按钮保留在 "delimited" 上,然后单击下一步。
- 取消选择任何分隔符框(全部为空白)并单击“下一步”。
- 在列数据格式下选择日期
- 单击“完成”。
现在你得到了日期值
今天为这个问题苦苦挣扎了 20 分钟。我的问题与此线程中的 MARIO 相同,但我的解决方案更简单。如果你看他上面的回答,蓝色圈出的日期是"month/day/year",红色圈出的日期是"day/month/year"。更改红色日期格式以匹配蓝色日期格式,然后 select 所有这些,右键单击,格式化单元格,类别 "Date",select 所需的类型。可以手动更改红枣,或使用其他一些 excel 魔法来交换日期和月份。
DATEVALUE
如果日期存储为文本
函数将有所帮助
=DATEVALUE("Jan 19, 2015 03:00:00 PM")
另一种解决一列中无法转换的单元格的方法是将它们复制到记事本,然后 CLEAR ALL
(格式化和内容)这些单元格并将记事本中的单元格内容粘贴回相同的细胞。
然后你可以将它们设置为日期,或文本或其他。
清除格式对我不起作用。 Excel365,大概是版本2019.
Select 您要设置格式的单元格。
按 CTRL+1。
在“设置单元格格式”框中,单击“数字”选项卡。
在“类别”列表中,单击“日期”。
在类型下,选择一种日期格式。
解决这个问题的唯一方法是:
将 Excel sheet 上传到 Google 驱动器。在 Google 驱动器上执行此操作:
点击打开带有Google传播的文件sheet
一旦它作为 Google 展开 sheet、select 整个带有日期的列。
select格式类型为日期(可以选择任何你想要的日期格式)。
将 Google 传播sheet 下载为 .xlsx。该列的所有内容现在都是日期
我对日期格式的类似问题的解决方案是:
- 复制问题 sheet 然后将其粘贴到 Sheet
n.
- 删除问题sheet.
- 将 Sheet n 重命名为问题名称 sheet。
QED.
问题 sheet 包含我想读取为 07/21/2017 的日期数据,它不会显示除 42937 以外的任何内容。我做的第一件事是关闭 Excel 并重新-启动它。随后进行了更多尝试。我放弃了自己的解决方案。我尝试了一些在线建议。然后我又做了一次尝试 - Walla - 以上三个步骤解决了这个问题。至于为什么会出现问题?这显然与“那个”sheet有关。去图吧!
我相信不足以让你知道 - rodalsa。
Select 栏目 ->
转到“数据”选项卡 -> Select “文本到列” ->
Select 分隔 -> 选中制表符(取消选中其他框) -> Select 日期 -> 将格式更改为 MMDDYYY -> 完成。
我有一个由第 3 方程序创建的 excel sheet。
其中一列的日期格式如下:"Jan 19, 2015 03:00:00 PM"
我希望这些日期以下列格式显示:“19/01/2015”
我选中了一个或多个单元格,右击选择"Format Cells...",在类别中选择"Date",然后在类型中选择“14/03/2001”,无济于事,日期不会改变。
我还尝试了 "Custom" 的类别和 "dd/mm/yyyy" 的类型,同样,完全没有变化。
文件未受保护,sheet可编辑。
谁能解释一下我做错了什么?
问候 克鲁兹
使用 A1 中的数据,在 B1 中输入:
=DATEVALUE(MID(A1,1,12))
并将 B1 格式设置为 dd/mm/yyyy 例如:
如果单元格看起来有 date/time,但它不响应格式更改,它可能是 Text 值而不是真正的 date/time.
鉴于您的区域设置(英国),以及无法更改日期的格式,您的日期时间字符串是文本。以下公式会将日期部分转换为 "real" 日期,然后您可以应用所需的格式:
=DATE(MID(A1,FIND(",",A1)+1,5),MATCH(LEFT(A1,3),{"Jan";"Feb";"Mar";"Apr";"May";"Jun";"Jul";"Aug";"Sep";"Oct";"Nov";"Dec"},0),MID(SUBSTITUTE(A1,","," "),5,5))
也许可以使用更多关于输入格式的信息来简化一些,但上面的应该可以正常工作。此外,如果您需要保留时间部分,只需附加:
+RIGHT(A1,11)
对上面的公式。
虽然您没有将 VBA 标记为可能的解决方案,但您可以利用某些人认为的 VBA 缺点来发挥自己的优势; VBA 严重默认为北美区域设置,除非明确告知要使用其他设置。
点击Alt+F11,当 VBE 打开时,立即使用下拉菜单插入 ► 模块 (Alt+I,M)。将以下内容粘贴到窗格标题中,例如 Book1 - Module1 (Code).
Sub mdy_2_dmy_by_Sel()
Dim rDT As Range
With Selection
.Replace what:=Chr(160), replacement:=Chr(32), lookat:=xlPart
.TextToColumns Destination:=.Cells(1, 1), DataType:=xlFixedWidth, FieldInfo:=Array(0, 1)
For Each rDT In .Cells
rDT = CDate(rDT.Value2)
Next rDT
.NumberFormat = "dd/mm/yyyy"
End With
End Sub
点击 Alt+Q 到 return 到您的工作表。 Select 所有日期(只是日期,不是整列)并点击 Alt+F8 到 运行 宏。
请注意,日期和时间都被保留了下来。如果您希望查看基本时间和日期,请更改单元格编号格式。
我遇到了类似的问题。我的 Excel sheet 有 102,300 行,其中一列日期很乱。再多的花招也不管用。花了一整天在网上输入疯狂的公式,但没有成功。查看截图
- 该列的外观("Short Date" Excel 格式)
无论你做什么技巧,红色圈出的单元格内容(有问题的)都不会改变。包括手动删除它们并输入"DD-MM-YYYY"格式的数字,或者从蓝色的复制粘贴格式。基本上,没有任何效果......顽固!
- 该列的外观("Long date" 格式 Excel)
可以看出,单元格内容无论如何都不会改变。
- 我是怎么解决的
解决这个问题的唯一方法是:
将 Excel sheet 上传到 Google 驱动器。在 Google 驱动器上执行此操作:
点击打开带有Google传播的文件sheet
一旦它作为 Google 展开 sheet,select 整个带有日期的列。
select格式类型为Date(你可以选择任何你想要的日期格式)。
将 Google 传播sheet 下载为 .xlsx。该列的所有内容现在都是 dates
与 ron rosefield 类似,但稍微简化了一些。
=DATE(RIGHT(A1,4),MATCH(MID(A1,4,2),{"01";"02";"03";"04";"05";"06" ;"07";"08";"09";"10";"11";"12"},0),LEFT(A1,2))
以下对我有用:
- Select 日期列。
- 转到“数据”选项卡并选择 "Text to Columns"。
- 在第一个屏幕上,将单选按钮保留在 "delimited" 上,然后单击下一步。
- 取消选择任何分隔符框(全部为空白)并单击“下一步”。
- 在列数据格式下选择日期
- 单击“完成”。
现在你得到了日期值
今天为这个问题苦苦挣扎了 20 分钟。我的问题与此线程中的 MARIO 相同,但我的解决方案更简单。如果你看他上面的回答,蓝色圈出的日期是"month/day/year",红色圈出的日期是"day/month/year"。更改红色日期格式以匹配蓝色日期格式,然后 select 所有这些,右键单击,格式化单元格,类别 "Date",select 所需的类型。可以手动更改红枣,或使用其他一些 excel 魔法来交换日期和月份。
DATEVALUE
如果日期存储为文本
=DATEVALUE("Jan 19, 2015 03:00:00 PM")
另一种解决一列中无法转换的单元格的方法是将它们复制到记事本,然后 CLEAR ALL
(格式化和内容)这些单元格并将记事本中的单元格内容粘贴回相同的细胞。
然后你可以将它们设置为日期,或文本或其他。
清除格式对我不起作用。 Excel365,大概是版本2019.
Select 您要设置格式的单元格。 按 CTRL+1。 在“设置单元格格式”框中,单击“数字”选项卡。 在“类别”列表中,单击“日期”。 在类型下,选择一种日期格式。
解决这个问题的唯一方法是:
将 Excel sheet 上传到 Google 驱动器。在 Google 驱动器上执行此操作:
点击打开带有Google传播的文件sheet
一旦它作为 Google 展开 sheet、select 整个带有日期的列。
select格式类型为日期(可以选择任何你想要的日期格式)。
将 Google 传播sheet 下载为 .xlsx。该列的所有内容现在都是日期
我对日期格式的类似问题的解决方案是:
- 复制问题 sheet 然后将其粘贴到 Sheet
n. - 删除问题sheet.
- 将 Sheet n 重命名为问题名称 sheet。
QED.
问题 sheet 包含我想读取为 07/21/2017 的日期数据,它不会显示除 42937 以外的任何内容。我做的第一件事是关闭 Excel 并重新-启动它。随后进行了更多尝试。我放弃了自己的解决方案。我尝试了一些在线建议。然后我又做了一次尝试 - Walla - 以上三个步骤解决了这个问题。至于为什么会出现问题?这显然与“那个”sheet有关。去图吧!
我相信不足以让你知道 - rodalsa。
Select 栏目 -> 转到“数据”选项卡 -> Select “文本到列” -> Select 分隔 -> 选中制表符(取消选中其他框) -> Select 日期 -> 将格式更改为 MMDDYYY -> 完成。