过罗了你
发表于 2021-11-17 23:07:45
=INDEX(OFFSET(G23,MATCH(L5,A1:A23,0)-ROW(A23),,-IFERROR(MATCH(L5-1,IF(ISNUMBER(A1:A23),A1:A23,""),1),-3)+MATCH(L5,IF(ISNUMBER(A1:A23),A1:A23,""),0)),MATCH(L7,OFFSET(A23,MATCH(L5,A1:A23,0)-ROW(A23),,-IFERROR(MATCH(L5-1,IF(ISNUMBER(A1:A23),A1:A23,""),1),-3)+MATCH(L5,IF(ISNUMBER(A1:A23),A1:A23,""),0)),0))
数组公式
思路决定成败啊,向楼上学习,太强大了。
豪车
发表于 2021-12-1 05:42:19
大佬真是太厉害了!
我看不懂,望大佬能教我
毛衣死于起球儿
发表于 2021-12-3 00:33:41
大国石匠大佬的公式精妙在用offset来创建了动态的数据表,让vlookup通过条件来查找到你想要的数据。首先你要先了解offset函数,然后再读懂MATCH(1,FREQUENCY(1,N(OFFSET(A1,MATCH(L5,A:A,)-1,,99)="")),)这部份,你就明白了
胐龏眷
发表于 2021-12-4 06:37:40
MATCH(1,FREQUENCY(1,N(OFFSET(A1,MATCH(L5,A:A,)-1,,99)="")),)
现在就这一段公式看不懂
走在成长的道路上
发表于 2021-12-6 04:20:47
MATCH(1,FREQUENCY(1,N(OFFSET(A1,MATCH(L5,A:A,)-1,,99)="")),)
现在就是这条公式看不懂
候学忠
发表于 2021-12-13 23:51:35
1.大方向思路是VLOOKUP,只是这里的格式造成VLOOKUP的区域不是简单的选一下,必须去算出来;
2.MATCH(1,FREQUENCY(1,N(OFFSET(A1,MATCH(L5,A:A,)-1,,99)="")),)就是取得VLOOKUP的查找区域是有几行,个人习惯多套了层FREQUENCY只是为了不喜欢数组的三键结束。正常取得的套路是=MATCH(1=1,OFFSET(A1,MATCH(L5,A:A,)-1,,99)="",)
不甩头发
发表于 2021-12-14 10:00:06
=INDIRECT(TEXT(SMALL((IF(($A$1:$A$23=$L7)*(ROW($A$1:$A$23)>MATCH($L$5,A:A,0)),ROW($A$1:$A$23),9^9)),1)*100+MATCH($M$6,$A$2:$G$2,0),"R0C00"),)
请用数组公式CTRL+SHIFT+ENTER
我用另外一种方法解决这个问题 供参考
思路大概是这个样子就是通过计算行列数来把数据定位呈现出来
1. 用日期定位到行数 (起点行数比较简单 用一个Match即可)
2. 找到终点行数 这个比较困难 后来决定使用数据来判断 用用户数据去定位 找到大于七点行数的最小行数
3. 找到客户收益的列数
4. 通过INDIRECT+TEXT函数来把数据呈现出来
捉不到的自由
发表于 2021-12-19 19:56:47
感谢大佬的答复
咆哮的爱斯基摩
发表于 2021-12-28 14:42:19
感谢大佬的答复