阶梯价格怎么用excel设置 excel中如何设定范围值设定价格

经验直达:

  • excel中如何设定范围值设定价格
  • 阶梯价格怎么用excel设置
  • excel价格自动填充怎么设置

一、excel中如何设定范围值设定价格


方法一:使用数据透视表:最大功能就是去重 , 合并同类项
1、 点击开始—插入—数据透视表—选中要创建的区域以及目标区域—确定
2、 将字段添加到行标签就OK了
【阶梯价格怎么用excel设置 excel中如何设定范围值设定价格】
阶梯价格怎么用excel设置 excel中如何设定范围值设定价格

方法二:选中A列数据数据区域,选择【数据】-【删除重复项】
阶梯价格怎么用excel设置 excel中如何设定范围值设定价格

方法三:公式法输入=INDEX(A$1:A$10,MATCH(0,COUNTIF(B$1:B1,A$1:A$10),0))&"", 数组公式需要Ctrl Shift Enter三键结束
阶梯价格怎么用excel设置 excel中如何设定范围值设定价格

方法四:利用高级筛?。孩傺≈蠥列的数据区域 , 选择【数据】-【筛选】-【高级】
②选择【将筛选结果复制到其他位置】,选择一个单元格作为存储筛选结果的起始单元格,如B1.勾选【选择不重复的记录】 , 确定
阶梯价格怎么用excel设置 excel中如何设定范围值设定价格

方法五:函数公式结合筛选法:
① 在E列增加一辅助列,在E2中录入公式:=COUNTIF($D$2:$D2,D2),回车,函数返回1 , 然后向下复制填充,函数公式就将D列姓名从D2开始到姓名所在行所出现的次数统计出来了 。
②点击数据—筛选—将【全选】前面的勾勾去掉 , 将【1】前面的勾勾勾选上
阶梯价格怎么用excel设置 excel中如何设定范围值设定价格



二、阶梯价格怎么用excel设置


假设单价在D列 。以D2单元格为例,在F2输入公式:=if(D2<=20,D2*3.6,20*3.6 (D2-20)*4.8) 如果需要乘以数量,直接在这个公式的基础上乘以数量单元格即可)以下 6元/每斤,5到10 ...
今天也是一个实战问题,关于卖水果的美女的,让帮忙统计一下一共赚了多少钱?

老工具人上线……
需求说明:最近水果店搞活动,一次性购买相同水果,不同重量下单价不同,比如购买芒果 , 5斤(包括)以下 6元/每斤,5到10斤,单价是5.6,购买越多,单价越低!
现在需要根据客户购买的重量来获取对应的价格,计算一下金额!

?

这个需求的难点,在于既需要水果名称查找,还需要根据区间匹配!很多同学 , 知道精确匹配 , 直接VLOOKUP MATCH即可,但是这个是区间就不知道怎么处理了!
重点就是如何找到对应水果、对应重量下的单价,其实比较简单!我们先先根据原来的设定写一下公式 , 再来解读和优化!
▼ 请读懂我,我只是一条卑微的公式……
=VLOOKUP(B2,$F$2:$K$7,IFERROR(MATCH(C2,$G$1:$K$1) 2,2),0)
点击重新加载

这里的核心主要还是在MATCH函数,MATCH函数根据第三参数的不同有三种匹配模式,使用最多的就是精确匹配,就是完全匹配 , 一般第三参数使用0或者只写一个逗号
虽然和本次公式关系不大,但是使用频率比较高,我们就顺带讲一下!

MATCH 精确匹配 - 第三参数0或者简写(只写逗号)
返回查找值,在查找区域中首次出现的位置!如果找出不到就会报错
?

这是最常见的用法! 本次的需求显然用不上这种精确匹配!
MATCH升序查找模式
这里我们看一下官方对于第三参数的说明:
?

本次我们案例中使用的就是1或者省略!我们解读一下其中
两大要点:
1、第二参数必须升序,本案例完全符合要求
2、返回小于等于查找值的最大值 。
对于第二点,我们补充一下,比如我们查找为10 , 在{1,3,5,10,20} 区间中
先找到比小于等于10的 有{1,3,5,10} , 其中最大值也就是10,所以返回10对应的位置 。

方便解读,我们把公式图片再贴一次:
点击重新加载

为什么要 2 , MATCH匹配是从G列开始的 , 也就是如果能匹配到最小是1
而我们VLOOKUP是从F列名称开始的,第一个5价格对应的就是2,那么我们应该加上1吗?
其实不对,这里还有一个坑 , 就是5元以下的问题 , 在表里没有体现,也就是没有列出来 , 列出来第一个应该是0,IFERROR的出现,也就是为了处理这个问题!正确的区间设置应该是!本身100斤以上不考虑 建立如附图的对应表,然后在B13单元格输入以下公式,并向下填充公式 =LOOKUP(A13,A$2:A$8,C$2:C$8)*A13即可 Microsoft Excel是微软公司的办公软件Microsoft office的组件之一,是由Microsoft为Windows和Apple Macintosh操作系统的电脑而编写和运行的一款试算表软件 。
Excel 是微软办公套装软件的一个重要的组成部分 , 它可以进行各种数据的处理、统计分析和辅助决策操作 , 广泛地应用于管理、统计财经、金融等众多领域


