Excel 返回唯一的列标题匹配条件

Excel 返回唯一的列标题匹配条件,excel,excel-formula,Excel,Excel Formula,考虑以下数据: | 1st | 2nd | A | B | C | D | E | F | G | H | |-----|-----|---|---|---|---|---|---|---|---| | y | x | | | 1 | | | | | | | y | x | | | 1 | | | | | | | y | x | | | | 1 | | | | | | | x

考虑以下数据:

| 1st | 2nd | A | B | C | D | E | F | G | H |
|-----|-----|---|---|---|---|---|---|---|---|
| y   | x   |   |   | 1 |   |   |   |   |   |
| y   | x   |   |   | 1 |   |   |   |   |   |
| y   | x   |   |   |   | 1 |   |   |   |   |
|     | x   | 1 |   |   |   |   |   |   |   |
| y   |     | 1 | 1 | 1 |   |   |   |   |   |
| y   | x   |   |   |   |   |   | 1 |   |   |
| y   |     |   |   |   |   |   |   | 1 |   |
|     | x   |   |   |   |   | 1 |   |   |   |
|     | x   |   |   |   |   |   |   |   | 1 |
| y   | x   |   |   |   |   |   |   |   | 1 |
我想做的是返回从A到H的所有列标题,这些标题满足以下条件:它的值应为1,并且与前两列的y和x值对齐

我已经有了一个工作数组公式来实现这一点,如下所示:

{=INDEX($C$1:$J$1,SMALL(IF(($A$2:$A$11="y")*($B$2:$B$11="x")*($C$2:$J$11=1),COLUMN($C$1:$J$1)-COLUMN($B$1)),ROW(1:1)))}
但是,当我向下拖动它时,它返回两个C值,一个用于D、F和H

这是因为标题C下有两个1符合上述条件。我想要的是返回唯一的值,所以C应该只返回一次。我尝试使用MATCH和additional COUNTIF来代替小函数,但它返回了一个错误,Excel的“求值公式”功能也没有帮助。下面是我试验过的错误公式:

{=INDEX($C$1:$J$1,MATCH(0,IF(($A$2:$A$11="y")*($B$2:$B$11="x")*($C$2:$J$11=1),COUNTIF($N$1:N1,COLUMN($C$1:$J$1)-COLUMN($B$1))),0))}
我目前正在做的一个解决方法是将我的第一个公式设置为帮助器列,然后根据第一个公式的结果创建另一个公式,以仅返回唯一的值。然而,由于我处理的数据量巨大,双数组公式严重影响了Excel的计算效率


任何帮助/建议都可以,请不要使用VBA,因为我相信这里不需要。谢谢

您是否尝试过不使用数组公式?我不知道数据到底有多大。但是,这可能是您正在寻找的:

=IF(COUNTIFS($A:$A,"y",$B:$B,"x",C:C,1)>0,C1,"")
假设A列是第一列,H列是colunm J中的最后一列。尝试将公式粘贴到K1,并将其向右拖动到S1


插入辅助行。我是在你的数据前的标题行下做的。在这一行中,检查是否有1与x和y对齐。我假设这是非空的,但如果其特定值将公式从=y或=134(视情况而定)更改为。将以下公式放在您感兴趣的第一列标题下,并复制到右侧

=--(0<SUMPRODUCT(($B$3:$B$12<>"")*($C$3:$C$12<>"")*(D3:D12=1)))
如果您复制的公式超出了适用列的数量,则当没有列标题时,上述公式将被置于空白值中

以上公式基于下面的概念验证图。调整范围以满足您的需要


嗨,谢谢你有时间帮忙!我会谦卑地道歉,因为我可能没有具体说明我希望它如何出现。我正在寻找一个公式被向下拖,而不是向右拖,并且我不希望在满足我的条件的值之间有任何空格。我在上面粘贴的第一个公式就是这样做的,但它无法过滤出重复的值。我试图尽可能避免使用辅助值,但似乎没有单一的公式,对吗?可能有,但我想不出一个。如果单一公式非常复杂,将来您或其他可能需要维护工作表的人可能很难跟踪和编辑该工作表。有时候帮助栏可以让生活变得更轻松。我同意在这个意义上使用帮助栏。只是想好奇一下,在这种情况下,一个单一的公式可能吗?我想看看它会是什么样子,我也想进一步学习。
=IFERROR(INDEX($1:$1,AGGREGATE(15,6,COLUMN($D$2:$K$2)/$D$2:$K$2,ROW(A1))),"")