Ank*_*del 4 excel vba transpose rows excel-vba
我有各种各样品牌的市场份额的巨大数据,如下所示:
1111 2222 3333 4444
5555 7777 8888
9999 0001 0002
0004 0005 0006 0007
Run Code Online (Sandbox Code Playgroud)
什么宏代码可用于获取输出:
1111
2222
3333
4444
5555
<emptyCell>
7777
8888
9999
0001
0002
<emptyCell>
0004
0005
0006
0007
Run Code Online (Sandbox Code Playgroud)
还必须考虑空单元格.
还有可能在其他工作表中获得输出吗?
更改INDEX为较少处理器密集型版本
在第1行中您要将数据复制到的任何工作表:
=INDEX($A$1:$D$4,INT((ROW()-1)/4)+1,MOD(ROW()-1,4)+1)
Run Code Online (Sandbox Code Playgroud)
把它复制下来,一旦零出现,你就到了最后.(这是唯一的问题 - 空白单元格将变为零.如果您也希望保留空白,那么您需要这样:
= IF(ISBLANK(INDEX($ A $ 1:$ d $ 4,INT((ROW() - 1)/ 4)+ 1,MOD(ROW() - 1,4)+1)), "",INDEX( $ A $ 1:$ d $ 4,INT((ROW() - 1)/ 4)+ 1,MOD(ROW() - 1,4)+1))
)
如果你不是从第一行开始,那么更改ROW()为ROW()-XX ,其中X是从顶部向下的行数(即行2为1,行3为2,行800为799)
如果列数不同,将4更改为适当的数字
| 归档时间: |
|
| 查看次数: |
55576 次 |
| 最近记录: |