使用 INDEX 在列表中查找多个值

使用 INDEX 在列表中查找多个值

我正在使用这个公式来查找工作簿第一张表的 B 列中 CUCUMBERS 的所有实例:“ITS”与 X 列中的 B 列相同。

到目前为止,效果很好,正如我所希望的那样,只是它只返回部分 CUCUMBERS,而不是全部。我使用相同的公式交换位置来查找在 D 列中找到的 PO#,这样我就能知道它返回给我的是哪些 CUCUMBERS,并且它会跳过此搜索中的前两个。

请记住,我的数据包括其他农产品,如菠菜、猕猴桃、胡萝卜等……所有这些都位于黄瓜条目的上方和下方,这就是黄瓜位于第 24:30 行的原因。此公式需要能够从整个列中提取数据,并返回名称的每个实例;因此,如果黄瓜有 15 个条目,我需要它在我的第二张表上反映 15 个条目。

这里的基本目标是找到特定农产品的每个实例,并从列出该产品的每一行中提取所有数据。如果有更简单的方法可以做到这一点,我也会接受。以下是信息:

=INDEX(ITS!$B$4:$X$56,SMALL(IF(ITS!$B$4:B56=$B$1,ROW(ITS!$B$4:B56)),ROW(ITS!3:56))-3,23)

以下是 ITS 表的一个示例:

       B               C          D

 24   CUCUMBER  ANDREW&WILLIAM  381873

 25   CUCUMBER  ANDREW&WILLIAM  381873

 26   CUCUMBER  ANDREW&WILLIAM  381873

 27   CUCUMBER  DIVINE          611881

 28   CUCUMBER  WHOLESUM        100328

 29   CUCUMBER  WHOLESUM        100328

 30   CUCUMBER  DIVINE          1002874

问题是,当我运行公式时;我只返回最后 5 个,而它跳过了前两个条目。

答案1

您从第 3 行开始计算公式,因此它从第 3 个结果开始。从第一行开始或使用ROW(ITS!3:56)-2

为什么你需要使用公式?我会使用数据透视表(如果你需要在每一行显示黄瓜,你可以设置“重复项目标签”)。

答案2

这个ROW(ITS!3:56)论点SMALL没有意义。

你的公式现在的作用是:

SMALL函数正在调用{3,4,5,...,56}匹配数组中第最小的项目在单个细胞中纯属偶然,这给人一种按预期工作的错觉,因为在单单元格公式中只使用了此数组中的第一个项。因此,在第一个条目中,您得到的是第三小项。

当你向下填充时,它会调用{4,5,6,...,57}第 1 个项目,碰巧的是,调用第 4 个最小项目。依此类推。

您希望公式执行的操作:

您希望的最后一个参数SMALL是一个数字(而不是数组),当公式向下填充时,该数字会增加 1。

您可以使用来实现这一点ROWS。在第一个公式中,将其用作中的最后一个参数SMALL

`ROWS($1:1)`

随着您填写公式,该值将增加 1。

相关内容