如何在Excel中使用vlookup连接具有多对多关系的两个表?

时间:2016-03-10 10:16:50

标签: database excel excel-formula

我有三个实体(表格)之间的数据模型:

Field
Screen
Window

Window-Screen有很多对多的关系。因此,我使用两个表的外键定义了连接表Screen_Window

Screen-Field有一对多的关系。因此,每个Screen都有很多字段。但每个Field属于一个Screen记录。

现在,我想构建一个将Fields加入相应Windows的报告。

来自Screen_Window的示例数据:

(column A) (column B) 
screen_id  window_id  
s1         w1         
s2         w1         
s1         w2         

预期报告应该是这样的:

(column D) (column E) (column F) 
field_id   screen_id  window_id  
f1         s1         w1         
f1         s1         w2         

我使用VLOOKUP中的column F函数来生成此报告:

=VLOOKUP(E2;A2:B4;2)

结果如下:

(column D) (column E) (column F) 
field_id   screen_id  window_id  
f1         s1         w1         

因此,VLOOKUP会忽略w2记录:

f1         s1         w2         

如何在Excel中自动生成预期报告?

1 个答案:

答案 0 :(得分:0)

VLOOKUP()公式无法实现,但您仍可以使用excel通过以下数组公式来使用它:

{=+INDEX($B$2:$B$12,SMALL(IF(E2=$A$2:$A$12,ROW($A$2:$A$12)-ROW($A$2)+1),COUNTIF($E$2:E2,E2)))}

要使公式成为数组公式,必须同时使用“ Ctrl + Shift + Enter” 键,而不是仅使用“ Enter”键。

我在一个示例中尝试过并起作用:

Example