过罗了你 发表于 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

感谢大佬的答复
页: 1 2 [3]
查看完整版本: 菜鸟求助:不同的日期,提取数据