如果行中的另一列满足特定条件,则返回行中某一列的值

如果行中的另一列满足特定条件,则返回行中某一列的值

我希望能够从一列单元格中获取值,如果另一列中的数据符合条件。请看图片,然后继续阅读。

截屏。

因此,如果列中包含以下文字,我想创建一列来显示所有SRaverage值:naziv sloja

kora trošenja

如果列中有文本,则另一列显示所有SRaverage值:naziv sloja

osnovna stijena

所以我想提取一列中 osnovna stijena 的 SRaverage 值,以及另一列中 osnovna stijena 的 SRaverage 值。

有没有办法做到这一点?

答案1

当然。我想到了一些方法,但旧方法有点复杂。现在你只需使用该FILTER()函数即可。

与其他查找相比,您更愿意使用它,因为它会为您提供查找值的多个结果。它们都允许您获取与查找值相关的多个列,但只能获取查找值的一个实例。如果您有多个查找值,那么您就没那么幸运了。

因此,进行过滤。这将为您提供查找值的所有出现位置。

但是,您只需要一列,而不是中间的所有列。同样,也有很多方法可以做到这一点。我将特别提到其中一个失败者,因为它可以在许多情况下使用,包括VLOOKUP()“向左看”,而每个人都告诉你你做不到。

即在公式内部创建一个表,用于INDEX()提取感兴趣的两列,即查找值和结果值。这样,中间就没有列了,所以您只能返回单个列。使用VLOOKUP(),您可以将其用作第二个参数,即查找表,并反转列,这样“实际表”中查找值左侧的列就是公式内部表中的第二列,这样VLOOKUP()就可以得到所需的结果。您可以通过{2,1}在 中使用列参数INDEX()来反转它们的顺序。

不过,在这里,获取所需单个列的最简单方法是使用第二个FILTER()函数包裹上述第一个函数,或“内部函数”。因此,内部函数仅获取与查找值匹配的行,而外部函数仅获取所需的列。人们有时将此称为FILTER/FILTER(仿照INDEX/MATCH)。

但是你该怎么做呢?好吧,在里面你必须做一个相当传统的第二个参数来指定要返回哪些行。看看你是如何告诉它匹配查找列中的查找值的?Blah-blah 等于某某?全部独特而复杂?这将产生一个 TRUE/FALSE 值数组以FILTER()提取所需的行。你可以传递一些类似{1;0;0;1;1;0;0;0}获取第 1、4 和 5 行的内容,但这样你就自己做了工作,对吗?(顺便说一句,请注意;该数组常量中每个元素之间的:向下,而不是像使用逗号那样横向)所以你给它更复杂的版本,A1:A9="a"让它找到它们全部。

但是对于第二个,不需要查看 100,000 行来查找匹配项,只需问“您想要该列吗?”,并且您可以通过键入 TRUE 和 FALSE 值的数组或仅键入 1 和 0(因为它们更容易)来轻松键入(或通过其他方式为其生成一个数组常量)。所以你这样做:

=FILTER(FILTER(B10:N24,B10:B24="kora trošenja"),{0,0,0,0,0,0,0,0,0,0,0,0,1})

=FILTER(FILTER(B10:N24,B10:B24="osnovna stijena"),{0,0,0,0,0,0,0,0,0,0,0,0,1})

当然,您可以使用所有常用的方法来输入参数,而不是例如键入(“硬编码”)查找值。您可以使用公式生成数组常量,我想到几种方法。或者使用 newARRAYTOTEXT()并将数组类型指定为“strict”,在一行中输入 1 和 0,或者在行中使用更有趣的值,也许还可以进行复杂的查找以查看要包含哪些列(例如,有人从三个(因此没有拼写validated错误)下拉列表启用的单元格中选择它们(因此对他们来说并不难,而且不会出现拼写错误破坏事物)并且您的公式查找他们的列,将 1 发送到ARRAYTOTEXT()该列在序列中的位置……世界成为您的囊中之物。但上述简单方法适用于少量列。(虽然使用INDEX()使它变得更小……只是更复杂,但并不多。)

因此INDEX()可以在这里使用,使内部查找表FILTER()只考虑查找值列和结果列,然后也可以将其应用于外部FILTER()。混合搭配或仅使用纯FILTER/FILTER技术。

最后,还记得如何VLOOUP()只向左看,但INDEX()可以反转公式中的列顺序,这样它就可以工作而不是拒绝你吗?好吧,FILTER()也只有“向右看”。除了……您可以使用INDEX()查找列,将其放在第一位,然后将输出中需要的列放在它后面,按照您希望返回数据的顺序排列,并将其呈现到内部,这样FILTER()在公式中,它就向右看,而不是向左看,并且可以工作。在这种情况下,额外的好处是,如果您不介意在结果中包含查找值列,则不需要外部,FILTER()因为您只包含了您需要的列。

再次,世界在这里尽在您的掌控之中,并且主题还存在更多变化。

但是,上述公式绝对简单明了,一年后当老板希望别人更新它时,很容易理解。但你不会,因为你已经升职了,不会为这些事情烦恼!

相关内容