Excel 行列轉置 解決豎向拉,字母跟着遞增的問題


今天工作中遇到需要將Excel行列轉置涉及到的數據單元格一共幾千個

查詢網上說可以通過復制粘貼單元格,粘貼選項中轉置一項實現,但是所涉及的sheet頁中,數據格式和單元格格式各不一樣,轉置失敗!

怎么做呢? 

先看看查詢Excel函數的結果:

首先看看INDERECT函數的定義:返回字符串所指定的索引

比如:

 

有了這個函數,解決當前問題的思路就是在豎向拖動的時候,能對應到INDIRECT("A1"),INDIRECT("B1"),INDIRECT("C1")所涉及到轉置的問題,

就解決了

所以接下來的問題,就是要解決在豎向拖動的時候,單元格怎么對應生成"A1","B1","C1"的問題

查詢之后看到,列名不就是A,B,C,D...這樣排列的嗎?所以用Address函數取列名

 

現在的問題就是對K$4進行處理,只保留列部分("K",不能寫死就取一位"K",因為還有"AB","AZ"這種列)

所以用動態截取:

所以,最后的轉置公式為:

=INDIRECT("Sheet1!"&LEFT(ADDRESS(1,ROW(),2),FIND("$",ADDRESS(1,ROW(),2))-1)&"1")

但是這樣解決了豎着拉列名跟着變化的問題,沒有解決橫着拉原Sheet頁行編號的問題,因為公式最后&"1"是死的在轉第二行數據的時候不得不寫成

 =INDIRECT("Sheet1!"&LEFT(ADDRESS(1,ROW(),2),FIND("$",ADDRESS(1,ROW(),2))-1)&"2")

所以最后改進為:

=INDIRECT("Sheet1!"&LEFT(ADDRESS(1,ROW(),2),FIND("$",ADDRESS(1,ROW(),2))-1)&COLUMN())

剛開始學習Excel 希望各位指正!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM