我想知道下面是否有捷径。
我有一个客户可以填写的产品表格,我需要公式来格式化他们正确输入的零件号。如果不是,则其条目与产品列表不匹配。
以下是各种文字/数字/其他变体... 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是否都同时出现,但这变得越来越复杂,我想知道是否存在捷径。
答案 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)