%20%E8%BD%AC%E6%8D%A2%E7%9A%84%E6%95%B0%E5%AD%97%E8%8C%83%E5%9B%B4%EF%BC%9F%EF%BC%88%E6%8E%A5%E6%94%B6%E9%94%99%E8%AF%AF%EF%BC%89.png)
在 Excel 单元格 A1 和 A2 中,我有以下十六进制数:04cf 和 04fb,分别为 1231 和 1257。
我尝试将 A1 和 A2 转换为十六进制,然后将两者相加得到 2488。在 B1 中,我输入 =SUM(HEX2DEC(A1:A2)),但这会返回错误。
看起来我需要有一个单独的部分专门用于 A1 和 A2 的小数形式,然后我可以将该部分中的数字相加。问题是我有很多数据,这会占用电子表格上的大量空间。我想知道是否有可能更干净地做到这一点?
非常感谢。
答案1
尝试使用 CTRL + SHIFT + ENTER:
=SUM(HEX2DEC(+A1:A2))
该+
符号将范围参数更改为数组。此操作可应用于不接受多个单元格范围的函数参数,包括工程类别中的一些参数以及旧版本中构成“分析工具库”一部分的其他参数。
您还可以尝试SUMPRODUCT
替代方法SUM
并输入公式,而无需 CSE 按键。
答案2
考虑以下自定义函数:
Public Function HexSum(rIN As Range) As Long
Dim r As Range, v As String, n As Long
HexSum = 0
For Each r In rIN
v = r.Text
n = Application.WorksheetFunction.Hex2Dec(v)
HexSum = HexSum + n
Next r
End Function
答案3
不要使用公式=SUM(HEX2DEC(A1:A2))
,而要使用=HEX2DEC(A1)+HEX2DEC(B1)
。
HEX2DEC
与 Excel 中的大多数其他函数不同,它不是支持矩阵的函数。其参数不能是数组,而必须是单个十六进制数,因此会出现错误。
答案4
尝试
=SUM(HEX2DEC(A1),HEX2DEC(A2))