將值或行轉(zhuǎn)換為二維數(shù)組的最快方法是使用Wrapcols或Wraprows函數(shù)。
自Excel的最早時代以來,它一直非常擅長計算和分析數(shù)字。但是傳統(tǒng)上,操縱陣列是一個挑戰(zhàn)。動態(tài)陣列的引入使陣列公式的使用變得更加容易?,F(xiàn)在,微軟正在發(fā)布一組新的動態(tài)陣列功能來操縱和重新形狀數(shù)組。本教程將教您如何使用兩個這樣的功能,包裹和包裹物,以立即將列或行轉(zhuǎn)換為2D數(shù)組。
Excel Wrapcols功能
Excel中的Wrapcols函數(shù)根據(jù)每個行的指定數(shù)量值將值或列轉(zhuǎn)換為二維數(shù)組。
語法具有以下論點:
wrapcols(vector,wrap_count,[pad_with])在哪裡:
- 向量(必需) - 源一維數(shù)組或範(fàn)圍。
- wrap_count (必需) - 每列的最大值數(shù)。
- PAD_WITH (可選) - 如果沒有足夠的項目填寫,則使用最後一列的值。如果省略,則缺失值將用#N/A(默認(rèn)值)填充。
例如,要將b5:b24範(fàn)圍更改為具有每列5個值的二維陣列,該公式為:
=WRAPROWS(B5:B24, 5)
您在任何單個單元中輸入該公式,並根據(jù)需要自動溢出到盡可能多的單元中。在Wrapcols輸出中,根據(jù)WRAP_COUNT值垂直從上到下排列該值。達(dá)到計數(shù)後,開始了一個新的列。
Excel Wraprows功能
Excel中的Wraprows函數(shù)根據(jù)您指定的每個行的值數(shù)量,將值或列轉(zhuǎn)換為二維數(shù)組。
語法如下:
wraprows(vector,wrap_count,[pad_with])在哪裡:
- 向量(必需) - 源一維數(shù)組或範(fàn)圍。
- wrap_count (必需) - 每行的最大值數(shù)。
- PAD_WITH (可選) - 如果沒有足夠的項目來填充它,則與最後一行的值。默認(rèn)值為#n/a。
例如,要將B5:B24範(fàn)圍轉(zhuǎn)換為具有5個值的2D數(shù)組,公式為:
=WRAPROWS(B5:B24, 5)
您可以在溢出範(fàn)圍的左上方單元格中進(jìn)入公式,並自動填充所有其他單元。 Wraprows函數(shù)根據(jù)WRAP_COUNT值從左到右水平排列值。達(dá)到計數(shù)後,它開始了一個新的行。
包裹和包裹物的可用性
這兩個功能僅在Microsoft 365(Windows和Mac)的Excel中可用,並且可用於Web。
在較早的版本中,您可以使用傳統(tǒng)的更複雜的公式執(zhí)行列到陣列和陣列轉(zhuǎn)換。在本教程中,我們將詳細(xì)討論替代解決方案。
提示。要執(zhí)行反向操作,IE將2D數(shù)組更改為單列或行,分別使用Tocol或Torow函數(shù)。
如何將列 /行轉(zhuǎn)換為Excel中的範(fàn)圍 - 示例
現(xiàn)在,您已經(jīng)掌握了基本用法,讓我們仔細(xì)研究一些更具體的情況。
設(shè)置每列或行的最大值數(shù)量
根據(jù)原始數(shù)據(jù)的結(jié)構(gòu),您可能會發(fā)現(xiàn)將其重新安排到列(Wrapcols)或行(Wraprows)中。無論您使用哪個函數(shù),都是wrap_count參數(shù),它確定每個列/行中的最大值數(shù)。
例如,要將範(fàn)圍B4:B23轉(zhuǎn)換為2D數(shù)組,以使每列最多具有10個值,請使用此公式:
=WRAPCOLS(B4:B23, 10)
要按行重新排列相同的範(fàn)圍,以使每行的最大值為4個值,公式為:
=WRAPROWS(B4:B23, 4)
下圖顯示了它的外觀:
在結(jié)果數(shù)組中的墊子缺失值
如果沒有足夠的值無法填充所得範(fàn)圍的所有列/行,則包裹和Wrapcols將返回#N/A錯誤以保持2D數(shù)組的結(jié)構(gòu)。
要更改默認(rèn)行為,您可以為可選的pad_with參數(shù)提供自定義值。
例如,要將範(fàn)圍B4:B21轉(zhuǎn)換為具有最大5個值寬的2D數(shù)組,如果沒有足夠的數(shù)據(jù)填充數(shù)據(jù),則用破折號填充最後一行,請使用此公式:
=WRAPROWS(B4:B21, 5, "-")
要用零長度字符串(空白)替換缺失值,公式為:
=WRAPROWS(B4:B21, 5, "")
請將結(jié)果與省略PAD_WITH的默認(rèn)行為(公式)進(jìn)行比較:
將多行合併為2D範(fàn)圍
要將幾行組合到單個2D數(shù)組中,您首先使用HSTACK函數(shù)水平堆疊行,然後使用Wraprows或Wrapcols包裝值。
例如,要合併3行(b5:j5,b7:g7和b9:f9)的值,並將其包裹成列,每個列包含10個值,該公式為:
=WRAPCOLS(HSTACK(B5:J5, B7:G7, B9:F9), 10)
要將從多行的值組合到每個行包含5個值的2D範(fàn)圍內(nèi),該公式採用此表單:
=WRAPROWS(HSTACK(B5:J5, B7:G7, B9:F9), 5)
將多列組合成2D數(shù)組
要將幾列合併到2D範(fàn)圍內(nèi),首先,您使用VSTACK函數(shù)垂直堆疊它們,然後將值包裝到行(Wraprows)或列(Wrapcols)中。
例如,將來自3列(B5:J5,B7:G7和B9:F9)的值組合到一個2D範(fàn)圍中,其中每列包含10個值,該公式為:
=WRAPCOLS(HSTACK(B5:J5, B7:G7, B9:F9), 10)
要將相同的列組合到每個行包含5個值的2D範(fàn)圍內(nèi),請使用此公式:
=WRAPROWS(HSTACK(B5:J5, B7:G7, B9:F9), 5)
包裝並排序陣列
在源範(fàn)圍的情況下,在您希望將輸出分類的情況下以隨機順序為準(zhǔn)值時,以此方式進(jìn)行:
- 按照您想要的方式對初始數(shù)組進(jìn)行排序。
- 將排序的陣列提供給包裹或包裹。
例如,將B4:B23的範(fàn)圍包裝到行中,每個值中的4個值,然後對結(jié)果進(jìn)行排序,從A到Z,構(gòu)造一個公式:
=WRAPROWS(SORT(B4:B23), 4)
要將相同範(fàn)圍包裹在列中,每個值10個值,然後按字母順序排序輸出,公式為:
=WRAPCOLS(SORT(B4:B23), 10)
結(jié)果如下:
提示。要按降序排列在結(jié)果數(shù)組中的值,請將排序函數(shù)的第三個參數(shù)( sort_order )設(shè)置為-1。
Excel 365- 2010年的Wrapcols替代品
在不支持Wrapcols功能的較舊的Excel版本中,您可以構(gòu)建自己的公式將一個維數(shù)組中的值包裝到列中。這可以通過一起使用5個不同的功能來完成。
Wrapcols替代方案將行轉(zhuǎn)換為2D範(fàn)圍:
ifError(if(ROW(A1)> n ,“”,index( row_range ,,row(a1)(列(A1)-1)* n )),“”),“”)Wrapcols替代方案將列轉(zhuǎn)換為2D範(fàn)圍:
ifError(if(row(a1)> n ,“”,index( column_range ,row(a1)(column(a1)-1)* n )),“”),“”)其中n是每個列的最大值。
在下圖中,我們使用以下公式將單行範(fàn)圍(D4:J4)轉(zhuǎn)換為三行陣列。
=IFERROR(IF(ROW(A1)>3, "", INDEX($D$4:$J$4, , ROW(A1) (COLUMN(A1)-1)*3)), "")
而且該公式將單列範(fàn)圍(B4:B20)更改為五行陣列:
=IFERROR(IF(ROW(A1)>5, "", INDEX($B$4:$B$20, ROW(A1) (COLUMN(A1)-1)*5)), "")
上面的溶液模仿類似的包裹物配方並產(chǎn)生相同的結(jié)果:
=WRAPCOLS(D4:J4, 3, "")
和
=WRAPCOLS(B4:B20, 5, "")
請記住,與動態(tài)陣列包裹函數(shù)不同,傳統(tǒng)公式遵循單式單元的方法。因此,我們的第一個公式在D8中輸入,並在右側(cè)複製3行和3列。第二個公式在D14中輸入,並在右側(cè)複製5行和4列。
這些公式如何工作
在兩個公式的核心中,我們使用索引函數(shù),該功能根據(jù)行和列號從提供數(shù)組中返??回值:
索引(array,row_num,[column_num])當(dāng)我們處理一行數(shù)組時,我們可以省略row_num參數(shù),因此默認(rèn)為1。訣竅是對複制公式的每個單元格自動計算col_num 。這就是我們這樣做的方式:
ROW(A1) (COLUMN(A1)-1)*3)
行函數(shù)返回A1參考的行號,即1。
列函數(shù)返回A1參考的列號,也為1。減去1將其變成零。並乘以0乘3給出0。
然後,您添加了1行返回的1個,結(jié)果為0返回,結(jié)果獲得1。
這樣,目的地範(fàn)圍(D8)左上方單元格中的索引公式經(jīng)歷了這種轉(zhuǎn)換:
INDEX($D$4:$J$4, ,ROW(A1) (COLUMN(A1)-1)*3))
更改為
INDEX($D$4:$J$4, ,1)
並從指定數(shù)組的第一列返回值,即D4中的“蘋果”。
當(dāng)將公式複製到細(xì)胞D9時,相對細(xì)胞參考基於行的相對位置變化,而絕對范圍參考則保持不變:
INDEX($D$4:$J$4,, ROW(A2) (COLUMN(A2)-1)*3))
變成:
INDEX($D$4:$J$4,, 2 (1-1)*3))
變成:
INDEX($D$4:$J$4,, 2))
並從指定數(shù)組的第二列返回值,即E4中的“杏”。
IF函數(shù)檢查行號,如果它大於您指定的行數(shù)(在我們的情況下為3)返回一個空字符串(“”),否則索引函數(shù)的結(jié)果:
IF(ROW(A1)>3, "", INDEX(…))
最後,IFERROR函數(shù)修復(fù)了#REF!當(dāng)將公式複製到更多的單元格時,發(fā)生的錯誤。
將列轉(zhuǎn)換為2D範(fàn)圍的第二個公式具有相同的邏輯。不同之處在於,您使用行列組合來找出索引的row_num參數(shù)。在這種情況下,不需要COL_NUM參數(shù),因為源數(shù)組中只有一個列。
包裹替代品的替代品365- 2010年
為了將一維數(shù)組中的值包裝到Excel 2019和更早的行中的行中,您可以使用以下替代Wraprows函數(shù)的替代方案。
將行轉(zhuǎn)換為2D範(fàn)圍:
ifError(if(列(a1)> n ,“”,index( row_range ,column(a1)(row(a1)-1)* n )),“”),“”)將列更改為2D範(fàn)圍:
ifError(if(列(a1)> n ,“”,index( column_range ,column(a1)(row(a1)-1)* n )),“”),“”)其中n是每個行的最大值數(shù)。
在我們的示例數(shù)據(jù)集中,我們使用以下公式將單行範(fàn)圍(D4:J4)轉(zhuǎn)換為三柱範(fàn)圍。公式降落在細(xì)胞D8中,然後在3列和3行中復(fù)制。
=IFERROR(IF(COLUMN(A1)>3, "", INDEX($D$4:$J$4, , COLUMN(A1) (ROW(A1)-1)*3)), "")
要將1列範(fàn)圍(B4:B20)重塑為5列範(fàn)圍,請在D14中輸入以下公式,然後將其拖動5列和4行。
=IFERROR(IF(COLUMN(A1)>5, "", INDEX($B$4:$B$20, COLUMN(A1) (ROW(A1)-1)*5)), "")
在Excel 365中,可以通過等效的包裹公式可以實現(xiàn)相同的結(jié)果:
=WRAPROWS(D4:J4, 3, "")
和
=WRAPROWS(B4:B20, 5, "")
這些公式如何工作
本質(zhì)上,這些公式像上一個示例一樣工作。區(qū)別在於您如何確定索引函數(shù)的row_num和col_num坐標(biāo):
INDEX($D$4:$J$4,, COLUMN(A1) (ROW(A1)-1)*3))
要在目標(biāo)範(fàn)圍(D8)中獲取左上方單元格的列號,請使用此表達(dá)式:
COLUMN(A1) (ROW(A1)-1)*3)
這更改為:
1(1-1)*3
並給出1。
結(jié)果,以下公式從指定數(shù)組的第一列返回值,即“蘋果”:
INDEX($D$4:$J$4,, 1)
到目前為止,結(jié)果與上一個示例相同。但是,讓我們看看其他細(xì)胞中會發(fā)生什麼……
在細(xì)胞D9中,相對細(xì)胞引用變化如下:
INDEX($D$4:$J$4,, COLUMN(A2) (ROW(A2)-1)*3))
因此,公式轉(zhuǎn)化為:
INDEX($D$4:$J$4,, 1 (2-1)*3))
變成:
INDEX($D$4:$J$4,, 4))
並從指定數(shù)組的第四列返回值,即G4中的“櫻桃”。
IF函數(shù)檢查列號,如果它大於您指定的列數(shù),請返回一個空字符串(“”),否則索引函數(shù)的結(jié)果:
IF(COLUMN(A1)>3, "", INDEX(…))
作為最後的觸摸,iFerror可以防止#REF!如果將公式複製到實際所需的單元格還要多的單元格中,則出現(xiàn)在“額外”單元格中的錯誤。
Wrapcols或Wraprows功能不起作用
如果您的Excel中沒有“包裝”功能或?qū)е洛e誤,則最有可能是以下原因之一。
#姓名?錯誤
在Excel 365中,#Name?可能會發(fā)生錯誤,因為您拼寫了函數(shù)的名稱。在其他版本中,這表明不支持功能。作為解決方法,您可以使用Wrapcols替代方案或Wraprows替代方案。
#價值!錯誤
如果向量參數(shù)不是一維數(shù)組,則會發(fā)生#Value誤差。
#num!錯誤
如果WRAP_COUNT值為0或負(fù)數(shù),則會發(fā)生#NUM錯誤。
#灑!錯誤
最常見的是,#spill誤差表明沒有足夠的空白細(xì)胞將結(jié)果溢出。清除相鄰的細(xì)胞,它將消失。如果錯誤持續(xù)存在,請查看#spill在Excel中的意思以及如何修復(fù)它。
這就是如何使用包裹和包裹功能將一維範(fàn)圍轉(zhuǎn)換為Excel中的二維數(shù)組的方法。我感謝您閱讀,並希望下週在我們的博客上見到您!
練習(xí)工作簿下載
Wrapcols和Wraprows功能 - 示例(.xlsx文件)
以上是將列 /行轉(zhuǎn)換為excel中的數(shù)組:wrapcols&Wraprows功能的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)