目錄
Excel Wrapcols功能
Excel Wraprows功能
包裹和包裹物的可用性
如何將列 /行轉換為Excel中的範圍 - 示例
設置每列或行的最大值數量
在結果數組中的墊子缺失值
將多行合併為2D範圍
將多列組合成2D數組
包裝並排序陣列
Excel 365- 2010年的Wrapcols替代品
包裹替代品的替代品365- 2010年
Wrapcols或Wraprows功能不起作用
#姓名?錯誤
#價值!錯誤
#num!錯誤
#灑!錯誤
練習工作簿下載
首頁 專題 excel 將列 /行轉換為excel中的數組:wrapcols&Wraprows功能

將列 /行轉換為excel中的數組:wrapcols&Wraprows功能

Mar 25, 2025 am 09:36 AM

將值或行轉換為二維數組的最快方法是使用Wrapcols或Wraprows函數。

自Excel的最早時代以來,它一直非常擅長計算和分析數字。但是傳統上,操縱陣列是一個挑戰。動態陣列的引入使陣列公式的使用變得更加容易。現在,微軟正在發布一組新的動態陣列功能來操縱和重新形狀數組。本教程將教您如何使用兩個這樣的功能,包裹和包裹物,以立即將列或行轉換為2D數組。

將列 /行轉換為excel中的數組:wrapcols&Wraprows功能

Excel Wrapcols功能

Excel中的Wrapcols函數根據每個行的指定數量值將值或列轉換為二維數組。

語法具有以下論點:

wrapcols(vector,wrap_count,[pad_with])

在哪裡:

  • 向量(必需) - 源一維數組或範圍。
  • wrap_count (必需) - 每列的最大值數。
  • PAD_WITH (可選) - 如果沒有足夠的項目填寫,則使用最後一列的值。如果省略,則缺失值將用#N/A(默認值)填充。

例如,要將b5:b24範圍更改為具有每列5個值的二維陣列,該公式為:

=WRAPROWS(B5:B24, 5)

您在任何單個單元中輸入該公式,並根據需要自動溢出到盡可能多的單元中。在Wrapcols輸出中,根據WRAP_COUNT值垂直從上到下排列該值。達到計數後,開始了一個新的列。

將列 /行轉換為excel中的數組:wrapcols&Wraprows功能

Excel Wraprows功能

Excel中的Wraprows函數根據您指定的每個行的值數量,將值或列轉換為二維數組。

語法如下:

wraprows(vector,wrap_count,[pad_with])

在哪裡:

  • 向量(必需) - 源一維數組或範圍。
  • wrap_count (必需) - 每行的最大值數。
  • PAD_WITH (可選) - 如果沒有足夠的項目來填充它,則與最後一行的值。默認值為#n/a。

例如,要將B5:B24範圍轉換為具有5個值的2D數組,公式為:

=WRAPROWS(B5:B24, 5)

您可以在溢出範圍的左上方單元格中進入公式,並自動填充所有其他單元。 Wraprows函數根據WRAP_COUNT值從左到右水平排列值。達到計數後,它開始了一個新的行。

將列 /行轉換為excel中的數組:wrapcols&Wraprows功能

包裹和包裹物的可用性

這兩個功能僅在Microsoft 365(Windows和Mac)的Excel中可用,並且可用於Web。

在較早的版本中,您可以使用傳統的更複雜的公式執行列到陣列和陣列轉換。在本教程中,我們將詳細討論替代解決方案。

提示。要執行反向操作,IE將2D數組更改為單列或行,分別使用Tocol或Torow函數。

如何將列 /行轉換為Excel中的範圍 - 示例

現在,您已經掌握了基本用法,讓我們仔細研究一些更具體的情況。

設置每列或行的最大值數量

根據原始數據的結構,您可能會發現將其重新安排到列(Wrapcols)或行(Wraprows)中。無論您使用哪個函數,都是wrap_count參數,它確定每個列/行中的最大值數。

例如,要將範圍B4:B23轉換為2D數組,以使每列最多具有10個值,請使用此公式:

=WRAPCOLS(B4:B23, 10)

要按行重新排列相同的範圍,以使每行的最大值為4個值,公式為:

=WRAPROWS(B4:B23, 4)

下圖顯示了它的外觀:

將列 /行轉換為excel中的數組:wrapcols&Wraprows功能

在結果數組中的墊子缺失值

如果沒有足夠的值無法填充所得範圍的所有列/行,則包裹和Wrapcols將返回#N/A錯誤以保持2D數組的結構。

要更改默認行為,您可以為可選的pad_with參數提供自定義值。

例如,要將範圍B4:B21轉換為具有最大5個值寬的2D數組,如果沒有足夠的數據填充數據,則用破折號填充最後一行,請使用此公式:

=WRAPROWS(B4:B21, 5, "-")

要用零長度字符串(空白)替換缺失值,公式為:

=WRAPROWS(B4:B21, 5, "")

請將結果與省略PAD_WITH的默認行為(公式)進行比較:

將列 /行轉換為excel中的數組:wrapcols&Wraprows功能

將多行合併為2D範圍

要將幾行組合到單個2D數組中,您首先使用HSTACK函數水平堆疊行,然後使用Wraprows或Wrapcols包裝值。

例如,要合併3行(b5:j5,b7:g7和b9:f9)的值,並將其包裹成列,每個列包含10個值,該公式為:

=WRAPCOLS(HSTACK(B5:J5, B7:G7, B9:F9), 10)

要將從多行的值組合到每個行包含5個值的2D範圍內,該公式採用此表單:

=WRAPROWS(HSTACK(B5:J5, B7:G7, B9:F9), 5)

將列 /行轉換為excel中的數組:wrapcols&Wraprows功能

將多列組合成2D數組

要將幾列合併到2D範圍內,首先,您使用VSTACK函數垂直堆疊它們,然後將值包裝到行(Wraprows)或列(Wrapcols)中。

例如,將來自3列(B5:J5,B7:G7和B9:F9)的值組合到一個2D範圍中,其中每列包含10個值,該公式為:

=WRAPCOLS(HSTACK(B5:J5, B7:G7, B9:F9), 10)

要將相同的列組合到每個行包含5個值的2D範圍內,請使用此公式:

=WRAPROWS(HSTACK(B5:J5, B7:G7, B9:F9), 5)

將列 /行轉換為excel中的數組:wrapcols&Wraprows功能

包裝並排序陣列

在源範圍的情況下,在您希望將輸出分類的情況下以隨機順序為準值時,以此方式進行:

  1. 按照您想要的方式對初始數組進行排序。
  2. 將排序的陣列提供給包裹或包裹。

例如,將B4:B23的範圍包裝到行中,每個值中的4個值,然後對結果進行排序,從A到Z,構造一個公式:

=WRAPROWS(SORT(B4:B23), 4)

要將相同範圍包裹在列中,每個值10個值,然後按字母順序排序輸出,公式為:

=WRAPCOLS(SORT(B4:B23), 10)

結果如下:

將列 /行轉換為excel中的數組:wrapcols&Wraprows功能

提示。要按降序排列在結果數組中的值,請將排序函數的第三個參數( sort_order )設置為-1。

Excel 365- 2010年的Wrapcols替代品

在不支持Wrapcols功能的較舊的Excel版本中,您可以構建自己的公式將一個維數組中的值包裝到列中。這可以通過一起使用5個不同的功能來完成。

Wrapcols替代方案將行轉換為2D範圍:

ifError(if(ROW(A1)> n ,“”,index( row_range ,,row(a1)(列(A1)-1)* n )),“”),“”)

Wrapcols替代方案將列轉換為2D範圍:

ifError(if(row(a1)> n ,“”,index( column_range ,row(a1)(column(a1)-1)* n )),“”),“”)

其中n是每個列的最大值。

在下圖中,我們使用以下公式將單行範圍(D4:J4)轉換為三行陣列。

=IFERROR(IF(ROW(A1)>3, "", INDEX($D$4:$J$4, , ROW(A1) (COLUMN(A1)-1)*3)), "")

而且該公式將單列範圍(B4:B20)更改為五行陣列:

=IFERROR(IF(ROW(A1)>5, "", INDEX($B$4:$B$20, ROW(A1) (COLUMN(A1)-1)*5)), "")

上面的溶液模仿類似的包裹物配方並產生相同的結果:

=WRAPCOLS(D4:J4, 3, "")

=WRAPCOLS(B4:B20, 5, "")

請記住,與動態陣列包裹函數不同,傳統公式遵循單式單元的方法。因此,我們的第一個公式在D8中輸入,並在右側複製3行和3列。第二個公式在D14中輸入,並在右側複製5行和4列。

將列 /行轉換為excel中的數組:wrapcols&Wraprows功能

這些公式如何工作

在兩個公式的核心中,我們使用索引函數,該功能根據行和列號從提供數組中返​​回值:

索引(array,row_num,[column_num])

當我們處理一行數組時,我們可以省略row_num參數,因此默認為1。訣竅是對複制公式的每個單元格自動計算col_num 。這就是我們這樣做的方式:

ROW(A1) (COLUMN(A1)-1)*3)

行函數返回A1參考的行號,即1。

列函數返回A1參考的列號,也為1。減去1將其變成零。並乘以0乘3給出0。

然後,您添加了1行返回的1個,結果為0返回,結果獲得1。

這樣,目的地範圍(D8)左上方單元格中的索引公式經歷了這種轉換:

INDEX($D$4:$J$4, ,ROW(A1) (COLUMN(A1)-1)*3))

更改為

INDEX($D$4:$J$4, ,1)

並從指定數組的第一列返回值,即D4中的“蘋果”。

當將公式複製到細胞D9時,相對細胞參考基於行的相對位置變化,而絕對范圍參考則保持不變:

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))

並從指定數組的第二列返回值,即E4中的“杏”。

IF函數檢查行號,如果它大於您指定的行數(在我們的情況下為3)返回一個空字符串(“”),否則索引函數的結果:

IF(ROW(A1)>3, "", INDEX(…))

最後,IFERROR函數修復了#REF!當將公式複製到更多的單元格時,發生的錯誤。

將列轉換為2D範圍的第二個公式具有相同的邏輯。不同之處在於,您使用行列組合來找出索引的row_num參數。在這種情況下,不需要COL_NUM參數,因為源數組中只有一個列。

包裹替代品的替代品365- 2010年

為了將一維數組中的值包裝到Excel 2019和更早的行中的行中,您可以使用以下替代Wraprows函數的替代方案。

將行轉換為2D範圍:

ifError(if(列(a1)> n ,“”,index( row_range ,column(a1)(row(a1)-1)* n )),“”),“”)

將列更改為2D範圍:

ifError(if(列(a1)> n ,“”,index( column_range ,column(a1)(row(a1)-1)* n )),“”),“”)

其中n是每個行的最大值數。

在我們的示例數據集中,我們使用以下公式將單行範圍(D4:J4)轉換為三柱範圍。公式降落在細胞D8中,然後在3列和3行中復制。

=IFERROR(IF(COLUMN(A1)>3, "", INDEX($D$4:$J$4, , COLUMN(A1) (ROW(A1)-1)*3)), "")

要將1列範圍(B4:B20)重塑為5列範圍,請在D14中輸入以下公式,然後將其拖動5列和4行。

=IFERROR(IF(COLUMN(A1)>5, "", INDEX($B$4:$B$20, COLUMN(A1) (ROW(A1)-1)*5)), "")

在Excel 365中,可以通過等效的包裹公式可以實現相同的結果:

=WRAPROWS(D4:J4, 3, "")

