【问题标题】:Match and Conditional Formatting from Matrix矩阵的匹配和条件格式
【发布时间】:2020-03-12 10:36:12
【问题描述】:

看看我的这个矩阵方案:

这就像用 -1- 和 - _ - 填充的“base”,其中 -1- 表示与其中一些选项不兼容。

在另一张纸上,我得到了一些下拉菜单,它试图为这些组合中的许多组合找到正确的匹配项,使用:

=MATCH(A10;$T$14:$T$121;0) 
=MATCH(A10;$S$14:$BL$14;0)

所以对于水平和垂直匹配(第一个匹配是垂直和第二个水平),然后:

=OR(INDEX($S$14:$BO$119;B12;$B$13)="nk";INDEX($S$14:$BO$119;B12;$C$13)="nk";INDEX($S$14:$BO$119;B12;$D$13)="nk";INDEX($S$14:$BO$119;B12;$E$13)="nk";INDEX($S$14:$BO$119;B12;$F$13)="nk";INDEX($S$14:$BO$119;B12;$G$13)="nk";INDEX($S$14:$BO$119;B12;$H$13)="nk";INDEX($S$14:$BO$119;B12;$I$13)="nk")

..当某物与某物兼容时的真/假语句,所以我可以在条件格式中使用它。

还有其他方法可以做到这一点吗?这样当我在下拉菜单中选择一些选项时,我可以充分和 100% 正确匹配?

您现在能看到实际的问题吗,灰色框是我的参考(下拉菜单的变化取决于配置),我必须在其中查看我已经更新的矩阵,如果匹配,我应该为条件格式获取一些布尔值,就像我所做的那样,但我不确定这是否是好方法。 我仍然使用这个:

=OR(INDEX(_0359_matrix[#All];E16;$B$14)="1";INDEX(_0359_matrix[#All];E16;$C$14)="1";INDEX(_0359_matrix[#All];E16;$D$14)="1";INDEX(_0359_matrix[#All];E16;$D$14)="1";INDEX(_0359_matrix[#All];E16;$E$14)="1";INDEX(_0359_matrix[#All];E16;$F$14)="1";INDEX(_0359_matrix[#All];E16;$G$14)="1";INDEX(_0359_matrix[#All];E16;$H$14)="1";INDEX(_0359_matrix[#All];E16;$I$14)="1";INDEX(_0359_matrix[#All];E16;$J$14)="1";INDEX(_0359_matrix[#All];E16;$K$14)="1";INDEX(_0359_matrix[#All];E16;$L$14)="1";INDEX(_0359_matrix[#All];E16;$M$14)="1";INDEX(_0359_matrix[#All];E16;$N$14)="1";INDEX(_0359_matrix[#All];E16;$O$14)="1";INDEX(_0359_matrix[#All];E16;$P$14)="1";INDEX(_0359_matrix[#All];E16;$Q$14)="1";INDEX(_0359_matrix[#All];E16;$B$17)="1")

..建议的公式不能正常工作。还有更多的组合应该一起做。有点混乱,很难解释。

所以第三次尝试。它只是整个画面的一小部分。在下拉区域(黄色字段)中,您有不同的组(模型、传感器等),每次我更改其中一些时,我应该在 B14 和 B15 中的 2's(值为 2)的位置,如此水平和垂直位置取自主矩阵区域。这个假/真布尔值应该在有特定匹配时给出 -> 真( 1 )和假时( _ )和当我得到( 1 )或真时并行将颜色变为红色。事情是你可以看到在同一时间可以有更多的匹配可以说,例如,一些零件与超过 1-2 个零件不兼容,它们必须同时变红! 这就是我在 B16 函数中创建这个 = or(index) 的原因,它实际上是从矩阵方案中获取所有内容,结合位置(B14 和 B15)并给我正确的答案。
不知道现在能不能理解。希望你明白了。

【问题讨论】:

  • 其实你的问题是什么?我的意思是总有其他方法可以做某事。 INDEX 和 MATCH 有什么问题?
  • 我还是不明白问题是什么。你能在你的截图中用一个具体的例子来解释它吗?喜欢:从单元格 B12 中取值 VD1 将其与屏幕截图 1 中的第 1 行匹配,然后……等等。因为如果我们不知道哪个单元格是哪个单元格,那么您的公式对我们毫无用处。结帐 [mvce] 如果这有助于你给我们一个很好的例子。
  • @Pᴇʜ 已编辑!!!希望你现在明白了....
  • 我已经卡在这里了:“B14 和 B15 如此水平和垂直位置,取自主矩阵区域”。什么是“主矩阵区域”?您在 Excel 中使用非标准名称和术语,并且在使用前不介绍它们。这让人很难理解。主矩阵区域是图 1 中的那个吗? • 另外,第 14/15 行的数字是从哪里来的?并且您的图片每次都会更改行/列引用。图 2 第 15 行有 FALSE,但在图 3 第 15 行有数字。哪张图片与您问题中公式中的地址匹配?
  • 然后你说“事情是你可以看到在同一个中可以有更多的匹配” 我什至不知道你试图匹配什么/在哪里找到?您搜索的价值是什么?您尝试查找该 search_value 的数据源是什么? • 尽量不要显示数据行神奇地移动到另一行的图片,这使得了解正在发生的事情变得非常困难。引用某些数据时,请使用文本中的行号/列号。我不知道如何更好地解释它,但我在图片中找不到你在文字中所说的内容。

标签: excel vba excel-formula excel-2016


【解决方案1】:

这对您有帮助吗?图中的公式是

=OFFSET(A1,MATCH(I9,A:A,0)-1,MATCH(I8,1:1,0)-1)
           ---------------   ---------------
                  |                 |
                  V                 V
=OFFSET(A1,       5       -1,       3       -1)

这意味着从 A1 偏移 4 行和右 2 列,这使您最终进入 C5。

它匹配标题行和标题列得到它的编号,然后使用Offset从A1移动这些行和列的数量来获取网格中的值。

当然,正如 MG92 指出的那样,INDEX 会更好,因为它不是易失性的:

=INDEX(A1:E6,MATCH(I9,A:A,0),MATCH(I8,1:1,0))

【讨论】:

  • 如果不使用易失的偏移量,INDEX($A$1:$E$6,MATCH(I9,A:A,0),MATCH(I8,1:1,0)) 不会给你同样的结果吗?
  • @MG92 我觉得在这里使用 Offset 确实有些奇怪。但实际上问题是 “还有其他方法可以做到这一点吗?” 问题是 OPs 的问题已经有点奇怪和不清楚了。 • 但是,是的,你是对的 INDEX 会更好。
  • @MG92 嗨,检查编辑版本...索引匹配但不是以这种特定方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-13
  • 2020-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多