|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
老师这篇讲的很好,我这几天正好做公式在用INDIRECT和ADDRESS,公式报错,我感觉和INDIRECT和ADDRESS有关,但是一直找不出问题,老师能分析一下。
想做一个公式,向上查找同一列中与当前数相同的最近的相同数,然后取相同数下面的两个数。
原公式不灵活
=OFFSET(Sheet2!B1,LARGE(IF(LOOKUP(B6,Sheet2!B3:B31)=Sheet2!B3:B31,ROW(Sheet2!B3:B31),0),2),,2) 想对公式进行改进,适合动态增加数据的需要
新公式提示有错,光标停在COUNT(INDIRECT("Sheet2!B1:"&"B"&MATCH中的MATCH这里,找不出原因,求高人指点一下。
此新公式动态灵活,就是复杂了些,公式中Sheet2!B3:B31的首尾根据实际情况求出,新公式改进的重点在这。
=OFFSET(Sheet2!B1,LARGE(IF(LOOKUP(INDEX(B:B,MATCH(A6,A:A,0)),INDIRECT(ADDRESS(MATCH(A6,Sheet2!A:A,0)-COUNT(INDIRECT("Sheet2!B1:"&"B"&MATCH(A6,Sheet2!A:A,0)))+1,2,4,,"Sheet2")&":"&ADDRESS(MATCH(A6,Sheet2!A:A,0),2,4)))=INDIRECT(ADDRESS(MATCH(A6,Sheet2!A:A,0)-COUNT(INDIRECT("Sheet2!B1:"&"B"&MATCH(A6,Sheet2!A:A,0)))+1,2,4,,"Sheet2")&":"&ADDRESS(MATCH(A6,Sheet2!A:A,0),2,4)),ROW(INDIRECT(ADDRESS(MATCH(A6,Sheet2!A:A,0)-COUNT(INDIRECT("Sheet2!B1:"&"B"&MATCH(A6,Sheet2!A:A,0)))+1,2,4,,"Sheet2")&":"&ADDRESS(MATCH(A6,Sheet2!A:A,0),2,4))),0),2),,2)
|
|