1

我有一组值,它们几乎从来都不是完整的整数,而是在某种程度上具有十分位(即 1000.8、2049.3 等)。显示这些值时,我希望 Excel (2010) 仅显示完整的整数值,而不是四舍五入(默认行为,似乎无法更改)。我需要为工作簿中的其他公式保留这些小数值,但我只是不希望它们显示。这是一个例子:

       A B C D
    --+----------------------------------------------- ----------------
    1 | 真值显示值公式计算
    2 | 1000.9 1000 =B2*3 3002.7
    3 | 2049.3 2049 =B3*3 6147.9
    4 | 515433.5 515433 =B4*3 1546300.5

我想在这些单元格中看到的是我在上面的 B 列中显示的内容,但是这些单元格中保存的实际数据是我在 A 列中显示的,我希望看到的计算结果显示在 D 列中(使用 C 列中的公式)。

我已经搜索了几个小时,但我遇到的一切都没有完成我正在寻找的东西。

请理解,我不会尝试在这些单元格上使用 TRUNC() 或 ROUNDDOWN() 公式函数,因为这会删除小数数据,并且我的公式将在计算过程中使用不正确的数据。这是我正在寻找的一种纯粹的装饰格式,因此我可以看到已完成的整数,没有看到小数,也没有四舍五入到无效整数。同样,正确的解决方案不会将单元格 B2 乘以 3 得到 3000。

我想出的最接近的方法是将这些镜像放在另一列中,我已经向下舍入/截断了数据,但这会创建一个我希望尽可能避免的不必要的列。如果无法通过自定义格式、更改工作表中使用的舍入方法或其他方式来做到这一点,那么我将被迫为此添加另一列。

4

1 回答 1

1

如果有问题的单元格包含常量(不是公式)并且这些单元格的数量不多,则选择单元格并运行此宏:

Sub FakeFormatNoDots()
    Dim DQ As String, mesage As String
    Dim r As Range

    DQ = Chr(34)

    For Each r In Selection.Cells.SpecialCells(2)
        v = r.Text
        If InStr(1, v, ".") > 0 Then
            mesage = DQ & Split(v, ".")(0) & DQ
            r.NumberFormat = mesage & ";" & mesage & ";" & mesage & ";"
        End If
    Next r
End Sub

前:

在此处输入图像描述

之后:

在此处输入图像描述

笔记:

不是一个好的通用解决方案,因为 Excel 可以处理的自定义格式数量有限。

如果更改值,则必须:

  1. 清除格式
  2. 重新运行宏。
于 2018-02-08T14:30:10.590 回答