excel 行数据吧从左到右改成从右到左 (行不等长)

1 2 3 4 5 6 7 8
1 2            
1 2 3 4        

比如我现在是这样的,希望变成这样:
8 7 6 5 4 3 2 1
2 1
4 3 2 1

怎么弄?
真实数据不是数字

比如原数据在A1至H3,在A5输入公式:
=IF(COLUMN(A1)>COUNTA($A1:$H1),"",LARGE($A1:$H1,COLUMN(A1)))
将公式向右、向下拉至H7就可以实现效果,如果再用“选择性粘贴”-“数值”的方法就可以将结果保存为真实的数据而不是公式显示的效果。追问

真实数据不是数字,好像不行。。

追答

那请说说你数据中的什么内容,请复制上来让大家研究下。

追问

去ST 20110608 去*ST 20100531 *ST 20090421 去*ST 20070525 *ST
去ST 20080625 去*ST 20040518 *ST 20030512 ST 20030416
0
去ST 20120504 ST 20070423
ST 20020412 ST 20010419
这是表格的一部分

追答

在下图举例中A5输入公式:

=IF(COLUMN(A1)>COUNTA($A1:$H1),"",INDEX(1:1,LARGE(IF($A1:$H1<>"",COLUMN($A1:$H1)),COLUMN(A1))))

摁SHIFT+CTRL+回车结束公式的输入,再将公式向右、向下拉至H7就可实现效果。

追问

请问index后面1:1什么意思?最好能解释下这个公式,谢谢!

追答

是第1行的意思。
前面部分:IF(COLUMN(A1)>COUNTA($A1:$H1),"", 是判断如果到空白单元格时就什么都不显示了;
后面部分才是主函数:
INDEX(1:1,LARGE(IF($A1:$H1"",COLUMN($A1:$H1)),COLUMN(A1)))
找到该行不为空的单元格位置后以INDEX函数去从有数据单元格的最大位置起返回数据。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-10
很简单,录入8 7后,点先这2格,将鼠标移到7的右角,当鼠标变成黑色十字后,点着鼠标左键不放,向右拉动,就能看到结果了追问

真实数据没那么简单,不是数字。只是举个简单的例子,便于理解我的问题

相似回答