三、excel价格自动填充怎么设置


可以用Vlookup函数公式来进行统计 , 再用函数公式分别填入单价;但是软件导出的表格每一页都有一个表头 , 而表头的单元格是合并的 , 我们都知道单元格在下拉的时候遇到大小不同的合并单元格就会出现拉不走的情况;这时候VBA就派上用场了,我们来看一下用VBA做这件事的步骤:

步骤 1 ▼ 提取

Excel数据高速处理,实现一键填价
这里对计价表中的名称、项目特征描述里的规格型号或者材质进行提取,我们选中表格的上一行直接下拉至结束,内容自动提?。咛逵τ萌缦拢?br>
函数公式一,提取文字▼

=TRIM(MID(SUBSTITUTE(配电工程!D6,CHAR(10),REPT(" ",100)),100,99))
这个函数公式实现对单元格内的多行文本的第二行文字提取 。

函数公式二,提取指定字符▼

=IFERROR(IF(FIND("型号",G6),RIGHT(G6,LEN(G6)-FIND("型号",G6) 1)),"")&IFERROR(IF(FIND("材质",G6),RIGHT(G6,LEN(G6)-FIND("材质",G6) 1)),"")&IFERROR(IF(FIND("规格",G6),RIGHT(G6,LEN(G6)-FIND("规格",G6) 1)),"")
这个函数公式实现只提取含有型号、材质、规格的文字 。

函数公式三:提取名称并合并规格型号▼

=IF(IF(AND(I6<>"",G6<>""),配电工程!C6&H6&I6,IFERROR(MID(配电工程!D6,FIND(":",配电工程!D6) 1,FIND(CHAR(10),配电工程!D6)-1-FIND(":",配电工程!D6)),LEFT(配电工程!D6,FIND(CHAR(10),配电工程!D6&CHAR(10))-1)))="项目特征描述","",IF(AND(I6<>"",G6<>""),配电工程!C6&H6&I6,IFERROR(MID(配电工程!D6,FIND(":",配电工程!D6) 1,FIND(CHAR(10),配电工程!D6)-1-FIND(":",配电工程!D6)),LEFT(配电工程!D6,FIND(CHAR(10),配电工程!D6&CHAR(10))-1))))
该函数公式提取项目特征描述里的名称,合并上一步骤提取的指定字符 。

VBA:一键删除重复值▼

Sub 去重复提取()Range("F6:F336").SelectSelection.Copy'选中F6:F336区域并复制ActiveWindow.SmallScroll Down:=-18Range("C6").SelectSelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseApplication.CutCopyMode = FalseActiveSheet.Range("$C$5:$C$336").RemoveDuplicates Columns:=1, Header:=xlYesActiveWorkbook.Worksheets("参数设置").Sort.SortFields.Clear'选中C5:c336并去重复With ActiveWorkbook.Worksheets("参数设置").Sort.SetRange Range("C5:C336").Header = xlYes.MatchCase = False.Orientation = xlTopToBottom.SortMethod = xlPinYin.ApplyEnd WithActiveWindow.SmallScroll Down:=-9End Sub
利用VBA实现一键对上一步骤中提取的全部项进行去重复处理 。

步骤 2 ▼ 汇总

同样的选中第一行单元格,下拉就完成汇总,然后填入每一项的单价就可以了 。

步骤 3 ▼ 填价

这里利用VBA自动根据汇总表的分部分项单价进行查找匹配,将对应的价格填入到清单计价表的单价中,VBA代码如下:

Sub 填入单价()Dim arr, d As ObjectDim lr&, i&, j%With Sheets("汇总表")arr = .Range("A5:I" & .Range("E65536").End(xlUp).Row - 1)End WithSet d = CreateObject("scripting.dictionary")For i = 1 To UBound(arr)If Not d.exists(arr(i, 1) & arr(i, 5)) Then d(arr(i, 1) & arr(i, 5)) = arr(i, 7) & Chr(9) & arr(i, 9)'i1和i5为A列和E列 , i,7为汇总表A列起第7列,即G列(单价)Nextlr = Range("E65536").End(xlUp).Row - 1arr = Range("A1:K" & Range("A65536").End(xlUp).Row - 1)For i = 1 To UBound(arr)If d.exists(arr(i, 1) & arr(i, 5)) Then '此处i1和i5为计价表第1列和第5列For j = 8 To 8If Not Cells(i, j).HasFormula Then Cells(i, j) = Split(d(arr(i, 1) & arr(i, 5)), Chr(9))(j - 8)'i,1和i,5为清单计价表第1列(A列)和第5列(E列)与第9行i1和i5匹配,填入i,7(既第9行-汇总表G列值)到j-8(计价表第8列)NextEnd IfNextEnd Sub

相关经验推荐