Excel公式-索引匹配地址间接排名.avg
需要帮助制作配方 我有SQL格式的数据,正在导出到excel。在excel中,使用公式根据某一周范围/数组中的值确定零件的等级。列是每周存储桶,每次导出时,每周存储桶都会更改(过去没有日期)。我希望排名保持固定在一个特定的日期,但每个出口每周的具体列由1列向内 我需要一个excel公式,它可以找到特定值在每周bucket数组中的位置。确定后,我需要另一个公式来转换此列地址(例如“AX”),以供rank.avg函数引用 我猜这是match、index、cell、indirect和rank.avg的组合。到目前为止,我只尝试了第一部分,但无法让cell(“col”,(index(match)))返回它所在列的字母值。它返回列的# 下面是一个例子Excel公式-索引匹配地址间接排名.avg,excel,excel-formula,cell,Excel,Excel Formula,Cell,需要帮助制作配方 我有SQL格式的数据,正在导出到excel。在excel中,使用公式根据某一周范围/数组中的值确定零件的等级。列是每周存储桶,每次导出时,每周存储桶都会更改(过去没有日期)。我希望排名保持固定在一个特定的日期,但每个出口每周的具体列由1列向内 我需要一个excel公式,它可以找到特定值在每周bucket数组中的位置。确定后,我需要另一个公式来转换此列地址(例如“AX”),以供rank.avg函数引用 我猜这是match、index、cell、indirect和rank.avg的
A B C D
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的秩
我被困在=单元格(“地址”,索引(C1:D1,1,匹配(43067,C1:D1,0)))。当我只需要$C或C时,它返回$C$1。之后,我打算将其与间接函数一起使用,以便能够通过rank函数传递它。如果有人能填补公式上的空白或想出一种更简单的方法,任何帮助都将不胜感激
Nick只需获得您可以通过
地址和替代物获得的列字母:
=SUBSTITUTE(ADDRESS(1,MATCH(43067, C1:D1,0)+2,4), "1", "")
地址接收一列和一行,并输出一个单元格。所以我们总是引用第1行和从address返回的任何列(+2
,因为我们在匹配中从C
开始)。然后,我们从返回的单元格地址中替换出1
,列字母不留任何内容。是,去掉地址和间接,将列放入COUNTIF公式中
地址和间接地址是不稳定的。这是一个非易失性和非数组公式,可在一个步骤中实现所需的功能:
=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
如果您的公式以C1
的形式返回单元格引用,您可以使用以下内容将其包装:
=CHAR(64+COLUMN(C1))
只要用你的公式更改一下C1就行了。你的排名不是因为日期包含在计数中而得到1吗?我希望您希望排除第1行,但将1添加到COUNTIF结果以获得正确的结果rank@Scott谢谢你的帮助。我已成功修改它,以便在我的文件中使用它!该数组大约有53列,而不是120行。我不确定我是否完全理解这个公式,在我不那么忙的时候,我将不得不逐步完成它。但是,您是对的,它是一步到位的(快速),并且文件大小没有失控。你似乎完全偏离了等级公式,它是有效的。有一些小的奇怪的东西(比如它从10级跳到12级,跳过11级),但似乎是准确的。我想我根本不会想到这个。好把戏。@barryhoudini,是的,你是对的。我会修好的。我太懒了。@barryhoudini你可能是对的,实际上我的最高成绩排名为0(预期为1),所以我在公式末尾只做了+1。添加日期可能是正确的,但我担心的是大$$,而日期太小,无法影响我在此应用程序中的排名。@Nicho247修复了排除第一行数据的公式。