我必须解释科学报告的数据。我们报告的数据都使用相同的单位,但实验室发送的数据使用不同的单位。
我想知道如何制作一个宏,可以将其应用于单元格或列的选择以转换结果(将数字除以 1000)。
其中棘手的部分是数字通常显示为“>5”,在这种情况下我需要使用宏将其更改为“>0.005”。
由于我的数据通常包含 50 列以上,因此它确实需要一个宏,以便我可以突出显示一列并单击该宏。然后它会用修改后的数字替换单元格的内容。
答案1
如果那里最多有一个字符,那么对于中的值A1
,以下公式就可以解决问题:
=IF( ISNUMBER(A1), A1/1000, LEFT(A1,1) & MID(A1,2,LEN(A1)-1)/1000 )
即:如果它是纯数字,则只需使用 除以 1,000 即可A1/1000
。否则,使用 复制第一个字符LEFT(A1, 1)
,并使用&
连接从位置 2 到给出的末尾的其余字符,MID(A1, 2, LEN(A1)-1)
并除以 1,000。
(要查看除以 1,000 后的小数,您可能需要设置结果单元格的格式以实际显示小数。如果没有,则0.004
可能会显示为0
。)
我无法将其作为宏进行测试(OpenOffice.org 的语法不同),但也许这可以帮助您入门。完全基于一些快速 Google-fu翻译上述内容:
Function DivideByThousand(s)
If Application.WorksheetFunction.IsNumber(s) Then
DivideByThousand = s / 1000
Else
DivideByThousand = Left(s, 1) & Mid(s, 2, Len(s)-1)/1000
End If
End Function
Sub RecalculateSelection
Dim cell As Excel.Range
For Each cell In Selection
cell.Value = DivideByThousand(cell.Value)
Next cell
End Sub