Excel公式 – 索引匹配地址间接rank.avg
需要帮助制定公式。
我有SQL中的数据,导出到Excel。 在excel中有一个基于某个范围/数组中某个星期的值来确定部件的排名的公式。 这些列是每周一次的桶,每次我输出时,每周的桶会改变(过去没有date)。 我想排名保持固定的具体date,但每个出口每周的具体列向内1列。
我需要一个Excel的公式,它可以find每周桶数组中特定值的位置。 在确定之后,我需要另一个公式来转换这个列地址(例如“AX”)以由rank.avg函数引用。
我猜这是匹配,索引,单元格,间接,&rank.avg的一些组合。 到目前为止,我只尝试了第一部分,不能得到单元格(“col”,(index(match)))返回它所在列的字母值。它返回列的#号。
这里是例子
ABCD 1 Part Rank(C) 11/28/17 12/04/17 2 Part A 1 $100 $100 3 Part B 2 $50 $125 4 Part C 3 $25 $200
B列的排名公式是确定列C中的部分(A,B,C)的等级。列C从硬编码确定到11/28/17。
我卡在= CELL(“address”,INDEX(C1:D1,1,MATCH(43067,C1:D1,0)))。 当我只想要$ C或者只是C时,这将返回$ C $ 1。之后,我打算使用间接的方式将其传递给rank函数。 任何协助将不胜感激,如果有人可以填补公式的差距或想出一个更简单的方法来做到这一点。
缺口
是的,摆脱ADDRESS和INDIRECT,只要把列放在COUNTIF公式中。
ADDRESS和INDIRECT是不稳定的。 这是一个非易失性和非数组公式,可以在一个步骤中完成您想要的任务:
=COUNTIF(INDEX(C:D,2,MATCH(43067,$C$1:$D$1,0)):INDEX(C:D,1040000,MATCH(43067,$C$1:$D$1,0)),">" & INDEX(C:D,ROW(),MATCH(43067,$C$1:$D$1,0))) + 1
为了获得专栏信,你可以使用Address
和Substitute
:
=SUBSTITUTE(ADDRESS(1,MATCH(43067, C1:D1,0)+2,4), "1", "")
地址取一列和一行并吐出一个单元格。 所以我们只是总是引用第1行,无论从地址返回哪一列( +2
因为我们是在匹配中的C
开始)。 然后我们用返回的单元格地址中的1
replace掉没有任何内容的列字母。
那么,如果你的公式以C1
forms返回单元格引用,你可以用下面的方式来包装它:
=CHAR(64+COLUMN(C1))
只需改变你的公式C1
。