如何在Google Sheets中将GB/MB单位字符串转换为GB数值?
存储大小列单位转换实现方法
核心换算逻辑和你给出的示例匹配,采用二进制换算标准:1 GB = 1024 MB,按单位分别处理即可:
- 后缀为
mb的条目:数值本身就是MB单位值,GB单位值 = 数值 / 1024,最终保留4位小数 - 后缀为
gb的条目:数值本身就是GB单位值,MB单位值 = 数值 * 1024,最终保留1位小数
下面是两种最常用的实现方式,按需选择即可:
方法1:Excel/WPS表格操作(无代码场景)
假设原始Size列放在A列,A1为表头,A2开始是具体的存储大小数据:
- 拆分数值与单位:
- B2单元格输入公式
=VALUE(LEFT(A2,LEN(A2)-2)),提取纯数字部分 - C2单元格输入公式
=RIGHT(A2,2),提取单位部分
- B2单元格输入公式
- 计算对应单位数值:
- MB列(D列)D2单元格输入公式
=IF(C2="mb",B2,B2*1024) - GB列(E列)E2单元格输入公式
=IF(C2="gb",B2,B2/1024)
- MB列(D列)D2单元格输入公式
- 选中B2到E2单元格,下拉填充到所有数据行,最后设置单元格格式:GB列保留4位小数,MB列保留1位小数,修改对应表头就得到你要的结果。
方法2:Python脚本批量处理(大数据量场景)
如果数据量很大,用几行代码就能批量跑完,示例代码如下:
# 原始Size列数据 size_list = ["670.2mb", "668.4mb", "3.2gb", "1.1gb", "479.7mb"] res = [] for s in size_list: num = float(s[:-2]) unit = s[-2:] if unit == "mb": mb_val = num gb_val = round(num / 1024, 4) else: gb_val = num mb_val = round(num * 1024, 1) res.append([gb_val, mb_val]) # 格式化输出结果 print(f"{'Size in GB':<12}{'Size in MB'}") for row in res: print(f"{row[0]:<12}{row[1]}")
运行代码后输出的结果和你给出的目标格式完全一致。
内容的提问来源于stack exchange,提问作者Sagar Vaghela
相关产品推荐
相关产品推荐