=WRAPROWS(B4:B20, 5, "")

將列 /行轉換為excel中的數組:wrapcols&Wraprows功能

這些公式如何工作

本質上,這些公式像上一個示例一樣工作。區別在於您如何確定索引函數的row_numcol_num坐標:

INDEX($D$4:$J$4,, COLUMN(A1) (ROW(A1)-1)*3))

要在目標範圍(D8)中獲取左上方單元格的列號,請使用此表達式:

COLUMN(A1) (ROW(A1)-1)*3)

這更改為:

1(1-1)*3

並給出1。

結果,以下公式從指定數組的第一列返回值,即“蘋果”:

INDEX($D$4:$J$4,, 1)

到目前為止,結果與上一個示例相同。但是,讓我們看看其他細胞中會發生什麼……

在細胞D9中,相對細胞引用變化如下:

INDEX($D$4:$J$4,, COLUMN(A2) (ROW(A2)-1)*3))

因此,公式轉化為:

INDEX($D$4:$J$4,, 1 (2-1)*3))

變成:

INDEX($D$4:$J$4,, 4))

並從指定數組的第四列返回值,即G4中的“櫻桃”。

IF函數檢查列號,如果它大於您指定的列數,請返回一個空字符串(“”),否則索引函數的結果:

IF(COLUMN(A1)>3, "", INDEX(…))

作為最後的觸摸,iFerror可以防止#REF!如果將公式複製到實際所需的單元格還要多的單元格中,則出現在“額外”單元格中的錯誤。

Wrapcols或Wraprows功能不起作用

如果您的Excel中沒有“包裝”功能或導致錯誤,則最有可能是以下原因之一。

#姓名?錯誤

在Excel 365中,#Name?可能會發生錯誤,因為您拼寫了函數的名稱。在其他版本中,這表明不支持功能。作為解決方法,您可以使用Wrapcols替代方案或Wraprows替代方案。

#價值!錯誤

如果向量參數不是一維數組,則會發生#Value誤差。

#num!錯誤

如果WRAP_COUNT值為0或負數,則會發生#NUM錯誤。

#灑!錯誤

最常見的是,#spill誤差表明沒有足夠的空白細胞將結果溢出。清除相鄰的細胞,它將消失。如果錯誤持續存在,請查看#spill在Excel中的意思以及如何修復它。

這就是如何使用包裹和包裹功能將一維範圍轉換為Excel中的二維數組的方法。我感謝您閱讀,並希望下週在我們的博客上見到您!

練習工作簿下載

Wrapcols和Wraprows功能 - 示例(.xlsx文件)

以上是將列 /行轉換為excel中的數組:wrapcols&Wraprows功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

如何在Excel中創建時間軸以濾波樞軸表和圖表 如何在Excel中創建時間軸以濾波樞軸表和圖表 Mar 22, 2025 am 11:20 AM

如何在Excel中創建時間軸以濾波樞軸表和圖表

如何在Excel中製作桌子 如何在Excel中製作桌子 Mar 14, 2025 pm 02:53 PM

如何在Excel中製作桌子

如何在Excel中下拉 如何在Excel中下拉 Mar 12, 2025 am 11:53 AM

如何在Excel中下拉

如何計算excel中的平均值 如何計算excel中的平均值 Mar 14, 2025 pm 03:33 PM

如何計算excel中的平均值

如何在Excel中製作餅圖 如何在Excel中製作餅圖 Mar 14, 2025 pm 03:32 PM

如何在Excel中製作餅圖

如何在Excel中凍結窗格 如何在Excel中凍結窗格 Mar 14, 2025 pm 03:26 PM

如何在Excel中凍結窗格

如何在Excel中分離文本 如何在Excel中分離文本 Mar 14, 2025 pm 03:34 PM

如何在Excel中分離文本

如何在Excel中概括一列 如何在Excel中概括一列 Mar 14, 2025 pm 02:42 PM

如何在Excel中概括一列

See all articles