将值或行转换为二维数组的最快方法是使用Wrapcols或Wraprows函数。
自Excel的最早时代以来,它一直非常擅长计算和分析数字。但是传统上,操纵阵列是一个挑战。动态阵列的引入使阵列公式的使用变得更加容易。现在,微软正在发布一组新的动态阵列功能来操纵和重新形状数组。本教程将教您如何使用两个这样的功能,包裹和包裹物,以立即将列或行转换为2D数组。
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 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值从左到右水平排列值。达到计数后,它开始了一个新的行。
包裹和包裹物的可用性
这两个功能仅在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)
下图显示了它的外观:
在结果数组中的垫子缺失值
如果没有足够的值无法填充所得范围的所有列/行,则包裹和Wrapcols将返回#N/A错误以保持2D数组的结构。
要更改默认行为,您可以为可选的pad_with参数提供自定义值。
例如,要将范围B4:B21转换为具有最大5个值宽的2D数组,如果没有足够的数据填充数据,则用破折号填充最后一行,请使用此公式:
=WRAPROWS(B4:B21, 5, "-")
要用零长度字符串(空白)替换缺失值,公式为:
=WRAPROWS(B4:B21, 5, "")
请将结果与省略PAD_WITH的默认行为(公式)进行比较:
将多行合并为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)
将多列组合成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)
包装并排序阵列
在源范围的情况下,在您希望将输出分类的情况下以随机顺序为准值时,以此方式进行:
- 按照您想要的方式对初始数组进行排序。
- 将排序的阵列提供给包裹或包裹。
例如,将B4:B23的范围包装到行中,每个值中的4个值,然后对结果进行排序,从A到Z,构造一个公式:
=WRAPROWS(SORT(B4:B23), 4)
要将相同范围包裹在列中,每个值10个值,然后按字母顺序排序输出,公式为:
=WRAPCOLS(SORT(B4:B23), 10)
结果如下:
提示。要按降序排列在结果数组中的值,请将排序函数的第三个参数( 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列。
这些公式如何工作
在两个公式的核心中,我们使用索引函数,该功能根据行和列号从提供数组中返回值:
索引(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, "")
这些公式如何工作
本质上,这些公式像上一个示例一样工作。区别在于您如何确定索引函数的row_num和col_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中文网其他相关文章!

Google主张Countif:综合指南 本指南探讨了Google表中的多功能Countif函数,展示了其超出简单单元格计数的应用程序。 我们将介绍从精确和部分比赛到Han的各种情况

本教程提供了共享Excel工作簿,涵盖各种方法,访问控制和冲突解决方案的综合指南。 现代Excel版本(2010年,2013年,2016年及以后)简化了协作编辑,消除了M的需求

本教程探讨了将.xls文件转换为.jpg映像的各种方法,包括内置的Windows工具和免费的在线转换器。 需要创建演示文稿,安全共享电子表格数据或设计文档吗?转换哟

本教程阐明了Excel名称的功能,并演示了如何定义单元格,范围,常数或公式的名称。 它还涵盖编辑,过滤和删除定义的名称。 Excel名称虽然非常有用,但通常是泛滥的

本教程阐明了平均值的标准偏差和标准误差之间的区别,指导您掌握标准偏差计算的最佳Excel函数。 在描述性统计中,平均值和标准偏差为interinsi

该Excel教程演示了如何计算正方根和n根。 找到平方根是常见的数学操作,Excel提供了几种方法。 计算Excel中正方根的方法: 使用SQRT函数:

解锁Google表的力量:初学者指南 本教程介绍了Google Sheets的基础,这是MS Excel的强大而多才多艺的替代品。 了解如何轻松管理电子表格,利用关键功能并协作


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 Linux新版
SublimeText3 Linux最新版

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

Atom编辑器mac版下载
最流行的的开源编辑器

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。