|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
工作表如下图所示
表A中三列都是手动逐行添加,且不允许进行筛选排序等操作。按照账单号排序。账单号不断增加,也会出现新客人名字和不固定的金额。(即不断随着表A的录入,自动生成表B),
表B中两列都是公式计算。要求“姓名”列出现所有客人的名字,不能重复。“最后一次消费金额”列是所对应客人最后消费的金额。(最好不用vb实现,仅使用公式或定义名称等)
----------
大神帮我分析一下,这几列公式的意思:
D列中=IF(B2<>"",ISNA(MATCH(B2,OFFSET($B$1,0,0,ROW()-1,1),0))*ROW(),"")
if函数、MATCH函数我比较熟悉
E列中=IF(ROW()<=COUNTIF(D:D,">0")+1,INDEX(B:B,LARGE(D:D,COUNTIF(D:D,">0")-ROW()+2)),"")
COUNTIF、INDEX函数我也知道
F列中=INDEX(C:C,MAX((E2=B:B)*ROW(B:B)))
MAX函数我知道,MAX((E2=B:B)*ROW(B:B))这个就不明白了
G列中=LOOKUP(1,0/(E2=B:B),C:C)
LOOKUP函数不是模糊查找么?这个函数我理解的意思是,查找1,在0/(E2=B:B)中查找,然后返回C列的值,问题是0/(E2=B:B)不是只有两个值吗,它是根据什么引用的,F列跟G列的公式不一样,得到的结果是一样的
工作表中,A列的账单号有什么意义吗?貌似没有引用到啊,另外还有什么更简单的函数实现这个功能吗?比如说表A我输入相关信息后,B列我手动输入一堆姓名及C列的一堆消费信息,然后E列中自动(或手动输入姓名)后,在F列中自动引用最后一次的消费金额。
下面是这个工作表
数组公式-最后一次消费金额.rar
(9.72 KB, 下载次数: 1)
|
|