Excel - 如何准确读取电子表格中显示的单元格值,而不是通过公式

Excel - 如何准确读取电子表格中显示的单元格值,而不是通过公式

我有一个流程,在通过 R 代码运行 CSV 之前,需要(有时手动)清理 CSV。许多 CSV 来自其他来源,因此我无法控制它们的格式。

我有一列Time Remaining“分钟:秒”格式,其值为 15:00、14:32 等。Excel 会自动将其读取为时间,因此即使单元格中显示“15:00”,实际值也是“12:15:00 AM”。我确实需要能够将此列解析为单独的“分钟/秒”列,但我无法做到这一点,因为格式都很古怪。

例如,如果 A1 中输入“15:00”,而我在 B1 中写入=left(A1,2),结果为“0”。这是因为从技术上讲,A1 的值是“0.010416”(15 分钟是 24 小时的 .25 => .25/24 = .0104166)。

我只想让列的读取和操作与电子表格中显示的完全一致。鉴于我不是电子表格的创建者,我有什么选择吗?

编辑:澄清一下,电子表格的所有者发送它的目的是让它被读成文本“15:00”。Excel 会自动将其转换为时间戳,这使得它很难处理。

修改 2:最好自己尝试一下。转到一个单元格并输入“15:12”,您会看到 Excel 将其更改为下午 3:12:00。在此单元格上使用任何公式都会产生意外结果。有没有办法将单元格转换为单元格本身的内容?我不能直接将其转换为文本格式,因为那样会将其改回小数。

答案1

您可以获取部分时间:

=HOUR(A1)

=MINUTE(A1)

=SECOND(A1)

或者,在使用LEFT或之前重新格式化为文本:MIDRIGHT

=LEFT(TEXT(A1,"hhmmss"),2)

=MID(TEXT(A1,"hhmmss"),3,2)

=RIGHT(TEXT(A1,"hhmmss"),2)

答案2

如果用户15:00在单元格中输入内容,Excel 会将其解释为时间值,因为冒号通常用于时间值。这就是 Excel 的工作原理。

如果你想将其移回文本值,你可以使用

=text(A1,"hh:mm")

在屏幕截图中,您可以在 B1 中看到结果。由于它是文本,因此它会自动左对齐,而时间值是数字,因此会自动右对齐。

在此处输入图片描述

如果您有机会教育电子表格的创建者,您可以要求他们在条目前面添加一个撇号。这样会将值保留为文本,而不会将其变成数字或时间值。

答案3

您说您目前正在“清理”输入文件。如果您想访问文件中的值,您应该清理“剩余时间”字段,这样 Excel 就不会将其视为日期/时间。只需更改15:12'15:12或。这在、或 Notepad++="15:12"中很容易做到 。sedawk

另一种方法是在导入文件之前将单元格格式化为“文本”。

相关内容