Excel:从1个单元格中仅查找Hexa小数

时间:2016-02-01 13:09:23

标签: excel

我是Excel上的新手。 所以我有一些以Hexa小数结尾的名字列表。还有一些名字,没有任何名字。 我的任务是只查看具有Hexa小数的名称。 (Mabye以某种方式过滤掉它们)

柱:

BFAXSPOINTDEVBAUHOFLAN2AD
BFAXSQLBAUHOFLAN207
BFAXSQLDEVBAUHOFLAN27A
BFREPDEVBAUHOFLAN258
BFREPORTINGBAUHOFLAN20B
COBALTSEA02900
COBALTSEAVHOST900
DIRECTO8000
DIRECTO9000
DIRECTODCDIRECTOLA009
DYNAMAEBSSISE006
SURVEYEBSSISE006
KVMSRV00",
KVMSRV01",
KVMSRV02",
ASR
CACTI
DBSYNC",
DTV

依旧......

2 个答案:

答案 0 :(得分:1)

函数HEX2DEC将帮助您实现您想要的功能 - 它会尝试将数字转换为十六进制数字。如果它不是有效的十六进制输入,则会产生错误。

关键是要了解你希望你的小数有多少位数 - 是最后5个字符;最后10;另外请注意,当真正意义上的随机文本/数字不是它所代表的时候,它会被视为十六进制的风险[但这是问题的问题,因为你已经解决了这个问题;完全基于提供的文本,我们可以看到的是特定单元格是否创建有效的十六进制]。

完整的公式看起来像这样[假设您的数据在A1中开始,并且您的十六进制数字预计长度为6个字符,这将在B1中被复制下来]:

=ISERROR(HEX2DEC(RIGHT(A1,6)))

这将获取单元格中最右边的6个字符,并尝试将其从十六进制转换为十进制。如果失败,它将产生TRUE [因为ISERROR];如果成功,它将产生FALSE。

然后只需过滤您的列,即可查看您关注的结果子集。

答案 1 :(得分:0)

考虑以下 UDF

Public Function EndsInHex(r As Range) As Boolean
   Dim s As String, CH As String
   s = r(1).Text
   CH = Right(s, 1)
   If CH Like "[A-F]" Or CH Like "[0-9]" Then
      EndsInHex = True
   Else
      EndsInHex = False
   End If
End Function

enter image description here

对于以十六进制结尾的字符串,最后一个字符必须是十六进制。