ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 难:多层判断一列金额应归属的打折率标准

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-7-20 15:37 | 显示全部楼层 |阅读模式
各位老师,本求助附件共有两个实例(分A、B两个类别),都是求G列的合计金额应归属的打折率标准(见附件中分别不同的两个“最低打折率标准”),附件中有模拟效果。请老师用公式解决,而且这个公式便于今后根据变动后的“最低打折率标准”进行修改。谢谢大家!在线等。

判断一列金额应归属的打折率标准.rar

6.04 KB, 下载次数: 27

TA的精华主题

TA的得分主题

发表于 2017-7-20 16:06 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
你的打折率标准的下限有两种不同要求:{"1~<3000";"≥3000~≤10000";">10000~≤30000";">30000~≤50000";">50000"}——10000以下(下限)是大于等于"≥3000"),10000以上是大于(">10000"、">30000"、">50000")?——这样还要分两段写,(不能统一吗):

H5
  1. =IF(OR(G5={"",0}),"",IF(G5="老单",0.75,IF(G5<=10000,LOOKUP(G5,{1;3000},$N$6:$N$7),LOOKUP(G5,{10000;30000;50000}+0.001,$N$8:$N$10))))
复制代码

(G列看上去的空单元格有真空和0两种)

TA的精华主题

TA的得分主题

发表于 2017-7-20 16:21 | 显示全部楼层
  1. =IF(I5="老单",0.75,LOOKUP(G5*1-1%,{-0.01;1;10000;30000;50000},TEXT(N$5:N$9,"0.00;0;0;!0")*1))
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2017-7-20 16:25 | 显示全部楼层
本帖最后由 象山海鲜 于 2017-7-20 16:28 编辑
  1. =IF(G5,IF(I5="老单",75,LOOKUP(,0/FREQUENCY(G5%+(G5=3000),{30,100,300,500}),{88;85;83;80;78}))%,"")
复制代码

评分

3

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-7-20 16:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 laoshenji 于 2017-7-20 16:55 编辑
wangjguo44 发表于 2017-7-20 16:06
你的打折率标准的下限有两种不同要求:{"1~

回老师,这些“最低打折率标准”是硬性规定,不能修改和统一,请老师多多费费心。谢谢!另:您的答案在“A类”表里没有得出正确结果。

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-7-20 17:04 | 显示全部楼层

谢谢袁勇老师的正确答案,A类判断问题已经解决,但B类判断问题尚未解决。注:B类“最低打折率”标准与A类不同。谢谢老师费心再给个答案!

TA的精华主题

TA的得分主题

发表于 2017-7-20 17:12 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 孤山月 于 2017-7-20 17:14 编辑

A类判断打折率=IF(I5="老单",75%,IF(G5>50000,80%,IF(AND(G5>30000,G5<=50000),83%,IF(AND(G5>10000,G5<=30000),85%,IF(AND(G5>1,G5<=10000),88%)))))
B类判断打折率=IF(I5="老单",75%,IF(G5>50000,78%,IF(AND(G5>30000,G5<=50000),83%,IF(AND(G5>10000,G5<=30000),85%,IF(AND(G5>1,G5<=10000),88%)))))

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-7-20 17:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 laoshenji 于 2017-7-20 17:16 编辑

谢谢象山老师的正确答案,B类判断问题已经解决,但学生还想向您讨要一个A类判断问题的同类易懂公式。注:A类“最低打折率”标准与B类不同。再谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-7-20 17:23 | 显示全部楼层
孤山月 发表于 2017-7-20 17:12
A类判断打折率=IF(I5="老单",75%,IF(G5>50000,80%,IF(AND(G5>30000,G510000,G51,G550000,78%,IF(AND(G5>300 ...

谢谢孤山月老师。您的A类判断打折率的公式是正确的,但G列为空格时均显示错误值。B类判断打折率的公式不能得出正确结果(G列为空格时也均显示错误值)。

TA的精华主题

TA的得分主题

发表于 2017-7-20 17:38 | 显示全部楼层
laoshenji 发表于 2017-7-20 17:04
谢谢袁勇老师的正确答案,A类判断问题已经解决,但B类判断问题尚未解决。注:B类“最低打折率”标准与A类 ...
  1. =IF(I5="老单",0.75,LOOKUP(G5*1-1%%,{-0.0001;1;2999.9999;10000;30000;50000},TEXT(N$5:N$10,"0.00;0;0;!0")*1))
复制代码

评分

2

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-25 19:22 , Processed in 0.045504 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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