如何识别单元格中的货币类型?求返回单元格货币属性的函数
获取单元格货币类型的实现方案
Excel没有直接返回单元格货币类型的内置函数,但可以通过以下两种方式实现需求:
一、用内置函数组合判断
利用CELL("format", 单元格)函数返回的格式代码,配合逻辑函数判断是否为货币格式及对应类型。示例公式:
=IF(LEFT(CELL("format",A1),1)="C","默认货币格式",IF(ISNUMBER(SEARCH("¥",CELL("format",A1))),"人民币格式",IF(ISNUMBER(SEARCH("$",CELL("format",A1))),"美元格式","非货币格式")))
注意:该方案依赖Excel的格式代码规则,不同区域设置或自定义货币格式可能导致判断偏差,需根据实际格式调整逻辑。
二、VBA自定义函数(更精准)
通过编写自定义函数直接读取单元格的数字格式,判断货币类型:
- 按
Alt+F11打开VBA编辑器,插入新模块 - 粘贴以下代码:
Function GetCurrencyType(cell As Range) As String Dim fmt As String fmt = cell.NumberFormat If InStr(fmt, "¥") > 0 Then GetCurrencyType = "人民币" ElseIf InStr(fmt, "$") > 0 Then GetCurrencyType = "美元" ElseIf InStr(fmt, "€") > 0 Then GetCurrencyType = "欧元" ElseIf Left(cell.NumberFormatLocal, 1) = "¥" Then GetCurrencyType = "人民币(本地格式)" ElseIf Left(cell.NumberFormatLocal, 1) = "$" Then GetCurrencyType = "美元(本地格式)" ElseIf Left(CELL("format", cell), 1) = "C" Then GetCurrencyType = "系统默认货币" Else GetCurrencyType = "非货币格式" End If End Function
- 返回工作表,在单元格中输入
=GetCurrencyType(A1)即可获取A1单元格的货币类型
注意:使用自定义函数需启用宏,文件需保存为.xlsm格式;可根据需要扩展代码中判断的货币符号。
内容的提问来源于stack exchange,提问作者Andrei Prystupchyk
相关产品推荐
相关产品推荐

