我有一些二进制数的数据,在几个单元格范围内,从A2到A8,从B2到B8,依此类推,直到G列。 现在,我想检查上面行中最大的二进制数,并将其粘贴到单元格中,最后一个使用范围下方两行。 (即,来自行A的最大二进制数将在A10中粘贴,等等)。 我找不到任何可以找到二进制数值的函数,而我运行的代码会将最大数量视为自然数。 我们将不胜感激。 谢谢!
答案 0 :(得分:0)
您可以使用excel函数Bin2Dec将它们更改为十进制
<p hidden>this text is hidden</p>
答案 1 :(得分:0)
好的,首先我创建了一个将二进制转换为十进制并存储在模块中的函数。 (您可以将它存储在任何地方)此函数处理任何大小的二进制文件
Function BinToDecConverter(BinaryString As String) As Variant
Dim i As Integer
For i = 0 To Len(BinaryString) - 1
BinToDecConverter = CDec(BinToDecConverter) + Val(Mid(BinaryString, Len(BinaryString) - i, 1)) * 2 ^ i
Next
End Function
之后我制作了循环通过sheet1上所有二进制文件的子程序(可能需要为你的工作表更改这个)
Sub FindLargestBinary()
On Error Resume Next
Dim wb As Workbook
Dim ws As Worksheet
Set wb = Application.ThisWorkbook
Set ws = wb.Sheets("Sheet1")
Dim tempVal, tempRow As Integer
Dim iCoulmn, iRow As Integer
For iCoulmn = 1 To 7 'Run from A to G
tempRow = 2
tempVal = 0
For iRow = 2 To 8 'Run from row 2 to 8
If BinToDecConverter(ws.Cells(iRow, iCoulmn).Value) > tempVal Then tempVal = BinToDecConverter(ws.Cells(iRow, iCoulmn).Value): tempRow = iRow ' Check if current binary i higher then any previous
Next iRow
ws.Cells(iRow + 1, iCoulmn).Value = ws.Cells(tempRow, iCoulmn).Value 'Print highest binary
Next iCoulmn
End Sub
希望这可以帮助你...
答案 2 :(得分:0)
假设您的二进制值是文本字符串,此公式将值转换为数字,找到{}
然后转换回文本字符串
MAX
使用 CTRL + SHIFT + ENTER确认
或者您可以使用此版本使用=TEXT(MAX(A2:A8+0),"00000")
函数找到最大值,并且不需要&#34;数组输入&#34;
AGGREGATE