web-dev-qa-db-ja.com

Excelで階層をグループに自動アウトライン化する方法は?

したがって、次のようなExcelスプレッドシートに大量のデータがあります。

Level   Hierarchy       Name
0       1               Sam
1       1.1             Bill
2       1.1.1           George
3       1.1.1.1         Fred
4       1.1.1.1.1       Richard
4       1.1.1.1.2       Steve
4       1.1.1.1.3       Max
4       1.1.1.1.4       Sven
3       1.1.1.2         Mike
4       1.1.1.2.1       John
4       1.1.1.2.2       Isaac
4       1.1.1.2.3       Zack
2       1.1.2           James
3       1.1.2.1         Henry
4       1.1.2.1.1       Greg
            .
            .
            .

Richard、Steve、Max、SvenがFredの下にグループ化されるように、ワークシートにグループを自動的に作成したいと思います。ジョン、アイザック、ザックはマイクの下にいます。等...;そして、彼らはすべてサムの下にロールアップします。

Excel auto-outline 機能を使用しようとしましたが、「アウトラインを作成できません」というメッセージが表示されます。誰かがこの作業を行う方法を教えたり、これを行う別の方法を提案したりできますか?

データは別のシステムからのものですが、Excelにインポートする前にデータを変換できます。

3
JoeNahmias

レベルが有限の場合は、次のようにします。データを更新する必要がある場合は、単純なピボット更新であるという利点があります(つまり、一度設定するだけです)。

  1. 階層の各レベルでの上司を表す新しい列(number = max level)を作成します(メモは、階層フィールドでソートされていると想定しています) enter image description here

  2. D3の数式と上下にコピー:=IF($B3=D$2,$A3,IF($B3<D$2,"",D2))

  3. ピボットテーブル(好みに応じてコンパクトビューまたはアウトラインビュー)を作成し、各レベルのボスを行ラベルとして設定します
  4. 空白のレベルのボスを各レベルでフィルタリングします

enter image description here

4
Madball73

自動アウトライングループ化機能を使用するには、(合計)Subtotal()関数を使用して集計行を挿入する必要があります。 Excelは、これをグループ化のブレークポイントとして認識します。詳細については、Microsoftの記事 ワークシートのアウトライン(グループ)データ を参照してください。

4
teylyn

このテーブルをPower Pivotに読み込み、階層をレベルにフラット化します。DAX関数を使用します。パスアイテム

http://www.powerpivotblog.nl/powerpivot-denali-parent-child-using-dax/

Power Pivotを使用できない場合は、ソースシステムで階層を同様の方法でレベル列にフラット化します。

プレゼンテーションはピボットテーブルに表示され、ノードを展開できます。これにより、数式をいじる必要なく、新しいデータが入力されると自動的に調整されます。

最大の注意点は、レベルの最大数を修正する必要があることです。

1
Mike Honey

階層列の番号で行を自動グループ化するVBAコード

For i = 3 To RowLength 
    On Error Resume Next
    levelNo = Len(Cells(i, WBSColNo)) - Len(Replace(Cells(i, WBSColNo), ".", "")) + 1
    Rows(i).OutlineLevel = levelNo  
 Next

心から

0

階層列に基づいてリンクされたマクログループ(自動アウトライン)の行の下。レベル番号(完全なストップでフォーマットされた[階層列])を選択し、マクロを実行するだけです。範囲とテーブルで機能します。合計、カウントなどの行は追加されません。

グループ化された行

VBAコード-行の自動グループ化

0
Karmo