如何在 Excel 中创建关系矩阵

How can I create a relationship matrix in Excel

给定一个三元组列表,我想得到一个关系矩阵,如下所示。

1 A X
1 A Y
1 B X             A   B   C
1 B Z         1  X,Y X,Z
2 A Z   ==>   2   Z   X   Y
2 B X         3   Y   Z
3 A Y
3 A Z
2 C Y

(如何)可以在 Excel/VB/PowerBI 或类似的情况下完成?

也许您会考虑使用加载项

按照本指南获取 this tool

然后开箱即用 :)

This guide很有帮助

使用数组公式,您可以生成一个数组,该数组将包含第三列的值或空白,具体取决于是否应包含该值。然后您可以使用 TEXTJOIN 加入他们。 TEXTJOIN 是 Office 365 中的新功能;如果你没有它,你首先需要以这种方式将它定义为一个函数(取自MrExcel):

Function TEXTJOIN(Delimiter As String, IgnoreBlanks As Boolean, ParamArray Text() As Variant) As String
  Dim Item As Variant, V As Variant, Arr As Variant
  For Each Item In Text
    If VarType(Item) > 8191 Then
      For Each V In Item
        If Len(V) > 0 Or (Len(V) = 0 And Not IgnoreBlanks) Then TEXTJOIN = TEXTJOIN & Delimiter & V
      Next
    Else
      TEXTJOIN = TEXTJOIN & Delimiter & Item
    End If
  Next
  TEXTJOIN = Mid(TEXTJOIN, Len(Delimiter) + 1)
End Function

现在回到你的问题,假设你的数据在 A1:C9 而你想要的 table 在 F2:I5 (第 2 行和 F 列包含索引)你'您需要在 G3 中使用此公式:{=TEXTJOIN(",";TRUE;IF($A:$A=$F3;IF($B:$B=G;$C:$C;"");""))}:

如果您不熟悉数组公式,请注意您需要使用 CTRL+SHIFT+ENTER 来输入它。然后,您需要复制 G3 并将其粘贴到 table 的其他单元格(如果您尝试粘贴到包括您从中复制数组公式的单元格在内的范围,excel 将对此很挑剔,因此您可能需要多次粘贴);公式将使用适当的索引,因为 $F3 和 G$2 是相对的。