编辑:[db:作者] 时间:2024-08-25 00:51:48
在某平台看到一个提问案例,涉及到数据规范性比较有代表性,拿来给大家分享下。
仿照的原数据如图1所示,实在是没有排序的。便是常用的LOOKUP查找家族也拿它没辙。本日禀享两种办法办理此问题。
1. 通用版本,利用VLOOKUP只查找第一次涌现的数据特性,先把数据按照名称升序、日期降序的自定义排序办法前辈行排序。如图2所示。
先用万金油公式把累计次数为1的商品求出来。=IFERROR(INDEX($J$2:$J$21,SMALL(IF($L$2:$L$21=1,ROW($L$2:$L$21),9999)-1,ROW(1:20))),""),(这里不做详细阐明了,下期单独分享万金油)。如图3所示的第1列。
先用IF({1,0})构建一个查找区域,用VLOOKUP函数求出日期。(由于日期实质是数字,这里要修正下数字格式)。如图4所示。 =VLOOKUP(N2,IF({1,0},$J$2:$J$21,$I$2:$I$21),2,0)
然后求出金额。如图5所示。
2. OFFICE365及WPS最新版。
提出问题的这个网友说我用的WPS,能不能做出模版往后直接套。第一步就行不通了,这里该LAMADA及LET函数上场了。
如图6所示,大概要构建查找值 、 排序后新的数组 、 XLOOKUP中的查找区域、XLOOKUP中的结果区域,大概用的函数SORT CHOOSECOLS HSTACK 等等,得到如图7,=SORT(LET(A,A1:C21,B,DROP(SORT(A,,1),-1),C,UNIQUE(CHOOSECOLS(B,2)),HSTACK(C,XLOOKUP(C,CHOOSECOLS(B,2),CHOOSECOLS(B,1),,,-1),XLOOKUP(C,CHOOSECOLS(B,2),CHOOSECOLS(B,3),,,-1))),,1)
(A,A1:C21,B,DROP(SORT(A,,1),-1),C,UNIQUE(CHOOSECOLS(B,2),这里分别把A1:C21 赋值给变量A, DROP(SORT(A,,1),-1)对变量A排序去掉标题复制给B,UNIQUE(CHOOSECOLS(B,2) 提取变量B里的第二列的唯一值赋值给C。
HSTACK(C,XLOOKUP(C,CHOOSECOLS(B,2),CHOOSECOLS(B,1),,,-1),XLOOKUP(C,CHOOSECOLS(B,2),CHOOSECOLS(B,3),,,-1))),,1) ,这里用XLOOKUP搜素模式向上查找模式,也便是末了一个参数选-1。利用CHOOSECOLS函数把变量B里的第2列、第1列、第3列构建出XLOOKUP家族的商品名称的查找值的查找区域,商品日期的结果列区域、商品金额的结果列区域。末了把 变量C、 查找的日期及金额用HSTACK函数组合在一块。如图7所示。
末了嵌套LAMBDA函数,创造只有区域是重复利用的,赋值给变量X。如图8所示。
LAMBDA函数测试成功,在公式-名称管理器里定义一个名为“SSSS”的函数:fx=ssss(x),这里有点像我们高中学的函数了吧。我们把LAMBDA里的SORT(LET(A,A1:C21,B,DROP(SORT(A,,1),-1),C,UNIQUE(CHOOSECOLS(B,2)),HSTACK(C,XLOOKUP(C,CHOOSECOLS(B,2),CHOOSECOLS(B,1),,,-1),XLOOKUP(C,CHOOSECOLS(B,2),CHOOSECOLS(B,3),,,-1))),,1)运算规则定义为SSS,函数变量定义为X,X参数必须是跟案例一样的单元格区域。如图10所示。
终极效果如图11所示。如果觉得也用欢迎点赞收藏+关注,也可以联系我要源文件作为模版文件。
本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除,如需转载请保留原文地址:http://www.baanla.com/xyj/53199.html
下一篇:返回列表
Copyright 2005-20203 www.baidu.com 版权所有 | 琼ICP备2023011765号-4 | 统计代码
声明:本站所有内容均只可用于学习参考,信息与图片素材来源于互联网,如内容侵权与违规,请与本站联系,将在三个工作日内处理,联系邮箱:123456789@qq.com