請問如何設定這樣的Excel頁面

請問各位,
我要把工作表一的資料貼到工作表二,
且希望工作表的頁面長度只有20格,
也就是當資料貼進來時, 它是 A1-A20 -> B1-B20 ->C1-C20
這樣依序自動換行, 請問有這樣的功能嗎
2023-10-28 17:06 發佈
文章關鍵字 excel 頁面
用VBA解決一定可以完成
這問題可看成是Array的整形(如9x2變成6x3), Array的整形在資料處理常常會用到(尤其是整理AI的Dataset), 所以
EXCEL 365新增了WRAPROW及WRAPCOLUMNS的整形函數, 然而他們只能用在1D Array(即Vector)的整形, 對於2D Array的整形, 小弟至今還沒發現簡便的函數, 只能轉成CSV處理, 範例如下

原始資料為10x3, 欲轉成5x6


先存成CSV(不要存成Unicode或UTF8)


Notepad++的取代功能, 把"換行"用逗號代替, 這樣就能把多行合併成一行(1D Array)



再用Excel打開, 使用Index搭配Sequence, 就能將1D Array轉成想要的2D Array
=INDEX(A1:AD1,SEQUENCE(COLUMNS(A1:AD1)/5,5))


如果對Python有些了解, 也可參照此網頁寫程式整形CSV, 步驟會簡單些, 以下是小弟的程式

import numpy as np
a = np.loadtxt('input.csv', delimiter=',')
np.savetxt('output.csv', a.reshape(-1, 5), fmt='%d', delimiter=',')

原本的input.csv


執行程式產生的output.csv


用Excel檢查整形後的output.csv, 確認Array整形OK
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?