簡體   English   中英

條件格式(自定義格式),具有Excel中的數字的多個條件

[英]Conditional formatting(custom format) with multiple conditions for a number in Excel

我想根據單元格中的值動態地將數字格式化為M(百萬),B(十億)或K(千)。 我試過(但這不起作用):

[>1000000000]0,,,"B";[>1000000]0,,"M";[>1000]0,"K";0”

如果我給出任何兩個條件它是有效的,例如:

[>1000000000]0,,,"B";[>1000000]0,,"M";0  

要么

 [>1000000]0,,"M";[>1000]0,"K";0 )

請參閱: https//www.sumproduct.com/thought/multiple-number-formatting.html

本文 (第三個示例)提到格式化語句中只允許兩個條件:

自定義數字格式允許指定最多兩個條件。 這是因為只允許四個部分進行自定義數字格式化,兩個部分保留。 第四部分總是指定文本格式,另外一部分需要詳細說明“其他所有”(數字)的格式。

並且如Excel 2010幫助中所述:

數字格式最多可包含四個代碼段,以分號分隔。 這些代碼部分按順序定義正數,負數,零值和文本的格式。

<POSITIVE>;<NEGATIVE>;<ZERO>;<TEXT>

作為中間解決方案,您可以使用我編寫的以下VBA函數:

Function FormatNumber(val As Variant) As String
If IsNumeric(val) Then
    Dim NumVal As String
    NumVal = ""

    If val > 1000000000 Then
        NumVal = Str(val / 1000000000#) & "B"
    ElseIf val > 1000000# Then
        NumVal = Str(val / 1000000#) & "M"
    ElseIf val > 1000# Then
        NumVal = Str(val / 1000#) & "K"
    Else
        NumVal = Str(val)
    End If

    FormatNumber = NumVal
Else
    FormatNumber = val
End If
End Function

結果如下:

excel數字格式

第一列是原始數字,第二列是您建議的數字格式,第三列是VBA函數FormatNumber 請注意, FormatNumber的結果是字符串,因此您無法使用它們進行計算。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM