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

标签 database excel excel-formula

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

Field
Screen
Window

Window-Screen 具有多对多关系。因此,我定义了一个连接表 Screen_Window,其中包含两个表的外键。

Screen-Field 是一对多的关系。因此,每个 Screen 都有很多 Fields。但是每个 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         

我在 F 列 中使用 VLOOKUP 函数来生成此报告:

=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 中自动生成预期的报告?

最佳答案

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

关于database - 如何在 Excel 中使用 vlookup 连接具有多对多关系的两个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35913549/

相关文章:

excel 2003 vba ..写arraylist

excel - VBA - 列插入代码优化

excel - 如何获取另一个单元格的值

vba - 我的 Excel 条件格式公式手动工作,但未在 VBA 中编码

database - 基于服务器的数据库与 Onsen/Monaca

sql - PostgreSQL 自动递增的默认值

vba - 识别 Excel 中的唯一行

database - Firestore 集与 {merge : true} and Update 之间的区别

database - 使用像 redistogo.com 这样的服务的优缺点?

excel - VLOOKUP 有两个条件?