在Torow函数的帮助下,将一系列单元范围变成单行的快速方法。
Microsoft Excel 365引入了几个新功能,以执行各种阵列的操作。使用Torow,您可以立即执行范围对行转换。这是此新功能可以完成的任务列表:
Excel中的Torow函数用于将数组或范围的单元格转换为一行。
该函数总共需要三个参数,其中仅需要第一个参数。
Torow(数组,[忽略],[scan_by_column])在哪里:
数组(必需) - 一个数组或范围,要转换为单行。
忽略(可选) - 确定是忽略空白还是/和错误。可以采用以下价值之一:
scan_by_column (可选) - 定义如何扫描数组:
尖端:
Torow是一个新功能,仅在Microsoft 365(用于Windows和Mac)的Excel中支持,并为Web提供Excel。
要进行简单的范围对行转换,请使用其基本形式的Torow公式。为此,您只需要定义第一个参数(数组)。
例如,要将一个由3列和3行组成的二维数组变成一行,该公式为:
=TOROW(A3:C6)
您只需将公式输入一个单元格(在我们的情况下为A10),并且它会自动溢出到所需的尽可能多的单元中,以保持所有结果。在Excel术语中,被薄蓝色边框包围的输出范围称为溢出范围。
该公式如何工作:
首先,提供的各种单元格被转化为二维阵列。请注意,逗号限制的列和半分离的行:
{"Apple","Banana","Cherry";1,2,3;4,5,6;7,8,9}
然后,Torow函数从左到右读取数组,并将其转换为一维水平数组:
{"Apple","Banana","Cherry",1,2,3,4,5,6,7,8,9}
结果归于细胞A10,从中溢出到右侧的相邻单元格中。
默认情况下,Torow函数可将所有值从源数组中保留,包括空单元格和错误。在输出中,零值出现在空白单元中,这可能会令人困惑。
要排除空白,请将忽略参数设置为1:
=TOROW(A3:C5, 1)
要忽略错误,请将忽略参数设置为2:
=TOROW(A3:C5, 2)
要跳过,空白和错误,请使用3用于忽略参数:
=TOROW(A3:C5, 3)
下图显示了所有三个方案的行动:
借助默认行为,Torow函数从左到右水平处理数组。要按列扫描从上到下的值,您将3 rd参数( scan_by_column )设置为true或1。
例如,要逐步读取源范围,E3中的公式为:
=TOROW(A3:C5)
要按列扫描范围,E8中的公式为:
=TOROW(A3:C5, ,TRUE)
在这两种情况下,最终的数组的大小都是相同的,但是值以不同的顺序排列。
要将几个非贴剂范围组合到单行中,您首先在Hstack或vStack的帮助下将它们水平或垂直堆叠到一个数组中,然后使用Torow函数将组合的数组转换为一行。
根据您的业务逻辑,以下公式之一将执行任务。
在A3:C4中的第一个范围和A8:C9中的第二范围内,下面的公式将水平堆叠到单个数组中,然后将其转换为从左到右读取值的行。结果在下图中的E3中。
=TOROW(HSTACK(A3:C4, A8:C9))
为了从上到下垂直读取堆叠的数组,您将Torow的第3个参数设置为true,如下图所示:
=TOROW(HSTACK(A3:C4, A8:C9), ,TRUE)
为了将每个后续数组附加到上一个数组的底部并水平读取组合数组,E12中的公式为:
=TOROW(VSTACK(A3:C4, A8:C9))
要将每个后续数组添加到上一个阵列并垂直扫描组合的数组,该公式为:
=TOROW(VSTACK(A3:C4, A8:C9), ,TRUE)
为了更好地理解逻辑,请在结果数组中观察不同的值顺序:
从Microsoft Excel 2016开始,我们拥有一个出色的功能,名为唯一的功能,可以轻松地从单列或行获得唯一的值。但是,它无法处理多列阵列。为了克服这一限制,请一起使用独特的和Torow功能。
例如,从范围A2:C7提取所有不同(不同的)值并将结果放在一行中,该公式为:
=UNIQUE(TOROW(A2:C7), TRUE)
当Torow返回一维水平数组时,我们设置了True独特的第二个( BY_COL )参数,以将列相互比较。
如果您希望按字母顺序排列的结果,请在排序函数中包装上述公式:
=SORT(UNIQUE(TOROW(A2:C7), TRUE), , ,TRUE )
与唯一一样,by_col的排序参数也设置为true。
在不可用的Torow函数的Excel版本中,您可以使用一些在较旧版本中起作用的不同功能的组合将范围转换为单行。这些解决方案更为复杂,但是它们确实有效。
为了水平扫描范围,通用公式为:
索引(范围,商(列(A1)-1,列(范围))1,mod(列(A1)-1,列( range ))1)为了垂直扫描范围,通用公式为:
索引(范围,mod(列(A1)-1,列(范围))1,商(列(A1)-1,列( range ))1)对于我们在A3:C5中的示例数据集,公式采用以下形状:
逐行扫描范围:
=INDEX($A$3:$C$5, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5)) 1, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5)) 1)
该公式是Torow函数的替代方法,其3 rd参数设置为false或省略:
=TOROW(A3:C5)
通过列扫描范围:
=INDEX($A$3:$C$5, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5)) 1, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5)) 1)
此公式等同于Torow函数,将第3个参数设置为true:
=TOROW(A3:C5, ,TRUE)
请注意,与动态阵列Torow函数不同,这些传统公式应在您希望出现结果的每个单元格中输入。在我们的情况下,第一个公式(按行)转到E3,并通过M3复制。第二公式(按列)降落在E8中,并拖入M8。
为了使公式正确复制,我们使用绝对参考($ 3:$ C $ 5)锁定范围。命名范围也将做到。
如果您将公式复制到超出所需的单元格,请使用#REF!错误将出现在“额外”单元格中。要解决此问题,请将您的公式包装在这样的IfError函数中:
=IFERROR(INDEX($A$3:$C$5, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5)) 1, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5)) 1), "")
这些公式如何工作
以下是第一个公式的详细分解,该公式按行安排值:
=INDEX($A$3:$C$5, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5)) 1, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5)) 1)
在公式的核心上,我们使用索引函数根据单元在该范围内的相对位置获取值的值。
行号由此公式计算:
QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5)) 1
这个想法是产生重复的数字序列,例如1,1,1,2,2,2,3,3,3,…每个数字重复的次数与源范围内的列一样多次。这就是我们这样做的方式:
商返回一个部门的整数部分。
对于分子,我们使用列(A1)-1,该列在第一个单元格中从0中返回序列号,其中公式将输入到n (范围为负1中的值总数)中的最后一个单元格中的序列号(范围为负1的总数)。在此示例中,我们在E2中有0和M3中的0。
对于分母,我们使用列($ a $ 3:$ c $ 5))。这将返回一个等于您范围内的列数(在我们的情况下为3)的恒定数。
结果,商函数在前3个单元格中返回0(E3:G3),我们添加1个,因此行号为1。
对于接下来的3个单元格(H3:J3),商返回1,1给出了第2行,依此类推。
要计算列号,您可以使用MOD函数构建适当的数字序列:
MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5)) 1
由于我们的范围内有3列,因此序列必须看起来像:1,2,3,1,2,3,…
MOD函数在除法后返回其余部分。
在E3中,Mod(列(A1)-1,列($ A $ 3:$ C $ 5))1
变成
mod(1-1,3)1)
并返回1。
在F3中
变成
mod(2-1,3)1)
并返回2。
建立行和列号后,索引很容易在该行和列的相交处获取值。
在E3中,索引($ A $ 3:$ c $ 5,1,1)返回从1 st Row和引用范围的1列的值,即来自单元A3的1列。
在F3中,索引($ A $ 3:$ c $ 5,1,2)从1 st Rong和2 nd列中返回一个值,即来自Cell B3的值。
等等。
第二个按列扫描范围的公式以类似的方式工作。不同之处在于,我们使用mod来计算行号和商来找出列号。
如果Torow函数导致错误,则最有可能是以下原因之一:
使用大多数Excel功能,一个#NAME?错误清楚地表明该函数的名称拼写错误。使用Torow,这也可能意味着该功能在您的Excel中不可用。如果您的Excel版本在365以外,请尝试使用Torow替代品。
#num!错误表明返回的数组不能适合行。当您引用整列和/或行而不是较小的范围时,通常会发生这种情况。
在大多数情况下,#spill错误表明您输入该公式的行没有足够的空白细胞将结果溢出。如果相邻的单元格在视觉上是空的,请确保其中没有空格或其他非打印字符。有关更多信息,请查看#spill错误在Excel中的含义。
这就是您在Excel中使用Torow函数将二维数组或范围转换为单行的方式。我感谢您阅读,并希望下周在我们的博客上见到您!
Excel Torow函数 - 公式示例(.xlsx文件)
以上是Excel Torow函数将范围或数组转换为行的详细内容。更多信息请关注PHP中文网其他相关文章!