【问题标题】:Lookup Value with multiple outcomes - No Array Formula具有多个结果的查找值 - 无数组公式
【发布时间】:2018-08-29 17:30:48
【问题描述】:

我正在创建一个电子表格,大量没有 Excel 经验的人将使用该电子表格...

我希望他们将订单号扫描到一个字段中,它将填充订单所有行的信息。当他们扫描时,扫描仪只填充订单的前 8 位数字,并且不会接收到数据中有多少行。

例如;扫描仪将返回 FK560082,但系统中的数据会显示 FK560082.001.8051,如果订单上有多行,它将有 FK560082.002.8051 等......(我们对订单允许的行数没有限制) .

现在,我使用下面的公式将订单号与其他详细信息分开。

=IFERROR(LEFT(A2,FIND(".",A2,1)-1),A2) 

这让我可以使用这个公式来获得我的订单的第一次出现(或第一行)。但是,我正在寻找一个公式,该公式也允许我从其他行项目中查找数据。

=IFERROR(INDEX('Current Orders'!F:F,MATCH('2'!A2,'Current Orders'!L:L,0)),"")

由于有这么多人要使用这个电子表格,我宁愿不必对每个人都使用 ctrl+shift+enter 进行数组公式的培训,但如果这就是可能的话,我会让它发挥作用。

【问题讨论】:

  • 我很困惑。 A2 中是 FK560082.001.8051 还是 FK560082?
  • 抱歉,这些公式位于两个工作表之间! FK560082.001.8051 在 A2 中用于第一个公式。然后,我切换到另一个选项卡,在其中键入(或扫描)FK560082,它从第一个选项卡的 L 列(我将第一个公式的结果放入的列)中提取它。

标签: excel indexing


【解决方案1】:

我认为这可以使用 INDIRECT 并通过从找到的第一行开始搜索当前订单来完成。

这些搜索结果公式可用于工作表“2”或任何其他工作表。

将您的搜索结果分成两列:结果和找到的行的列。我将使用 B。订单上的第一项,单元格 B4 公式为 =MATCH('2'!$A$2,'Current Orders'!L:L,0)

B 列(单元格 B5)中的第二项将是 =IFERROR(MATCH('2'!$A$2, INDIRECT("'Current Orders'!L" & $B4 & ":L9999"),0), “”)。从 B5 单元格向下填写。

A 列将是实际值,例如 A4 =IFERROR(INDEX('Current Orders'!F:F, $B4),"")。从 A4 往下填写。

祝你好运!

【讨论】:

  • 我有点困惑,我会在电子表格“2”中输入什么公式 它会是第二个公式吗?
【解决方案2】:

这能回答你的问题吗? [https://stackoverflow.com/a/18767728/9492960][1]

=INDEX('Sheet2'!B:B,MATCH(1,INDEX((A1='Sheet2'!A:A)*(C1='Sheet2'!C:C),0),0))

是具有多个条件的索引匹配,没有数组。

【讨论】:

  • 这可能会有所帮助。我只是不确定如何设置我的条件来搜索同一订单上的多行。有什么想法吗?
  • 您是否在同一行中搜索多个列以便返回正确的订单号?
【解决方案3】:

“当前订单”中的一个或多个 FK560082.002.8051 值!L:L。 2!A2 中的 FK560082。要从“当前订单”中检索的附加信息!F:F。

试试,

=iferror(index('Current Orders'!F:F, aggregate(15, 6, row('Current Orders'!L$1:index('Current Orders'!L:L, match("zzz", 'Current Orders'!L:L)))/(left('Current Orders'!L$1:index('Current Orders'!L:L, match("zzz", 'Current Orders'!L:L)), len('2'!A$2))='2'!A$2), row(1:1))), text(,))

向下拖动以查看后续发票行。

【讨论】:

  • 我尝试了这个公式,但它不起作用。它给了我一个空白。 :(
  • 查看上面添加的我设置示例工作簿的方式的描述。
  • 你为聚合函数输入了什么数组,@Jeeped?在搜索失败的地方,除法是否会简单地产生错误?
  • @elliotsvensson - 是的,没错。除法产生#DIV/0!所有不匹配的错误。 6 告诉聚合忽略错误,因此只返回匹配的行号。
  • 好的...所以我修改了基于公式,因为一个或多个 FK560082.002.8051 在“当前订单”中!A:A 你知道我哪里出错了吗? =IFERROR(INDEX('当前订单'!F:F, aggregate(15, 6, ROW('当前订单'!A$1:INDEX('当前订单'!A:A, MATCH("zzz", '当前订单) '!A:A)))/(LEFT('Current Orders'!A$1:INDEX('Current Orders'!A:A, MATCH("zzz", 'Current Orders'!A:A)), LEN( '2'!A$2))='2'!A$2), ROW(1:1))), TEXT(,))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-02
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 2020-06-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多