0

我正在尝试对表格中的数据进行分组。该表是根据数据透视表构建的,如果员工是否参与过项目,则返回的值等于 1。

我尝试了 Hlookup,vlookup ......无法弄清楚。

表中的“1”值表示该人从事该特定项目。我需要一个公式来说明,如果 L.Bish="1",则返回所有也等于“1”的名称

很长的路要走的是过滤每个人下的表值以获取值“1”,以查找其他团队成员是否与该人一起工作。

然后,我需要将此公式应用于所有其他团队成员,以查看谁在项目上一起工作过和没有一起工作过。

任何帮助或方向都会很棒

如您所见,Bish 与以下人员合作过:Carl Good 等。

表如下:

桌子

4

1 回答 1

2

我假设您在行和列中有员工和项目,反之亦然。如果您要“取消透视”您的表格,您将能够将其放回透视表并按照您想要的方式进行分组。

在此处查看我的 Table2DB 加载项。

在您的情况下,您可以简单地运行下面的宏并根据您的新工作表创建一个数据透视表

Sub UnPivot()
Dim lLastCol As Long, lLastRow As Long
Dim rgCell As Range, shtOrg As Worksheet, shtDest As Worksheet
Dim lRowDest As Long

'turn off updates to speed up code execution
With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
End With

Set shtOrg = ActiveSheet

lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
lLastCol = Cells(48, Columns.Count).End(xlToLeft).Column

Set shtDest = Sheets.Add
lRowDest = 2

shtDest.Cells(1, 1) = "Project"
shtDest.Cells(1, 2) = "Employee"

With shtOrg
    For Each rgCell In .Range(.Cells(49, 2), .Cells(lLastRow, lLastCol)).SpecialCells(xlCellTypeConstants)

        If rgCell.Value = 1 Then
            shtDest.Cells(lRowDest, 1) = .Cells(rgCell.Row, 1)
            shtDest.Cells(lRowDest, 2) = .Cells(48, rgCell.Column)
            lRowDest = lRowDest + 1
        End If

    Next rgCell
End With

With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = xlCalculationAutomatic
End With

End Sub

要获得没有一起工作的人,请构建如下所示的表格并使用公式: =IF(COUNTIFS(OFFSET($A$49:$A$78,0,MATCH($A2,$48:$48,0)- 1,,),1,OFFSET($A$49:$A$78,0,MATCH(B$1,$48:$48,0)-1,,),1)>0,"Did","没有" ) & “ 一起工作”

在此处输入图像描述

于 2012-09-24T18:42:45.040 回答