#REF!在Excel中使用INDEX函数时的结果

时间:2015-01-31 23:51:44

标签: excel vba excel-vba indexing match

我正在尝试根据下拉列表中的值从另一个Excel工作表上的数据创建一些报告。我正在使用MATCH和INDEX函数,并创建了数据列的命名范围。我能够在报告中获得我想要的第一个值但是没有其他值,即使我在通过评估公式进行调试时它指向正确的单元格但仍然显示#REF!而不是引用单元格的实际值。

我会尽力说清楚:

  • 在“POST_Data”工作表中,我有4列标题为“课程名称”,“课程长度”,“参加者”和“参加日期”。目前我有33行数据(加上标题行)但我需要报告是动态的,因为新数据会不时添加。
  • 我使用OFFSET函数创建了数据的动态命名范围(例如,对于课程名称数据,我有一个名为CourseNamesData = OFFSET的NameRange(POST_Data!$ A $ 2,0,0,COUNTA(POST_Data!$ A:$) A)中,1)
  • 在“DashBoard_and_Data Entry”工作表中,我有两个报告区域:一个用于报告指定参加者的课程名称和日期(由单元格C7中的下拉列表指定),另一个报告用于提供参加者姓名和日期为指定的课程名称(由I7中的下拉列表指定)。
  • 在第8行中,我在POST_Data工作表中报告数据所属的列
  • 工作原理:当我从C7的下拉列表中选择参加者时,我正确地从POST_Data工作表中的数据报告该参加者的第一个课程名称。我使用以下公式来执行此操作:= INDEX(CourseNamesData,MATCH(C7,AttendeeNamesData,0),B $ 8)
  • 什么是不工作的:当我使用类似的公式作为工作的公式时,相应的“参加日期”数据。我有:= INDEX(DateAttendedData,MATCH(C7,AttendeeNamesData,0),C $ 8)但这给了我#REF!错误。

同样,当我尝试按照此公式指向的数据时,看起来它指向正确的单元格但未显示结果。

另一个问题是如何在下拉列表中获取与所选内容相对应的所有数据,而不仅仅是第一行。例如,如果我从参与者名单中选择Richards,K。他参加了4个培训课程,我需要全部4个,而不仅仅是第一个。

我感谢您对此有任何帮助或见解。如果您知道更好的方式来显示工作簿内容,请告诉我。

谢谢!

1 个答案:

答案 0 :(得分:0)

您能提供截图,以便我更好地了解问题吗?

关于post_data工作表,您可能会发现将数据转换为表格更容易。然后,您可以将命名范围指向表中的列,而无需使用偏移功能,并且当您添加到表中时,您的范围将自动更新。

如果您有兴趣,我的youtube频道上有一个完整的播放列表专门用于使用范围和表格。 https://www.youtube.com/playlist?list=PL1nLTDk2QLL9415OPSjIICJs1EeV-HeK3