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

我试图通过读取自定义数字格式来规范化数据。 下列单元格中的实际数据只有值3和33

[A1] 3 CASES [A2] 33 UNITS 

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

我想通过excel公式将这些数据标准化为UNITS来进行报告。 我试图用这个公式

 =CELL("format",A1) 

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

如果每个CASE有5个单位,我希望有一个额外的列来计算标准化单位,其公式如下:

 =IF(CELL("format",A1)="CASES",5*A1,A1) 

这样,列B中的标准化单位将是

 [B1] 15 [B2] 33 

你可以使用自定义函数。

函数get_format(r作为范围)作为string

 get_format = r.NumberFormat

结束function

然后使用

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

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

函数check_case(r作为范围)作为布尔值

 check_case = InStr(1,r.NumberFormat,“CASE”)

结束function

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

通过复制工作簿模块中附加的代码构build用户定义的函数,然后可以在工作表中使用它作为=if(iscase(a1),5,1)*a1

 Function IsCase(rgCell As Range) As Boolean If InStr(UCase(rgCell.NumberFormat), "CASE") > 0 Then IsCase = True Else IsCase = False End If End Function