excel公式index()不返回动态行号-EXCEL 2013的行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel公式index()不返回动态行号-EXCEL 2013的行相关的知识,希望对你有一定的参考价值。

我需要使用公式将excel表排序到其他范围,如下所示:

Oritinal table:
    A      B      C      D              
1   name val1   val2    val3                  name  val1   val2    val3
2   NN   5.70   0.50    1.20                    LD  2.30   0.90    2.40
3   LD   2.30   0.90    2.40   sort by val1=>   PL  4.60   0.80    3.30
4   PL   4.60   0.80    3.30                    NN  5.70   0.50    1.20

step1:使用数组公式{= INDEX($ A $ 2:$ D $ 4,MATCH(小($ B $ 2:$ B $ 4,ROW() - ROW(A $ 7)+1),$ B $ 2:$ B $ 4, 0),0)},我得到以下结果:

7 LD    LD    LD    LD
8 PL    PL    PL    PL
9 NN    NN    NN    NN

step2:然后我测试了索引公式为{= INDEX($ A $ 2:$ D $ 4,2,0)},这里我指定了一个静态行号,索引函数按预期返回一个完整行:

7 LD    2.3    0.9    2.4
8 LD    2.3    0.9    2.4
9 LD    2.3    0.9    2.4

step3:然后另一个带有动态行号的测试为{= INDEX($ A $ 2:$ D $ 4,ROW() - 6,0)},现在该函数只返回第一列作为step1:

7 NN    NN    NN    NN
8 LD    LD    LD    LD
9 PL    PL    PL    PL

为什么index()只返回带动态行号的第一列?

如何使用公式对表进行排序(没有vba,没有GUI操作)?

答案

为什么index()只返回带动态行号的第一列?

它应该是=INDEX($A$2:$D$4,0,Column())

如何使用公式对表进行排序(没有vba,没有GUI操作)?

您可以。您可以使用small()或large()函数来获取val1,然后使用index / match或vlookup根据您获得的val1填充其他值。 (如果你/其他人被困,请评论)。

+ ---- [编辑] + ----

实施:

使

G2 = 1
G3 = 2
G4 = 3

H2       =INDEX(A:A,MATCH($I2,$B:$B,0))
I2       =SMALL(B:B,G2)
J2       =INDEX(C:C,MATCH($I2,$B:$B,0))
K2       =INDEX(D:D,MATCH($I2,$B:$B,0))

并拖动到K4。完成。

希望有所帮助。 (:

以上是关于excel公式index()不返回动态行号-EXCEL 2013的行的主要内容,如果未能解决你的问题,请参考以下文章

excel公式问题,获取行号列号之后,如何获取该单元格内的值。

excel中如何在几中列查找并返回第一列

EXCEL VLOOKUP函数怎么返回多列结果

EXCEL表格里,下面的公式是啥意思 INDEX(T$59:T$216,MATCH($B16&$C16,$B$59:$B$216&$C$59:$C$216,0))*$D

在excel中横向拖动公式,如何实现引用的单元格地址行号递增?

请问excel查询语句如何写?