excel 按范围中的行连接

ut6juiuv  于 2023-03-24  发布在  其他
关注(0)|答案(2)|浏览(106)

我有一个命名范围:我称之为range 1。它有多个列和行。假设它是3x 3。我想在一个公式中生成一个3x 1的新范围-每行是range 1中3列的连接。示例:
范围1:
| A类|B|C级|
| - ------|- ------|- ------|
| 苹果|蓝色|猴子|
| 香蕉|绿色|熊|
| 葡萄|黄色|猫|
公式应生成:
| D级|
| - ------|
| 苹果蓝猴|
| 香蕉绿熊|
| 葡萄黄猫|
这样做的目的是将range 1与字符串如'AppleBlueMonkey'进行比较。这样做的原因是我希望做类似于索引(range 1,range 1 =A1:C1)的事情,其中A1,B1 & C1是“Apple”,“Blue”,“Monkey”。到目前为止,我还没有想出一种方法来在一个自包含的公式中做到这一点,而不必分别复制和写下几行和列的范围。

xesrikrc

xesrikrc1#

在Office 365中,我们可以使用BYROW:

=BYROW(range1,LAMBDA(z,CONCAT(z)))

但是我会使用TEXTJOIN来代替,在单元格之间放置一些东西,这样你就知道你正在匹配一个真正的匹配:

=BYROW(range1,LAMBDA(z,TEXTJOIN("|",,z)))

那么你的指数应该是:

=INDEX(range1,MATCH(TEXTJOIN("|",,A1:C1),BYROW(range1,LAMBDA(z,TEXTJOIN("|",,z))),0),SEQUENCE(,COLUMNS(range1)))
hwamh0ep

hwamh0ep2#

您可以使用ARRAYFORMULA函数沿着&运算符连接命名范围range1的每一行中的列。
假设range1是引用范围A1:C3的命名范围,则可以使用以下公式生成串联范围:
=ARRAYFORMULA(range1&"”)
此公式将命名范围的每一行与空字符串连接起来,其效果是将列转换为文本并将它们连接在一起。结果是一个包含连接值的3x1数组。
要使用此串联区域进行查找,可以使用MATCH函数查找串联区域中搜索字符串的位置。例如,如果搜索字符串位于单元格A4中,则可以使用以下公式:
=MATCH(A4,ARRAYFORMULA(range1&"”),0)
此公式在串联范围内搜索单元格A4中的值,并返回找到该值的行号。

相关问题