【问题标题】:Excel help: appropriate function for lookup/match casesExcel 帮助:查找/匹配案例的适当函数
【发布时间】:2020-03-08 04:03:06
【问题描述】:

获得了一个巨大的数据集,该数据集在一个工作簿(我们称之为 W1)和另一个工作簿 (W2) 上动态连接和使用,这些数据集必须首先在那里更新 (W2),然后在主工作簿 ( W1)。

所以在这个工作簿W1下是需要定期填充的庞大数据集的一部分,具有一些功能或宏,但要避免大量的体力劳动。 我真正想要的是查找Column Uboth 行/列上下文以查找来自外部工作簿(W2)的匹配项。但问题是空行或稍后将添加的行 - 在列内标记为Reseviert,我不想破坏计算和函数上下文。

在第二个工作簿 W2 下是数据集,在不可用或 (1 ) 当它可用时,我总是要填充到主表中。

我尝试使用索引/匹配/匹配功能,但不知何故,它没有按我的意愿工作。我无法弄清楚,但只能在 Workbook 中复制/粘贴 XYZ 次,这非常耗时......

这是函数:IF(INDEX('0528-matrix.csv'!$A:$Y;MATCH(U80;'0528-matrix.csv'!$A:$A;0);MATCH(BE14;'0528-matrix.csv'!$1:$1;0));"n.k";"") 在其他表中“匹配”的情况下,此“nK”只是随机名称。

有什么建议吗??

【问题讨论】:

  • 首先分别进行每个匹配,如果它们按预期返回,则添加索引...最后是 if(),因为您没有说出错误是什么...跨度>
  • @SolarMike 我只想在“错误”的情况下清空单元格,当找不到匹配项时。我会看到的,谢谢
  • 试试 IF(INDEX('0528-matrix.csv'!$A:$Y;MATCH(U80;'0528-matrix.csv'!$A:$A;0);MATCH( BE14;'0528-matrix.csv'!$1:$1;0));"")
  • @SolarMike '=IF(INDEX($U$14:$DC$138;MATCH(U17;'0528-matrix.csv'!$A:$A;0);MATCH(X$14; '0528-matrix.csv'!$1:$1;0))=0;X17="_";"nk")' 我实际上用这个公式管理......但我不知道如何得到“空白”而不是“零”和“nk”当我得到一个匹配...我只是得到 0 和 NA....

标签: excel vba excel-formula excel-2013 excel-2016


【解决方案1】:

所以,不确定你到底在做什么,但这是基于我的最佳猜测:

=IF(OR(IFERROR(INDEX($U$14:$DC$138,MATCH(U20,'0528-matrix.csv'!$A:$A,0),MATCH(X$14,'0528-matrix.csv'!$1:$1,0)),"Check")=0,X17="_"),"n.k","")

所以,我假设索引结果是一个 OR() 与单元格 X17 的测试,但如果两者都需要为真,你可以使用 AND()...

iferror() 是为了给 if() 一个 false 来处理它,因为它需要从 index() 和 match() 中捕获错误。

如果 index() 返回一个结果,那么我也使用过,那么你应该得到“n.k”,如果没有,那么它将给出空白。您可以交换它们,因为它们只是 if value_if_true 和 value_if_false。

【讨论】:

  • 我得到的是 0 和 NA 字段,这不是我想要的。这就是我尝试使用此 "=0,X17="_"),"n.k","")" 但它无法正常工作的原因。当它从其他工作簿中击中(_)时,我想给我“空白”,当它从其他工作簿中击中(n.K)时,我想给我“空白”......这是唯一的事情。我认为这是正确的公式,从你和我的角度来看......但只有那个“合乎逻辑”的事情困扰着我......建议?
【解决方案2】:

经过几天的工作和思考……其实很简单的功能:

=IFERROR(IF(INDEX('0528-matrix.csv'!$A:$Y;MATCH($U17;'0528-matrix.csv'!$A:$A;0);MATCH(X$14;'0528-matrix.csv'!$1:$1;0))=1;"n.k";"");"")

解释:

在我的情况下,它是一个庞大的数据块,每月更新一次,但考虑到 2 个工作簿,如果部分不兼容,第二个将用 (_) 更新,如果与工作簿兼容,则用 (1) 更新1.

但在工作簿 1 中,我不能将 (_) 和 (1) 放入 (_) 和 "n.k" 或其他 (1) 的空白处。

使用索引/匹配,您实际上可以匹配所有这些,但事情是在两个匹配的情况下这个小的“分离”,这就是我们有 IF/IFERROR 的原因。

【讨论】:

    猜你喜欢
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多