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