反转公式中Excel中的列表

Sel*_*kie 4 excel excel-formula

因此,有很多方法可以使用助手列来反转列表以将其转换为新列表。我编写了一些代码,这些代码确实使用助手列来反转列表,然后再使用它。

我想知道如何在不使用求和产品中使用辅助列的情况下反转列表-例如,

=sumproduct(Reverse(A1:A3),B1:B3)
Run Code Online (Sandbox Code Playgroud)

小智 8

找到了一个适用于最新 Excel 版本的简单解决方案:

=SORTBY(*rowarray*, column(*rowarray*),-1)

=SORTBY(*columnarray*, row(*columnarray*),-1)
Run Code Online (Sandbox Code Playgroud)


Sco*_*ner 5

这将执行您的要求:

=SUMPRODUCT(INDEX(A:A,N(IF(1,{3;2;1}))),B1:B3)
Run Code Online (Sandbox Code Playgroud)

为了让你更动态一点,你可以使用这个数组公式:

=SUM(INDEX(A:A,N(IF(1,LARGE(ROW(A1:A3),ROW(A1:A3)))))*B1:B3)
Run Code Online (Sandbox Code Playgroud)

作为数组公式,退出编辑模式时需要使用 Ctrl-Shift-Enter 确认,而不是 Enter 确认。

在此处输入图片说明


Ima*_*889 5

此数组公式将颠倒垂直数组的顺序:

= INDEX(B18:B21,N(IF({1},MAX(ROW(B18:B21))-ROW(B18:B21)+1)))
Run Code Online (Sandbox Code Playgroud)

同样,这会反转水平数组:

= INDEX(A1:D1,N(IF({1},MAX(COLUMN(A1:D1))-COLUMN(A1:D1)+1)))
Run Code Online (Sandbox Code Playgroud)

编辑

更一般而言,要垂直翻转矩阵而不是仅翻转数组(只是一维矩阵),请使用以下数组公式:(例如,用于range A1:D2

= INDEX(A1:D2,N(IF({1},MAX(ROW(A1:D2))-ROW(A1:D2)+1)),
              N(IF({1},COLUMN(A1:D2)-MIN(COLUMN(A1:D2))+1)))
Run Code Online (Sandbox Code Playgroud)

要水平翻转矩阵,请使用以下命令:

= INDEX(A1:D2,N(IF({1},ROW(A1:D2)-MIN(ROW(A1:D2))+1)),
              N(IF({1},MAX(COLUMN(A1:D2))-COLUMN(A1:D2)+1)))
Run Code Online (Sandbox Code Playgroud)

还有一个奖励...可以一枪水平垂直翻转矩阵(即旋转180度):

= INDEX(A1:D2,N(IF({1},MAX(ROW(A1:D2))-ROW(A1:D2)+1)),
              N(IF({1},MAX(COLUMN(A1:D2))-COLUMN(A1:D2)+1)))
Run Code Online (Sandbox Code Playgroud)

实际上,这里的最后一个通常可以用来翻转水平或垂直阵列。