2011-08-01 44 views
9

我有一个Excel公式读取列中的数据。该列中的数据有时是类似日期的格式,例如“10-11”。尽管我已确保该列是文本格式的,并且所有值均以纯文本格式正确显示,而不是重新解释为日期,但该公式基本上将它们重新解释为引用中的日期。将公式处理值作为文本,而不是数字

我需要一种方法来强制公式的单元格引用将单元格解释为文本。我尝试了TEXT(A1,“@”),但它不起作用 - 它给出了日期的数字值。

+0

您可能需要告诉我们您遇到问题的公式是什么公式,可能有基于特定公式的解决方法。 –

+0

这里是公式,它从单元格数据中检索第一组数值 - 停止在字母或符号字符处:= LEFT(A1,LEN(LOOKUP(9.9E + 307,MID(A1,1,ROW(INDIRECT (“1:”&LEN(A1))))+ 0))) – lcdservices

+0

那么你的例子应该返回“10”呢? –

回答

5

Brian Camire的answer解释了为什么,但这里有一个工作表函数,将为您工作。请注意,您必须根据最长字符串的长度在其中创建数字数组。这是一个数组公式,所以当你第一次输入它时,你必须按下CTRL-SHIFT-ENTER,然后你可以点击并在列中拖动它。

=LEFT(A1, MATCH(FALSE, ISNUMBER(VALUE(MID(A1, {1,2,3,4,5}, 1))),0) - 1) 
+0

工作得很好 - 谢谢!我需要阅读数组公式。我不熟悉他们。 – lcdservices

+1

@布莱恩,我尽可能避免使用数组公式,但是他们可能会有一些关键。他们基本上让你使用值的数组(范围)作为参数,并遍历所有的值。 –

1

如果你把一个单引号中的单元格中的文本前,应该表现为对所有引用文字:

'10-11 
+0

这没有奏效。该公式仍将该单元解释为转换为数字的日期。 – lcdservices

+0

但是现在您的单元格数据中有单引号,如何在数据中不显示引号的情况下使其工作? – Andrew

+0

在我的Excel版本(mac:2011)上它可以正常工作,并且数据中没有任何报价。您也可以尝试:'=“10-11”' –

3

当您使用&"",Excel的转换的结果公式到文本(如*1将转换为数字)。

因此,你可以使用这个公式:

=TEXT(A1;"jj-mm")&"" 
+0

这不起作用。它部分为特定数据工作,但结果是:“jj-10”。更大的问题是它打破了其他数据。该单元格中的数据包括“10-11”“104-2”“134-45”“45B”“6413-A”等格式。我的需求非常简单 - 只要数据被解释为简单文本,我使用的公式就可以正常工作。但Excel很烦人地将2位数字 - 短划线 - 2位数据作为日期来处理,这打破了公式。 – lcdservices

4

简短的回答:当一个公式中提到数样(或日期等)的文本值,不要在一个地方使用它们公式在哪里Excel期待一个数字。

长答案:即使源列的格式设置为文本源列中的值是以文本(而不是数字,包括日期)的形式输入的,Excel可能会自动将文本值转换为数字(包括日期)当你在一个公式中引用它们时如果你在Excel所期望的数字(或日期)的地方使用它们。

例如(假设美国日期格式),在空白工作表:

  1. 设置列A到文本的格式。

  2. 在单元格A1中输入值10-11。

  3. 在单元格B1中输入公式= T(A1)。 T()工作表函数返回提供的值,如果它是文本。否则,它将返回一个空字符串。单元格B1中的公式的结果应为10-11,表示A1的值为文本,而不是数字或日期(在这种情况下,结果将为空字符串)。

  4. 在单元格C1中输入公式= A1。

  5. 在单元格D1中输入公式= T(C1)。结果也应该是10-11,表示C1中公式的值是文本,而不是数字或日期。这表明您可以(有时)在公式中使用看起来像数字(或日期)的文本值,并让Excel将其视为文本(这正是您想要的)。

  6. 在单元格E1中,输入公式= A1 + 0。结果将是40827.这是2011年10月11日的数字值。这表明您可以(有时)在公式中使用看起来像数字(或日期)的文本值,Excel会自动将其转换为一个数字(这是你观察到的),如果你在一个地方(比如在+操作符的任一侧)使用它,那么Excel需要一个数字。

3

可能会有所帮助的人在那里,如果你想插入值进入细胞并且有它无法被自动格式化,只是视为文本,你可以这样插入:

=("cell data") 

如:

=("+1 3456789") 
0

只需添加零到输入!

我有一个类似的问题,我有一个带有文本前缀(如FOO-1,FOO-25,FOO-979)的数字列表,但我只想要数字部分(1,25,979)如此我可以运行另一个公式。我正在使用SUBSTITUTE将文本部分替换为空白,但使用这些数字的另一个公式与假结果一起出现。我最终制作了这样的公式:

= SUBSTITUTE(B1:B10,“FOO - ”,“”)+ 0,现在ISNUMBER在TRUE之前说的是FALSE。

相关问题