在Excel工作表单元格我有一个日期值,如:Excel的日期到字符串转换
01/01/2010 14:30:00
我想那个日期转换为文本,并希望文本外观酷似日期。所以Date值01/01/2010 14:30:00
应该看起来像01/01/2010 14:30:00
,但内部应该是Text。
我如何在Excel中做到这一点?
在Excel工作表单元格我有一个日期值,如:Excel的日期到字符串转换
01/01/2010 14:30:00
我想那个日期转换为文本,并希望文本外观酷似日期。所以Date值01/01/2010 14:30:00
应该看起来像01/01/2010 14:30:00
,但内部应该是Text。
我如何在Excel中做到这一点?
=TEXT(A1,"DD/MM/YYYY hh:mm:ss")
(24小时)
=TEXT(A1,"DD/MM/YYYY hh:mm:ss AM/PM")
(标准时间)
您节省了我的一天,谢谢! – 2013-01-15 16:28:16
完全引用TEXT函数,尤其是了解如何设置格式:请参阅此页上的日期和时间格式指南http://office.microsoft.com/zh-cn/excel-help/text-function-HP010062580.aspx – codea 2013-09-09 21:07:53
当我尝试做这个转换时,有一个“#AD?”文字,它说什么是错的。 – AloneInTheDark 2014-03-31 13:08:42
在某些情况下,预先使用'字符将会起作用,但如果您保存为CSV并再次加载,这是不可能的。
'01/01/2010 14:30:00
这里是一个VBA方法:
Sub change()
toText Sheets(1).Range("A1:F20")
End Sub
Sub toText(target As Range)
Dim cell As Range
For Each cell In target
cell.Value = cell.Text
cell.NumberFormat = "@"
Next cell
End Sub
如果您正在寻找无需编程的解决方案,这个问题应转移到超级用户。
这里的另一种选择。使用Excel内置的“文本到列”向导。它位于Excel 2007的“数据”选项卡下。
如果您选择了一列,文件类型和分隔符的默认值应该可以工作,然后它会提示您更改列的数据格式。选择文本强制它为文本格式,以确保它不被存储为日期。
如果你没有使用那么编程执行下列操作 (1)选择列 (2)点击右键,选择设置单元格格式 (3)选择“自定义” (4)就在“类型:”类型dd/mm/yyyy hh:mm:ss
在Excel 2010中,marg's answer仅适用于我在电子表格中导入的一些数据(它已导入)。以下解决方案适用于所有数据。
Sub change()
toText Selection
End Sub
Sub toText(target As range)
Dim cell As range
Dim txt As String
For Each cell In target
txt = cell.text
cell.NumberFormat = "@"
cell.Value2 = txt
Next cell
End Sub
所选答案对我无效,因为Excel仍未将文本转换为日期。这是我的解决方案。
假设在第一列A中,您的数据类型为2016/03/25 21:20:00
,但存储为文本。然后在B列写=DATEVALUE(A1)
并在列C写=TIMEVALUE(A1)
。
然后在D列做=B1+C1
添加数字格式的日期和时间。
最后,通过在列E中单击右键,将D中的值复制到E列中并选择Paste Special -> Paste as Values
。
突出显示E列中的数值并将数据类型更改为日期 - 我更喜欢使用表格YYYY-MM-DD HH:MM:SS
的自定义日期。
我不知道问题的发表年份;现在可能已经老了。所以,我希望我的答案能够成为我发布后的未来类似问题的参考资料。
我不知道那里有没有人给出类似于我将要给予的答案,这可能会导致 - 我认为 - 是最简单,最直接,最有效的:如果某人已经给出它,我很抱歉,但我没有看到它。在这里,我的回答使用而不是文本CStr的:
Asuming单元格A1包含日期和使用VBA代码:
Dim strDate As String 'Convert to string the value contained in A1 (a date) strDate = CStr([A1].Value)
可以,此后,操纵它作为任何一个普通字符串中使用字符串功能(MID,左,右,LEN,CONCATENATE(&)等)
不可能得到TEXT()式工作
最简单的搜索解决方案n为复制粘贴到记事本,然后返回到Excel中设置粘贴回
之前文本列或者你也可以做同样的,像这样
=DAY(A2)&"/"&MONTH(A2)&"/"&YEAR(A2)& " "&HOUR(B2)&":"&MINUTE(B2)&":"&SECOND(B2)
势利的程序员很多人认为的Excel公式不是一个编程环境,所以可能会关闭这个问题。我希望他们不要,但只是为了警告你。 – 2010-04-14 09:16:13
Excel可能不是一个完整的IDE,但如果您在Excel中给出数据并且需要Excel中的结果,则某些VBA编程会产生各种意义。 – brichins 2011-12-03 00:02:22