Excel 中有一个文本列,其中充满了十六进制值,如下所示:
0000000000000c10
00000000000036f0
00000000000274da
00000000000379e0
哪个函数可以帮助我删除前导 0 直到第一个非 0 字符?所需输出:
c10
36f0
274da
379e0
这将帮助我提供 HEX2DEC 函数。
答案1
另一种方法是先转换为十进制,然后再转换回来。HEX2DEC
工作表函数只接受 10 位数字/字符作为输入,但RIGHT
会处理这个问题。立即转换回来DEC2HEX
(同时保留可选的[地点]参数超出方程的范围)应导致修剪后的十六进制值。
B1 中的公式是,
=DEC2HEX(HEX2DEC(RIGHT(A1,10)))
根据需要填充。该DEC2HEX
函数可以将前导零填充至多 10 位,但如果您需要将前导零填充回最多 16 位占位符,那么
=RIGHT(REPT(0, 16)&B1, 16)
答案2
好的,找到了。
假设值位于表中,并且其列名为“Column1”:
=REPLACE([@Column1],1,FIND(LEFT(SUBSTITUTE([@Column1],"0","")),[@Column1])-1,"")
这将产生如问题所示的所需输出。
解决方案的核心由该公式处理,它计算我们要查找的文本值之前的 0。
=FIND(LEFT(SUBSTITUTE([@Column1],"0","")),[@Column1])-1