转变

转变

我必须解释科学报告的数据。我们报告的数据都使用相同的单位,但实验室发送的数据使用不同的单位。

我想知道如何制作一个宏,可以将其应用于单元格或列的选择以转换结果(将数字除以 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

相关内容