Excel公式返回单元格的自定义格式

Chu*_*erd 4 excel excel-formula

我正在尝试通过读取自定义数字格式来规范化数据.以下单元格中的实际数据仅具有值3和33

[A1]  3 CASES
[A2]  33 UNITS
Run Code Online (Sandbox Code Playgroud)

显示术语"CASES"和"UNITS",因为它们是与每个单元格不同的自定义格式的一部分.例如A1具有自定义数字格式代码:#"CASES",A2具有自定义数字格式代码:#"UNITS"

我想通过excel公式将这些数据标准化为UNITS以用于报告目的.我试图使用这个公式

=CELL("format",A1)
Run Code Online (Sandbox Code Playgroud)

但返回的值是F0而不是:#"CASES"

如果每个CASE有5个单元,我希望有一个额外的列来计算NORMALIZED UNITS,其公式如下:

=IF(CELL("format",A1)="CASES",5*A1,A1)
Run Code Online (Sandbox Code Playgroud)

这样,B列中的NORMALIZED UNITS就是

[B1]  15
[B2]  33
Run Code Online (Sandbox Code Playgroud)

gtw*_*ebb 5

您可以使用自定义功能.

Function get_format(r As Range) As String

get_format = r.NumberFormat

End Function

然后用

=if(get_format(a1)="# " & CHAR(34) & "CASE" & CHAR(34),5,*A1,1)

或者你可以检查单词CASE是否是数字格式

Function check_case(r As Range) As Boolean

check_case = InStr(1, r.NumberFormat, "CASE")

End Function

=if(check_case(A1),5,*A1,1)