【问题标题】:Index and match in excelexcel中的索引和匹配
【发布时间】:2020-05-22 17:39:15
【问题描述】:

我有两张工作表,我想根据 3 个条件从第一张工作表中检索数据:第 1 行中的月份、第 2 行中的条件和 B 列中的操作。表中显示的每个操作:每个位置都有相同的两个操作.

在工作表 2 中,我想从列表中选择月份(数据验证,月份从表中链接)然后仅显示该月份的数据。我使用了以下代码:

=INDEX(Sheet1!B1:K6,MATCH((B1= Sheet1!C1:K1)*(E2=Sheet1!C2:K2),0),MATCH(B3,Sheet1!B1:B6,0))

如图所示:

但我得到一个错误,即即使我确定它在那里也找不到数据。请指导我做错了什么?

更新: 我使用了另一个代码(这是 C3):

=INDEX(Sheet1!C3:K3,MATCH(B1,Sheet1!C1:K1,0),MATCH(C2,Sheet1!C2:K2,0))

它起作用了,我只更改每个单元格中的数据范围和选项(H、W、M 和月份)。奇怪的是它只适用于一月份!!

但是当我选择二月或三月时,我得到:

我感到困惑是什么原因以及如何解决?

【问题讨论】:

  • 虽然 Sheet1 上的合并单元格可以解决,但 Sheet2 中的合并单元格不能轻易解决。合并单元格的值存储在合并单元格的左上角单元格中。这意味着 Sheet 上的 A4 为空,并且尝试将其链接到 Sheet1 将失败。删除 Sheet2 上合并的单元格并将值放入所有单元格中。
  • 那仍然不起作用。我在上面更新了我的帖子。
  • 您没有按照 scott 的建议取消合并单元格..

标签: excel indexing excel-formula match


【解决方案1】:
=INDEX(Sheet1!$A:$K,ROW(),MATCH($D$1,Sheet1!$1:$1,0)+COLUMN()-3)

它是如何工作的:

MATCH($D$1,Sheet1!$1:$1,0)

在 Sheet1 中查找所选月份的列

+COLUMN()-3

从该列偏移以获得HWM

ROW()

Sheet1 和目标表中给出相同的行

INDEX(...)

返回结果

【讨论】:

  • 请问,在 MATCH() 的范围内,$1:$1 取所有有数据的列吗?
  • 是的,`$1:$1` 引用了整行 1
  • 不错的答案.. 真的很喜欢它的匹配标准简单。 ( :
【解决方案2】:

在 Sheet2 C3 中执行:

=INDEX(OFFSET(Sheet1!$C$3:$F$4,MATCH(OFFSET(Sheet2!$A3,IF(Sheet2!$A3="",-1,0),0),Sheet1!$A$3:$A$8,0)-1,MATCH(Sheet2!$B$1,Sheet1!$C$1:$N$1,0)-1),MATCH(Sheet2!$B3,Sheet1!$B$3:$B$4,0),MATCH(C$2,Sheet1!$C$2:$E$2,0))

想法:使用偏移量来“确定”OP、CR 和 H、W、M 搜索的区域。放置一个 If+offset 条件来“移动”sheet2,columnA 引用,如果它是空白的。

请分享它是否有效。 ( :

【讨论】:

  • 它给了我“错误”.. 我也使用了另一个代码,但我不知道为什么它只适用于 Jan moth。我将在帖子中添加更新。
  • 它适用于创建的sample file.. 如果示例文件错误地重新创建了您的案例,请尝试检查..
猜你喜欢
  • 1970-01-01
  • 2017-10-28
  • 2017-06-26
  • 1970-01-01
  • 1970-01-01
  • 2017-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多