我的表格的第一列中有一个名单列表,第二列是我列出了该人员所训练的所有函数的位置。有没有办法创建一个链接到此的新表格不断变换的桌子(随着越来越多的人接受训练)不断增加每个功能的人员,因为他们接受了培训吗?
第一个表很重要,但我也想在第二个方法中显示相同的信息,而不必编辑文件两次。
更详细地说,这是我第一张桌子上的2行示例:
Tom Jones | Phone, social media, coffee
Lila Jones | Phone, coffee, voicemail
我想要一个单独的链接列或表格向我显示: 电话:Tom Jones,Lila Jones等等
答案 0 :(得分:0)
你可能想要这样的东西:
Table 1
[ID] AUTOINCREMENT PRIMARY KEY
[Name] TEXT
Table 2
[ID] Integer PRIMARY KEY
[Functions] TEXT
然后在数据库工具>关系创建表1到表2的引用,检查所有3个参照完整性框。这是一种更规范化的方法。
答案 1 :(得分:0)
这是一种方法:
Sub Tester()
Dim c As Range, dict, arr, v, l, shtOut As Worksheet
Set shtOut = Sheets("Sheet2")
shtOut.UsedRange.ClearContents
Set dict = CreateObject("scripting.dictionary")
Set c = Sheets("Sheet1").Range("A2") '<< first name in list
Do While Len(c.Value) > 0 '<< run until hit an empty name cell
l = Trim(c.Offset(0, 1).Value)
If Len(l) > 0 Then
arr = Split(l, ",")
For Each v In arr
v = UCase(Trim(v))
If dict.exists(v) Then
dict(v) = dict(v) & ", " & c.Value
Else
dict.Add v, c.Value
End If
Next v
End If
Set c = c.Offset(1, 0)
Loop
With shtOut.Range("A2") '<< output list starts here
.Resize(dict.Count, 1).Value = Application.Transpose(dict.keys)
.Offset(0, 1).Resize(dict.Count, 1).Value = _
Application.Transpose(dict.items)
End With
End Sub