ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1169|回复: 11

[求助] 求助帖—通过最简化操作或公式取得想要结果

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-5-4 11:48 | 显示全部楼层 |阅读模式
本帖最后由 樊sir 于 2023-5-4 13:00 编辑

如题,需要根据A列的数据源尾字母判断是否进行单位换算,m直接输出计算结果如E列值,y则将结果进行×0.1输出如E列,我尽力简化的流程,应该只能这样了吧?图一、图二为调试公式,图三为效果图。
图一 image.png
图二 image.png
图三 1683171778420.jpg

TA的精华主题

TA的得分主题

发表于 2023-5-4 13:15 | 显示全部楼层
这一题可以通过以下方法简化计算,用到了evaluate函数
一、在微软的Excel中需要先在定义名称中,定义一下,步骤如下:

1、定义名称
image.png
2、=EVALUATE(SUBSTITUTE(SUBSTITUTE(A1,"m","*1"),"y","*0.1"))
image.png
3、用于公式,得到算式结果
image.png

二、如果是在WPS中,则相对简单,evaluate函数可以直接使用,不用定义名称,示意图如下
image.png




test-20230504.zip

7.35 KB, 下载次数: 4

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-4 14:06 | 显示全部楼层
lpf127 发表于 2023-5-4 13:15
这一题可以通过以下方法简化计算,用到了evaluate函数
一、在微软的Excel中需要先在定义名称中,定义一下 ...

首先感谢解答,嗯,参考后应该是最优解了,但wps数据计算结果y的是不是错误结果?B2应该=0.8吧,B4应该=2.4,Excel会没有wps好用?多出了定义名称这个繁琐步骤

TA的精华主题

TA的得分主题

发表于 2023-5-4 14:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
在WPS中输入公式
  1. =EVALUATE(IF(RIGHT(A1)="m",LEFT(A1,LEN(A1)-1),"("&LEFT(A1,LEN(A1)-1)&")*0.1"))
复制代码

TA的精华主题

TA的得分主题

发表于 2023-5-4 14:32 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
EXCEL中需要自定义名称(输入=EVALUATE(IF(RIGHT(Sheet1!A1)="m",LEFT(Sheet1!A1,LEN(Sheet1!A1)-1),"("&LEFT(Sheet1!A1,LEN(Sheet1!A1)-1)&")*0.1")))
微信截图_20230504143121.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-5-4 14:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
樊sir 发表于 2023-5-4 14:06
首先感谢解答,嗯,参考后应该是最优解了,但wps数据计算结果y的是不是错误结果?B2应该=0.8吧,B4应该=2. ...

题目没看清,是整理结果乘以0.1,我是直接把m替换成*1,把y替换成*0.1的,修正后应该是EVALUATE("(" & SUBSTITUTE(SUBSTITUTE(A1,"m",")*1"),"y",")*0.1"))

TA的精华主题

TA的得分主题

发表于 2023-5-4 14:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
lpf127 发表于 2023-5-4 14:40
题目没看清,是整理结果乘以0.1,我是直接把m替换成*1,把y替换成*0.1的,修正后应该是EVALUATE("(" & SU ...

image.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-4 15:47 | 显示全部楼层
my0745 发表于 2023-5-4 14:32
EXCEL中需要自定义名称(输入=EVALUATE(IF(RIGHT(Sheet1!A1)="m",LEFT(Sheet1!A1,LEN(Sheet1!A1)-1),"("&LE ...

是的,这个公式的杂程度较高,我不是很理解公式,Excel还需要自定义一个名称的步骤比较繁琐

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-4 15:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

实测效果一致,能不能解读一下这条公式,授人以鱼不如授人以渔感谢

TA的精华主题

TA的得分主题

发表于 2023-5-4 15:59 | 显示全部楼层
樊sir 发表于 2023-5-4 15:47
是的,这个公式的杂程度较高,我不是很理解公式,Excel还需要自定义一个名称的步骤比较繁琐

公式不复杂,无非就是对最后一个字符是m还是y进行判断,生成一个可以在宏表函数中计算的表达式,然后带入到宏表函数中进行计算。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-1 11:58 , Processed in 0.031089 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表