在Excel 2013中的多个表格进行索引匹配

这是我的第一篇文章,如果有什么不是,请让我知道,所以我可以纠正它。

对于一个项目,我正在构build一个将pipe道组件文件读入excel的原型,提取零件和坐标,并将它们显示在graphics中。 用一个macros使我能够通过点击坐标图中的零件来排列零件,我手动对零件进行sorting。 在这张表中,我需要添加零件名称和绝对Z值等数据。 这是我的问题进来的地方。

到目前为止,我已经能够使用一个单独的INDEX和MATCH函数来从pipe道数据表中调用我缺less的信息,但是当我把它们合并时,返回一个错误(我有#N / A; #REF和#VALUE首发)。

我的问题是

  1. 我如何构buildINDEX MATCH函数来从一个表中返回名称和Z值?

  2. 是否可以嵌套此function来search文件中的所有工作表以返回这些值?

  3. 我使用公式和视觉基础的组合,哪一个可以用来更加dynamic?

任何帮助表示赞赏:)

背景信息:我至less有4张pipe道数据表,1张图表可以点击,1张表格放置过滤的数据。

图表中的数据是从数据表中调用的。 然后select图表中的数据并将其复制到Sheet3中,其中黑线是从path中调用的,红色是来自图表的数据,而grpah是蓝色的一个来源(我已经使用了一个数据文件开始)(紫色/粉红色,我试过的东西)。 然后必须从数据表中调用所需的数据,所有数据表具有相同的格式。

图片3

表3

数据表

数据表

我find了一些关于VLOOKUP的信息,但是我无法在我的情况下实现这个例子。 我也检查了子RedDits的Excel和可视化的基本信息,很less成功。

理想情况下,您的数据应全部合并到一个选项卡中。 如果您试图在多个选项卡上执行查找,则可能意味着您需要以不同方式构build数据源。 无论区分不同标签的标准是什么,只要在表格上新增一列。

如果您仍然在考虑#1,您可以将多个索引/匹配function连接在一起,并更改列#。

=INDEX($B$2:$D$8,MATCH($G$3,$A$2:$A$8,0),1)&" - "&INDEX($B$2:$D$8,MATCH($G$3,$A$2:$A$8,0),2) 

随着u / semicolonsemicolon从网站Reddit的帮助。 这里是我自己的问题的VBA解决scheme。 为了使这个代码工作,检查我的工作簿 ,其中包含我已经使用的模块。 对于我的解决scheme,我已经使用了一些关于“如何在你的图表上获得x和y”的约翰·珀尔帖(john peltiers)代码。 类模块中的代码可以交换为下面的代码。 感谢您花时间检查我的问题。

 Private Sub EmbChart_MouseUp _ (ByVal Button As Long, ByVal Shift As Long, ByVal X As Long, ByVal Y As Long) Dim ElementID As Long, Arg1 As Long, Arg2 As Long Dim myX As Double, myY As Double Dim rng As Range, t As String If Button = xlPrimaryButton Then With EmbChart Call .GetChartElement(X, Y, ElementID, Arg1, Arg2) ' call the coordinates that have been clicked Application.StatusBar = "[" & ElementID & "]" If ElementID = xlSeries Or ElementID = xlDataLabel Then If Arg2 > 0 Then myX = WorksheetFunction.Index(.SeriesCollection(Arg1).XValues, Arg2) myY = WorksheetFunction.Index(.SeriesCollection(Arg1).Values, Arg2) Application.StatusBar = "[" & myX & ", " & myY & "]" Select Case Arg1 Case 1: t = "tabbleud" Case 3: t = "tabblad" Case 4: t = "tableeed" End Select With ActiveWorkbook.Worksheets("Sheet3").[B200].End(xlUp).Offset(1, 0) .Value = myX .Offset(0, 1).Value = myY .Offset(0, -1).Value = Evaluate("=INDEX(" & t & "[IDENT name],SUMPRODUCT((" & t & "[X]=" & myX & ")*(" & t & "[Y]=" & myY & ")*(ROW(" & t & "[X])-ROW($A$2)+1)))") .Offset(0, 2).Value = Evaluate("=INDEX(" & t & "[Z],SUMPRODUCT((" & t & "[X]=" & myX & ")*(" & t & "[Y]=" & myY & ")*(ROW(" & t & "[X])-ROW($A$2)+1)))") End With End If Else If TypeName(Selection) = "Nothing" Then MsgBox "Chart element " & ElementID _ & " (" & Arg1 & ", " & Arg2 & ")." ElseIf ElementID = xlShape Then 'Chart Embedded in Chart Sheet MsgBox "Chart element " & ElementID _ & " (" & Arg1 & ", " & Arg2 & ")." Else MsgBox "Chart element " & ElementID _ & " (" & Arg1 & ", " & Arg2 & ")." End If End If End With End If Application.StatusBar = False End Sub