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

求可对字符串内数字执行乘除运算且保留关联文本的公式

解决方案

针对你需要对字符串中的数字执行乘除运算并保留附带文本的需求,可以使用Google Sheets的拆分-运算-合并组合公式,以下是具体实现:

通用公式(支持乘法/除法)

假设原始数据在单元格A2,运算规则在单元格B2,在目标单元格输入:

=TEXTJOIN("/", TRUE, ARRAYFORMULA(
  TEXT(
    REGEXEXTRACT(SPLIT(A2, "/"), "\d+") * 
    IF(LEFT(B2, 1)="*", SUBSTITUTE(B2, "*", ""), 1/SUBSTITUTE(B2, "/", "")),
    "#.##"
  ) & REGEXEXTRACT(SPLIT(A2, "/"), "[A-Z]+")
))

公式分步解释

  • SPLIT(A2, "/"):将原始字符串按/分割为独立片段(如25STR、40DEX)
  • REGEXEXTRACT(..., "\d+"):从每个片段中提取纯数字部分
  • IF(LEFT(B2,1)="*", ...):判断运算类型,乘法直接提取系数,除法转换为倒数(如/2转为0.5)
  • TEXT(..., "#.##"):格式化运算后的数字,保留两位小数(可根据需求修改为0、#.###等)
  • REGEXEXTRACT(..., "[A-Z]+"):从每个片段中提取纯文本部分
  • TEXTJOIN("/", TRUE, ...):将运算后数字+文本的片段重新用/拼接成最终字符串

示例验证

以你提供的案例测试:

  • 当A2=25STR/40DEX/70FRES,B2=*0.25,公式返回6.25STR/10DEX/17.5FRES
  • 当A2=80VIT/30INT/50CRES,B2=*0.75,公式返回60VIT/22.5INT/37.5CRES(注:你示例中期望结果写了60STR,应为笔误)
  • 当A2=60VIT/20STR/45LRES,B2=*1.25,公式返回75VIT/25STR/56.25LRES

格式调整说明

如果需要整数结果显示为整数、小数自动保留,可将TEXT函数的格式参数改为"#.###";如果强制保留一位小数,改为"0.0"即可。

内容的提问来源于stack exchange,提问作者Oldy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 12:45:33