Excel-文字或数字公式

时间:2018-09-21 13:32:30

标签: excel excel-formula

我想知道下面是否有捷径。

我有一个客户可以填写的产品表格,我需要公式来格式化他们正确输入的零件号。如果不是,则其条目与产品列表不匹配。

以下是各种文字/数字/其他变体... Excel Columns/ Rows Example

    101
7-2009
7-5601-RT
G-2121
5728B
PI-PIXES

除最后一个公式外,我得到了所有公式: FORMULA1

=AND(SUMPRODUCT(--ISNUMBER(--MID(B40,ROW($1:$9996),1)))<LEN(B40),MIN(FIND({0,1,2,3,4,5,6,7,8,9},B40&"0123456789"))<=LEN(B40))

我还必须将其保持为.xls格式。 基本上,我有一列在上面进行检查,它返回TRUE / FALSE。

我还有另一个公式可以检查文本: FORMULA2:

=IF(I40=FALSE,"NUMBER", "TEXT")

最后一栏TESTS FOR TEXT / NUMBER。 FORMULA3:

=IF(J40 = "NUMBER", VALUE(B40), B40)

PI-PIXES由于连字符(连字符)而被标记为数字。

没有其他选择,我正在考虑添加第三列以查找带连字符的TEXT。然后,我将更改FORMULA3,以检查列1 = TRUE +列2 = TRUE和列3 = TEXT是否都同时出现,但这变得越来越复杂,我想知道是否存在捷径。

1 个答案:

答案 0 :(得分:0)

我认为是这样做的:

=IF(SUBSTITUTE(B40,"-","")<>TEXT(B40,"@"),B40,IFERROR(VALUE(B40),B40))

如果有连字符,它将返回B40不变,并消除日期。否则,它将使用IFERROR将其作为普通的值转换处理。

这应该适用于旧版本的Excel:

=IF(SUBSTITUTE(B40,"-","")<>TEXT(B40,"@"),B40,IF(ISERR(VALUE(B40)),B40,VALUE(B40)))

甚至是这样:

=IF(ISERR(FIND("-",B40)),IF(ISERR(VALUE(B40)),B40,VALUE(B40)),B40)