使用公式反转单元格区域中的数据。例如,在下图所示的工作表中的单元格区域“数据”(即A1:A7)中,“数据”区域中第一个单元格A1中的数据通过使用公式放置在最后一个单元格中,在这种情况下,“数据”区域中第二个单元格A2中的数据放置在倒数第二个单元格C6中,以此类推,直到“数据”区域中最后一个单元格A7中的数据放置在第一个单元格C1中。
公式思维
获取单元格区域最后一行的行号,提取行号所在的数据放在第一个单元格,然后获取区域倒数第二行的行号,提取行号所在的数据放在第二个单元格,直到区域第一行所在单元格的数据放在最后一个单元格。
公式分析
使用单一公式。
在C1单元格中输入公式:
=索引(数据,行(数据)-行(A1) 1,1)
然后,下拉到单元格C7。最终结果如下图所示:
公式的关键字是ROW(Data)-ROW(A1)1,其中ROW(Data)返回单元格区域的行数,在本例中为7。ROW(A1)返回单元格的行号,在单元格C1中返回1,所以7-1 1的结果是7;C2返回2,那么7-2 1的结果是6;……;c返回7,那么7-7 1的结果是1;因此,ROWS(Data)-ROW(A1) 1的结果是从C1到C7的7、6、5、4、3、2和1,用作INDEX函数的行参数,在Data区域中获得相应的值。
使用数组公式。
选择单元格区域C1:C7,输入数组公式:
=索引(数据,行(数据)-行(间接(“1:”行(数据)))1,1)
结果如下图所示:
行(间接(“1:”行(数据)))生成数组{ 1;2;3;4;5;6;7},和row(Data),即7加1,生成数组{ 7;6;5;4;3;2;1},将数组作为INDEX函数的行参数,依次从Data区域取出值,放入对应的单元格中。
如果区域中有一个空单元格,则反转的相应单元格将显示0。使用以下数组公式仍将空单元格显示为空单元格:
=IF(INDEX(Data,ROWS(Data)-ROW(INDIRECT(" 1: " ROWS(Data)))1,1)=" ",",INDEX(Data,ROWS(Data)-ROW(INDIRECT(" 1: " ROWS(Data)))1,1))
即利用IF函数判断得到的值是否为空,如果为空则显示为空,否则显示数据。
总结
如果要获取某个区域的值,首先要考虑如何获取该区域的值的行号和列号。这样,您可以使用INDEX函数来获取相应的值。
ROW函数相当于编程语言中的一个变量,它可以根据单元格所在的行得到不同的值。
ROW函数与间接函数结合使用,在没有硬编码的情况下更加灵活。