将公式作为文本处理,而不是数字
我有一个Excel公式从列中读取数据。 该列中的数据有时是类似date的格式,例如“10-11”。 尽pipe事实上我已确保该列是文本格式的,并且所有值均以纯文本forms正确显示,而不是重新解释为date,但公式基本上将其重新解释为引用中的date。
我需要一种方法来强制公式的单元格引用将单元格解释为文本。 我尝试了TEXT(A1,“@”),但它不起作用 – 它给出了date的数字值。
布赖恩Camire的答案解释了为什么,但这里有一个工作表函数,将为您工作。 请注意,您必须根据最长的string的长度来创build数字数组。 这是一个数组公式,所以当你第一次input它时,你必须按CTRL-SHIFT-ENTER,然后你可以点击并拖动它。
=LEFT(A1, MATCH(FALSE, ISNUMBER(VALUE(MID(A1, {1,2,3,4,5}, 1))),0) - 1)
简短的回答:在公式中引用数字(或类似date的)文本值时,不要在公式中Excel所期望的数字中的某个地方使用它们。
长答案:即使源列被格式化为文本, 并且源列中的值是以文本(而不是数字,包括date)的formsinput的,Excel可能会自动将文本值转换为数字(包括date)一个公式, 如果你在一个地方,Excel的期望号码(或date)使用它们。
例如(假设美国的date格式),在一个空白的工作表中:
-
将列A的格式设置为文本。
-
在单元格A1中,input值10-11。
-
在单元格B1中,input公式= T(A1)。 T()工作表函数返回提供的值,如果它是文本。 否则,它将返回一个空string。 单元格B1中的公式的结果应为10-11,表示A1的值是文本,而不是数字或date(在这种情况下结果将是空string)。
-
在单元格C1中input公式= A1。
-
在单元格D1中,input公式= T(C1)。 结果也应该是10-11,表示C1中公式的值是文本,而不是数字或date。 这表明你可以(有时)在公式中使用一个看起来像数字(或date)的文本值,并让Excel把它当作文本(这是你想要的)。
-
在单元格E1中,input公式= A1 + 0。 结果将是40827.这是2011年10月11日的数字值。这表示您可以(有时)在公式中使用看起来像数字(或date)的文本值,Excel将自动将其转换为一个数字(这是你观察到的),如果你在一个地方使用它(比如在+操作符的任一侧),Excel需要一个数字。
当您使用&""
,Excel 将公式的结果转换为文本 (如*1
将转换为数字)。
因此,你可以使用这个公式:
=TEXT(A1;"jj-mm")&""
如果你想在一个单元格中插入一个值,并且不要自动格式化,只把它看作文本,你可以像这样插入:
=("cell data")
例如:
=("+1 3456789")
如果您在单元格的文本前面加上一个单引号,则应将其表示为所有引用的文本:
'10-11
只需将零joininput!
我有一个类似的问题,我有一个带有文本前缀的数字列表(如FOO-1,FOO-25,FOO-979),但我只想要数字部分(1,25,979),所以我可以运行另一个公式化了。 我正在使用SUBSTITUTE来replace文本部分的空白,但我使用这些数字的其他公式是冒充结果。 我结束了这样的公式:
= SUBSTITUTE(B1:B10,“FOO – ”,“”)+ 0,现在ISNUMBER在说FALSE之前说TRUE。