如何查找exception的Excelmatrix

这可能会变得复杂…请耐心等待…

我有一张表,从我在研究中发现的情况来看,使用查找公式和函数是一个有点特殊的情况。 显示比描述要容易得多,这里是我的数据的屏幕截图,用于表示我正在处理的内容(实际表格向下延伸60行,向右延伸160列)。 在这里输入图像说明

(我将把列A中的值作为“结果”,将第2行中的值作为“块编号”,将块编号下面的matrix作为“参考编号”)。

我想要做的是创build一个公式,其中如果插入给定的块号(例如,“BA000-”)和参考号(例如“040”),则Excel将返回结果列表(以我的例子为准,它会列出“BBB”,“CCC”,“EEE”,“FFF”和“KKK”)。

我一直在研究这个问题两天,尝试每个查找function和我能find的function组合(包括但不限于INDEX-MATCH,INDEX-MATCH-MATCH,VLOOKUP-HLOOKUP等)。 不pipe我使用什么function,我总是提出错误。 我还没有尝试VBA,因为我没有时间深入研究这个问题,但是我开始认为我将不得不屈服于那个黑暗的一面或切换到Access(我的熟练程度比Excel低得多)。

任何帮助将不胜感激,并获得了783个要点(或任何个人喜欢的放纵系统)。 如果您需要更多信息,请不要犹豫,让我知道。

编辑:我必须在平衡工作时间(因为这是我一直在为我的工作承担的项目)上工作,所以这可能需要我一分钟,但我会尝试获得更多的信息表来玩弄。 在此期间,非常感谢大家帮助我到目前为止!

编辑#2: 这是一个链接到我正在使用的文件(托pipe在Google云端硬盘上)的示例。 我尽量使其尽可能简明扼要,但如前所述,请让我知道是否需要其他任何信息。 我正在使用的实际文件一直跨到专栏EP,但我认为,大文件是不必要的。

这是什么的要点是一个参考工具,以find一个特定的组件(物料清单)使用的模型。 在查找零件号(在一个单独的文件中)后,给出了该零件的一个程序段编号和一个参考编号,当在matrix中交叉参考时,该编号告诉你该零件在哪个模型中被使用。我的目标是创build一个自动search工具,将列出当用户input块和参考数字(如模型的实际列表,虽然都是唯一的,可能会变得相当长并且繁琐的过滤)时使用的零件的所有模型。

和以前一样,任何对实现这个目标的帮助都非常感谢。 如果需要其他信息,请告诉我。

这是一个适合你的公式。 不知道你的确切范围,我select使用命名范围,你可以根据需要进行replace。

使用的命名范围:

  • 结果 :这是列A(AAA,BBB等)中的“结果”列表
  • BlockHeaders :这是包含块编号(BA000-,BA010-等)的标题行
  • tblData :这是包含您的参考号( 032,040等)的数据表
  • BlockNum :这是包含您正在查找的特定块号的单元格(根据您的示例设置为BA000)
  • RefNum :这是包含您正在查找的特定参考号的单元格(根据您的示例设置为040)

使用这些命名的范围,这个公式应该适用于你假设所有的结果是唯一的(如你的例子所示)。 我把这个公式放在单元格B4中的一个单独的表格中,并复制下来:

 =IFERROR(INDEX(Results,MATCH(1,INDEX((COUNTIF($B$3:$B3,Results)=0)*(INDEX(tblData,0,MATCH(BlockNum,BlockHeaders,0))=RefNum),),0)),"") 

tigeravatar有一个关于命名范围的好主意。 如果可以的话,我会提供相同的build议。

这是一个input到F10的公式,并按照我的截图复制下来:

=IFERROR(INDEX($A:$A, SMALL(IF(INDEX($C$4:$E$8, 0, MATCH($B$1, $C$2:$E$2, 0))=$A$1, ROW($A$4:$A$8), 1E+99), ROWS($F$10:$F10))), "")

1)如你所见,search的值在A1和B1中。

2)第二个INDEX函数中的$C$4:$E$8范围是“参考数字”块。 展开引用或使用命名范围(更好)

3) $C$2:$E$2在MATCHfunction是您的块代码。 展开或使用命名范围

4)行ROW($A$4:$A$8)需要涵盖所有的“结果”。 展开或使用命名范围

5)行ROWS($F$10:$F10)需要修改,以匹配你想要列表出现的第一个单元格。 所以,如果你在AX1,你会使用ROWS($AX$1:$AX1) – 请注意美元符号略有不同。

在这里输入图像描述