目录
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

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 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)

热门话题

Java教程
1669
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24