Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel公式-索引匹配地址间接排名.avg_Excel_Excel Formula_Cell - Fatal编程技术网

Excel公式-索引匹配地址间接排名.avg

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的

需要帮助制作配方

我有SQL格式的数据,正在导出到excel。在excel中,使用公式根据某一周范围/数组中的值确定零件的等级。列是每周存储桶,每次导出时,每周存储桶都会更改(过去没有日期)。我希望排名保持固定在一个特定的日期,但每个出口每周的具体列由1列向内

我需要一个excel公式,它可以找到特定值在每周bucket数组中的位置。确定后,我需要另一个公式来转换此列地址(例如“AX”),以供rank.avg函数引用

我猜这是match、index、cell、indirect和rank.avg的组合。到目前为止,我只尝试了第一部分,但无法让cell(“col”,(index(match)))返回它所在列的字母值。它返回列的#

下面是一个例子

  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修复了排除第一行数据的公式。