我有一个样本表如下。我希望基于任何可能的标题组合返回所有为“是”的行。例如,如何返回标题1为“是”且标题2和标题3为“是”的所有行,或者标题5和标题6为“是”的所有行?enter image description here
368yc8dk1#
假设我们有下表:| | A类|B|C级|D级|| - ------|- ------|- ------|- ------|- ------|| 1个||H1|氢|H3|| 第二章|I1|是|是||| 三个|I2||是|是|| 四个|I3|是||是|首先,我们可以让所有列将其自身标记为具有Y或您想要的任何值,如下所示
Y
=IF(B2=$A$1,ROW(B2),"")
其中,$A$1是要与之进行比较的单词的位置,this复制表中的数据并将其放在其他位置,如下所示
$A$1
然后,您可以将一行包含此公式的单元格连接到当前行值以形成单个结果
=CONCAT(B6:B8)
如果您想在行号之间添加一些分隔符,您可以在第一个答案之后和第二个答案之前添加分隔符。请注意,每列可以使用一个公式,但这会使编写过程变得繁琐,并且难以扩展。还要注意的是,如果你想做任何更复杂的事情,你可以研究宏,而不是完全使用Excel,而是使用数据库软件。
wn9m85ua2#
in
cols
I2
=LET(in, A2:F10, cols, 1*TEXTSPLIT(G2,,","), set, N(DROP(in,,1)="Yes"), cnts, MMULT(CHOOSECOLS(set, cols), SEQUENCE(ROWS(cols),,1,0)), f, FILTER(in, cnts=ROWS(cols), "No rows match"), IF(f=0, "", f))
注意:您可以使用BYROW代替MMULT,如下所示。这取决于个人喜好:BYROW(CHOOSECOLS(set, cols), LAMBDA(r, sum(r))) .
BYROW
MMULT
BYROW(CHOOSECOLS(set, cols), LAMBDA(r, sum(r)))
并选择单元格G2中的标题列位置。以下是2和3列的输出(AND条件由以下公式确定:cnts=ROWS(cols)):
G2
2
3
AND
cnts=ROWS(cols)
正如你所看到的item2和item9满足条件,如果输入列返回空集,它返回消息:No rows match .
item2
item9
No rows match
2条答案
按热度按时间368yc8dk1#
假设我们有下表:
| | A类|B|C级|D级|
| - ------|- ------|- ------|- ------|- ------|
| 1个||H1|氢|H3|
| 第二章|I1|是|是||
| 三个|I2||是|是|
| 四个|I3|是||是|
首先,我们可以让所有列将其自身标记为具有
Y
或您想要的任何值,如下所示其中,
$A$1
是要与之进行比较的单词的位置,this复制表中的数据并将其放在其他位置,如下所示然后,您可以将一行包含此公式的单元格连接到当前行值以形成单个结果
如果您想在行号之间添加一些分隔符,您可以在第一个答案之后和第二个答案之前添加分隔符。
请注意,每列可以使用一个公式,但这会使编写过程变得繁琐,并且难以扩展。
还要注意的是,如果你想做任何更复杂的事情,你可以研究宏,而不是完全使用Excel,而是使用数据库软件。
wn9m85ua2#
in
),标题的列位置为(cols
),用逗号分隔。在I2
中输入以下公式:注意:您可以使用
BYROW
代替MMULT
,如下所示。这取决于个人喜好:BYROW(CHOOSECOLS(set, cols), LAMBDA(r, sum(r)))
.并选择单元格
G2
中的标题列位置。以下是2
和3
列的输出(AND
条件由以下公式确定:cnts=ROWS(cols)
):正如你所看到的
item2
和item9
满足条件,如果输入列返回空集,它返回消息:No rows match
.