0

テーブルからデータをグループ化しようとしています。テーブルはピボットテーブルから作成され、従業員がプロジェクトに取り組んだかどうかに関係なく、返される値は1になります。

Hlookup、vlookupを試しました...理解できません。

表の「1」の値は、その人がその特定のプロジェクトに取り組んだことを意味します。L.Bish = "1"の場合、「1」に等しいすべての名前を返すという式が必要です。

長い道のりは、各人の下のテーブル値を値「1」でフィルタリングして、他のチームメンバーがその人と協力したかどうかを確認することです。

次に、この式を他のすべてのチームメンバーに適用して、プロジェクトで一緒に作業した人と作業していない人を確認する必要があります。

どんな助けや指示も素晴らしいでしょう

ご覧のとおり、BishはCarlGoodなどと協力してきました。

表は以下のとおりです。

テーブル

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,"した","しなかった" ) & " 共に働く"

ここに画像の説明を入力

于 2012-09-24T18:42:45.040 に答える