excel公式索引()未返回具有动态行号的行-excel 2013
我需要使用公式将excel表格排序到其他范围,如下所示:excel公式索引()未返回具有动态行号的行-excel 2013,excel,excel-formula,Excel,Excel Formula,我需要使用公式将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
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
步骤1:使用数组公式{=INDEX($A$2:$D$4,MATCH(SMALL($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
步骤2:然后我测试了索引公式为{=index($A$2:$D$4,2,0)},在这里我指定了一个静态行号,index函数按预期返回了一整行:
7 LD 2.3 0.9 2.4
8 LD 2.3 0.9 2.4
9 LD 2.3 0.9 2.4
步骤3:然后是另一个测试,动态行号为{=INDEX($A$2:$D$4,row()-6,0)},现在函数只返回第一列作为步骤1:
7 NN NN NN NN
8 LD LD LD LD
9 PL PL PL PL
为什么index()只返回具有动态行号的第一列
如何仅使用公式对表进行排序(无vba,无GUI操作)
为什么index()只返回具有动态行号的第一列
它应该是=索引($A$2:$D$4,0,Column())
如何仅使用公式对表进行排序(无vba,无GUI操作)
你可以。您可以使用small()或large()函数来获取val1,然后使用index/match或vlookup根据您得到的val1填充其他值。(如果您/其他人被卡住,请发表评论)
+----[编辑]----+
植入:
制造
及
然后拖动直到K4。完成了
希望有帮助。(:
为什么index()只返回具有动态行号的第一列
它应该是=索引($A$2:$D$4,0,Column())
如何仅使用公式对表进行排序(无vba,无GUI操作)
您可以。您可以使用small()或large()函数获取val1,然后使用index/match或vlookup根据您获得的val1填充其他值。(如果您/其他人被卡住,请发表评论)
+----[编辑]----+
植入:
制造
及
拖动直到K4。完成
希望能有所帮助。(:使用你的第一个公式,但不要作为数组。使用
=INDEX($A$2:$D$4;MATCH(SMALL($B$2:$B$4;ROW()-ROW(D$7)+1);$B$2:$B$4;0)
作为你的公式。将你的公式复制到你的目标范围,你就会得到你想要的结果。谢谢@ctumturk,它起作用了。我希望数组函数起作用,然后转置结果。我仍然想知道为什么我不能在index()中使用动态行号。使用普通公式,您可以找到精确的值并返回该值。但是使用数组公式,您可以找到该值的数组并返回该数组的第0列。如果您像这样修改第一个公式,{=INDEX($A$2:$D$4;MATCH(SMALL($B$2:$B$4;ROW()-ROW(A$7)+1);$B$2:$B$4;column(A$7))}
应该足够了。使用第一个公式,但不要作为数组。使用=INDEX($A$2:$D$4;MATCH(SMALL($B$2:$B$4;ROW()-ROW(D$7)+1);$B$2:$B$4;0)
作为你的公式。将你的公式复制到你的目标范围,你就会得到你想要的结果。谢谢@ctumturk,它起作用了。我希望数组函数起作用,然后转置结果。我仍然想知道为什么我不能在index()中使用动态行号。使用普通公式,您可以找到确切的值并返回该值。但是使用数组公式,您可以找到该值的数组并返回该数组的第0列。如果您像这样修改第一个公式,{=INDEX($A$2:$D$4;MATCH(SMALL($B$2:$B$4;ROW()-ROW(A$7)+1);$B$2:$B$4;column(A$7))
。
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))