You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Power BI中将带K/M/B后缀的文本数值转换为纯数字

带数量级后缀文本转纯数值的常用方案

1. Excel/Google 表格端处理

无需复杂脚本,直接用公式即可完成转换:

  • 换算规则统一为:K=10^3、M=10^6、B=10^9,如果有其他自定义后缀可以直接对应调整倍率
  • 通用公式(假设待转换内容存放在A1单元格):
=LEFT(A1,LEN(A1)-1)*SWITCH(RIGHT(UPPER(A1),1),"K",1000,"M",1000000,"B",1000000000,1)
  • 旧版Excel无SWITCH函数的替代公式:
=LEFT(A1,LEN(A1)-1)*IF(RIGHT(UPPER(A1),1)="K",1000,IF(RIGHT(UPPER(A1),1)="M",1000000,IF(RIGHT(UPPER(A1),1)="B",1000000000,1)))
  • 说明:公式中已经内置了大小写兼容逻辑,不管后缀是小写的k/m/b还是大写的K/M/B都可以正常识别

2. Python 批量处理

如果是大量数据批量转换,可以用自定义函数实现:

  • 基础转换函数示例:
def suffix_to_num(text: str) -> float:
    suffix_map = {'K': 10**3, 'M': 10**6, 'B': 10**9}
    text = text.strip().upper()
    # 兼容无后缀的纯数字文本
    if text[-1] not in suffix_map:
        return float(text)
    # 拆分数字部分和后缀部分分别处理
    num_part = float(text[:-1])
    return num_part * suffix_map[text[-1]]

# 测试用例
print(suffix_to_num("4.1M")) # 输出4100000.0
print(suffix_to_num("1.22B")) # 输出1220000000.0
print(suffix_to_num("3K")) # 输出3000.0
  • 如果是pandas表格处理,直接调用apply()方法即可批量转换整列:
import pandas as pd
df['转换后数值列'] = df['原文本列'].apply(suffix_to_num)

3. 补充说明

  • 如果有其他量级后缀比如代表万亿的T,直接在换算映射里新增'T':10**12的键值对即可
  • 如果文本前后带空格,上面的方案已经包含了去空格的兼容逻辑,不需要额外预处理

内容的提问来源于stack exchange,提问作者K.Kao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 06:45:03