を階層を作成します。私の現在のExcelの表である:私は、自動的にすべての階層ビューとして黄色で3番目の列を生成したいは、Excelで事前定義されたレベル(式またはVBA)に基づいて以下に
活動。私は数式でこの問題を解決しようとしましたが、それを行う最良の方法であるかどうかはわかりません。
誰かがすでにExcelでこの要件に直面して解決していますか?私を導くアドバイス/提案はありますか?
多くのありがとうございます。
を階層を作成します。私の現在のExcelの表である:私は、自動的にすべての階層ビューとして黄色で3番目の列を生成したいは、Excelで事前定義されたレベル(式またはVBA)に基づいて以下に
活動。私は数式でこの問題を解決しようとしましたが、それを行う最良の方法であるかどうかはわかりません。
誰かがすでにExcelでこの要件に直面して解決していますか?私を導くアドバイス/提案はありますか?
多くのありがとうございます。
あなたはワークシートのコードモジュールでこのマクロを貼り付け、そこからそれを実行することができます:
Sub CalculateHierarchy()
Dim rLevels As Range, rLevel As Range
Dim level As Integer, maxLevels As Integer, cur As Integer, i As Integer
Dim h As String, counts() As Integer
Set rLevels = Range("A2:A" & Range("A1").End(xlDown).Row)
maxLevels = WorksheetFunction.Max(rLevels)
ReDim counts(1 To maxLevels)
cur = 1
For Each rLevel In rLevels
level = rLevel.Value
If level > cur + 1 Then
rLevel.Activate
MsgBox "error at row " & rLevel.Row & " level increase by more than 1"
Exit Sub
End If
h = ""
counts(level) = counts(level) + 1
For i = 1 To level
h = h & "." & counts(i)
Next
h = Mid(h, 2)
For i = level + 1 To UBound(counts)
counts(i) = 0
Next
rLevel.Offset(, 2).Value = h
cur = level
Next
rLevel.Offset(0, 2).Interior.ColorIndex = 6
End Sub
ありがとうA.S.H.私はこのマクロを試し、あなたにすぐにフィードバックを与えます。 –
"Me.Activate:rLevel.Activate": "Meキーワードの無効な使用"というメッセージが表示されました。 Excelで特定のアドオンが必要ですか? –
私の答えと同じように、コードをワークシートのコードモジュールに貼り付けなかったからです。 –
あなたは階層がフォローしたいロジックを説明した場合には有用であろう。 – Zerk
私はこのロジックに従ってください:レベル1、次に1.Xレベル2、次にレベル1.1.3。 –
ロジックはまだ完全に定義されていません。たとえば、行8( 'Activity 7')を考えてみましょう。たとえば、1.1.1.5ではなく' 1.2 'になるはずです。 16行目の「Activity 15」も同じです... –