根据列中的字符串定期整理Excel行?

问题描述 投票:0回答:2

我每周从项目管理工具中获得一张大型的excel表。它具有有关特定任务的特定日期和时间的信息。内容每周更改一次。但是结构保持不变。它基本上看起来像这样:

+----------+---------------+----------+-----------------+--------------+-----------------+--------------+----------------------+--------------+----------------+-----------------+-------------------------------------+---------------+-------------+------------+---------------------------+-------------------+------------------+--------------+-------------------------+---------------+-----------------------+---------------------+------------+
|   Type   |      Hub      | Hub (ID) |     Project     | Project (ID) |     Package     | Package (ID) |       Measure        | Measure (ID) | Measure (Tags) | Measure (Phase) |              Activity               | Activity (ID) | Aggregation | To Do/Done |          Comment          |    Responsible    | Responsible (ID) | Start (Plan) | Start (Actual/Forecast) | Start (Delta) | Start (Traffic Light) | Start (Achievement) | End (Plan) |
+----------+---------------+----------+-----------------+--------------+-----------------+--------------+----------------------+--------------+----------------+-----------------+-------------------------------------+---------------+-------------+------------+---------------------------+-------------------+------------------+--------------+-------------------------+---------------+-----------------------+---------------------+------------+
| Hub      | ABC Comp Demo |      285 | -               |            - | -               |            - | -                    |            - |              - | -               | -                                   |             - | -           | To Do      | -                         | -                 |                - | -            | -                       |             - | -                     |                   - | -          |
| Project  | ABC Comp Demo |      285 | English Example |         1802 | -               |            - | -                    |            - |              - | -               | -                                   |             - | Active      | To Do      | -                         | Friederike Bieser |             1650 | 2020-05-19   | 2020-05-16              |            -3 | Yellow                |               81,00 | 2020-07-26 |
| Package  | ABC Comp Demo |      285 | English Example |         1802 | Working Capital |         9440 | -                    |            - |              - | -               | -                                   |             - | Active      | To Do      | -                         |                   |                  | 2020-05-19   | 2020-05-16              |            -3 | Yellow                |               71,50 | 2020-07-26 |
| Measure  | ABC Comp Demo |      285 | English Example |         1802 | Working Capital |         9440 | Inventory reduction  |        38894 |                | DOI3            | -                                   |             - | Active      | To Do      | -                         |                   |                  | 2020-05-29   | 2020-05-21              |            -8 | Yellow                |               66,67 | 2020-07-05 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Working Capital |         9440 | Inventory reduction  |        38894 |                | DOI3            | Adjusting the term of payment       |        131741 | Active      | Done       |                           | Friederike Bieser |             1650 | 2020-05-29   | 2020-05-21              |            -8 | Green                 |              100,00 | 2020-06-05 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Working Capital |         9440 | Inventory reduction  |        38894 |                | DOI3            | New controlling cycle               |        131742 | Active      | To Do      |                           | Friederike Bieser |             1650 | 2020-06-09   | 2020-06-06              |            -3 | Green                 |              100,00 | 2020-06-16 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Working Capital |         9440 | Inventory reduction  |        38894 |                | DOI3            | ABC analysis                        |        131743 | Active      | To Do      |                           | Friederike Bieser |             1650 | 2020-06-17   | 2020-06-26              |             9 | Red                   |                0,00 | 2020-06-22 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Working Capital |         9440 | Inventory reduction  |        38894 |                | DOI3            | Adjust cash discount agreements     |        131744 | Active      | To Do      | All good ...              | Friederike Bieser |             1650 | 2020-06-23   | 2020-06-26              |             3 | Yellow                |               33,33 | 2020-07-01 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Working Capital |         9440 | Inventory reduction  |        38894 |                | DOI3            | Sell old stocks                     |        131745 | Active      | To Do      |                           | Friederike Bieser |             1650 | 2020-07-02   | 2020-07-02              |             0 | Green                 |              100,00 | 2020-07-05 |
| Measure  | ABC Comp Demo |      285 | English Example |         1802 | Working Capital |         9440 | Turnover             |        38895 |                | DOI2            | -                                   |             - | Active      | To Do      | -                         |                   |                  | 2020-05-19   | 2020-05-16              |            -3 | Yellow                |               77,78 | 2020-07-26 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Working Capital |         9440 | Turnover             |        38895 |                | DOI2            | Inventory                           |        131746 | Active      | Done       |                           | Friederike Bieser |             1650 | 2020-05-19   | 2020-05-16              |            -3 | Green                 |              100,00 | 2020-06-07 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Working Capital |         9440 | Turnover             |        38895 |                | DOI2            | Turnover                            |        131747 | Active      | To Do      | Everything is working ... | Friederike Bieser |             1650 | 2020-06-16   | 2020-06-15              |            -1 | Green                 |              100,00 | 2020-06-21 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Working Capital |         9440 | Turnover             |        38895 |                | DOI2            | Evaluation of old inventory         |        131748 | Active      | To Do      |                           | Friederike Bieser |             1650 | 2020-06-22   | 2020-06-28              |             6 | Yellow                |               33,33 | 2020-06-27 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Working Capital |         9440 | Turnover             |        38895 |                | DOI2            | Sell of old inventory               |        131749 | Active      | To Do      |                           | Friederike Bieser |             1650 | 2020-06-27   | 2020-07-03              |             6 | Yellow                |               33,33 | 2020-07-04 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Working Capital |         9440 | Turnover             |        38895 |                | DOI2            | Allocation of storage areas         |        131750 | Active      | To Do      | Risk ...                  | Friederike Bieser |             1650 | 2020-07-05   | 2020-07-02              |            -3 | Green                 |              100,00 | 2020-07-15 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Working Capital |         9440 | Turnover             |        38895 |                | DOI2            | Integration of SAP in storage areas |        131751 | Active      | To Do      |                           | Friederike Bieser |             1650 | 2020-07-18   | 2020-07-20              |             2 | Green                 |              100,00 | 2020-07-26 |
| Package  | ABC Comp Demo |      285 | English Example |         1802 | Production      |         9441 | -                    |            - |              - | -               | -                                   |             - | Active      | To Do      | -                         |                   |                  | 2020-05-29   | 2020-06-03              |             5 | Yellow                |               86,00 | 2020-07-13 |
| Measure  | ABC Comp Demo |      285 | English Example |         1802 | Production      |         9441 | Machinery hall       |        38896 |                | DOI3            | -                                   |             - | Active      | To Do      | -                         |                   |                  | 2020-05-29   | 2020-06-03              |             5 | Yellow                |               86,67 | 2020-07-13 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Production      |         9441 | Machinery hall       |        38896 |                | DOI3            | Sell milling cutter long            |        131752 | Active      | Done       | All good ...              | Friederike Bieser |             1650 | 2020-05-29   | 2020-06-03              |             5 | Yellow                |               33,33 | 2020-06-03 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Production      |         9441 | Machinery hall       |        38896 |                | DOI3            | Sell extruder                       |        131753 | Active      | To Do      |                           | Friederike Bieser |             1650 | 2020-06-20   | 2020-06-17              |            -3 | Green                 |              100,00 | 2020-06-25 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Production      |         9441 | Machinery hall       |        38896 |                | DOI3            | Purchase milling machine 34DDe      |        131754 | Active      | To Do      |                           | Friederike Bieser |             1650 | 2020-06-26   | 2020-06-26              |             0 | Green                 |              100,00 | 2020-06-30 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Production      |         9441 | Machinery hall       |        38896 |                | DOI3            | Introduction milling machine 34DDe  |        131755 | Active      | To Do      | Risk ...                  | Friederike Bieser |             1650 | 2020-07-01   | 2020-07-02              |             1 | Green                 |              100,00 | 2020-07-02 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Production      |         9441 | Machinery hall       |        38896 |                | DOI3            | Evaluation                          |        131756 | Active      | To Do      |                           | Friederike Bieser |             1650 | 2020-07-03   | 2020-06-30              |            -3 | Green                 |              100,00 | 2020-07-13 |
| Package  | ABC Comp Demo |      285 | English Example |         1802 | Procurement     |         9442 | -                    |            - |              - | -               | -                                   |             - | Active      | To Do      | -                         |                   |                  | 2020-05-24   | 2020-05-24              |             0 | Yellow                |               86,00 | 2020-07-22 |
| Measure  | ABC Comp Demo |      285 | English Example |         1802 | Procurement     |         9442 | Diversification      |        38897 |                | DOI1            | -                                   |             - | Active      | To Do      | -                         |                   |                  | 2020-05-24   | 2020-05-24              |             0 | Yellow                |               86,67 | 2020-07-22 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Procurement     |         9442 | Diversification      |        38897 |                | DOI1            | ABC analysis                        |        131757 | Active      | Done       | All good ...              | Friederike Bieser |             1650 | 2020-05-24   | 2020-05-24              |             0 | Green                 |              100,00 | 2020-06-06 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Procurement     |         9442 | Diversification      |        38897 |                | DOI1            | Value Network with Meyer Company    |        131758 | Active      | To Do      |                           | Friederike Bieser |             1650 | 2020-06-14   | 2020-06-14              |             0 | Green                 |              100,00 | 2020-06-22 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Procurement     |         9442 | Diversification      |        38897 |                | DOI1            | Renegotiation                       |        131759 | Active      | To Do      |                           | Friederike Bieser |             1650 | 2020-06-23   | 2020-06-28              |             5 | Yellow                |               33,33 | 2020-07-13 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Procurement     |         9442 | Diversification      |        38897 |                | DOI1            | Meeting                             |        131760 | Active      | To Do      |                           | Friederike Bieser |             1650 | 2020-07-14   | 2020-07-12              |            -2 | Green                 |              100,00 | 2020-07-19 |
| Activity | ABC Comp Demo |      285 | English Example |         1802 | Procurement     |         9442 | Diversification      |        38897 |                | DOI1            | Product group concept               |        131761 | Active      | To Do      |                           | Friederike Bieser |             1650 | 2020-07-20   | 2020-07-20              |             0 | Green                 |              100,00 | 2020-07-22 |
| Measure  | ABC Comp Demo |      285 | English Example |         1802 | Procurement     |         9442 | Supplier Negotiation |        38898 |                |                 | -                                   |             - | Paused      |            | -                         |                   |                             
+----------+---------------+----------+-----------------+--------------+-----------------+--------------+----------------------+--------------+----------------+-----------------+-------------------------------------+---------------+-------------+------------+---------------------------+-------------------+------------------+--------------+-------------------------+---------------+-----------------------+---------------------+------------+

是否有一种方法可以基于列Type中的字符串有条件地折叠行?我希望列Activity中所有包含字符串Type的行都折叠。

如果您能帮助我,那将非常好!预先感谢!

编辑:

  • 这是结果的样子:

enter image description here

  • 过滤不是一个选项。 Type列具有一定的层次结构,不允许简单过滤而不丢失信息。

  • [我正在365环境中使用当前的Excel版本

excel vba rows excel-365
2个回答
2
投票

此VBA代码

Sub Group_Activity()

' Groups all rows with "Activity" in Column "A"
Dim cell As Range
Dim lastrow As Long
Dim startrow As Long
Dim endrow As Long

startrow = -1
endrow = -1

    With ActiveSheet

        lastrow = .Cells(.Rows.Count, 1).End(xlUp).Row

        For Each cell In .Range("A1:A" & lastrow)
            'Debug.Print Trim(cell.Value)
            If Trim(cell.Value) <> "Activity" Then
                If startrow > 0 Then
                    .Rows(startrow & ":" & endrow).Group
                    startrow = -1
                    endrow = -1
                End If

            Else
                If startrow = -1 Then startrow = cell.Row
                endrow = cell.Row

            End If
        Next
    End With
End Sub

带来此结果,无需任何选择过程:enter image description here


2
投票

选择A列并找到(Control + F)“活动” ..选择“匹配整个单元格内容->单击”查找全部“->按Control + A在对话框的列表中选择所有范围。

enter image description here

按Control + 9隐藏行或运行以下过程。

Sub Macro1()
    Dim ActGrps As Range
    Set ActGrps = Selection
    Dim ar As Range
    For Each ar In ActGrps.Areas
    ar.Rows.Group
    ar.Rows.Hidden = True
    Next
End Sub

可以通过选择“活动”单元格并将行分组的命令按钮来完全自动化所有这些,这需要更长的过程。

一次显示和隐藏所有行-选择数据A列(在这种情况下为A1:A32)。单击数据菜单->轮廓->显示/隐藏详细信息。同样,您也可以使用菜单->大纲->取消分组->行来一次取消所有数据的分组。

要显示或隐藏特定的组,请使用左侧带有行号的手柄。

编辑以下是根据以下注释添加的过程。

Public fndAdd As String
'========================================================================
Sub GroupRowsWithCondition()
Dim sh As Worksheet
Set sh = ActiveSheet
Dim DataCol As Range
Set DataCol = sh.Range("A1:A" & Range("A" & sh.Rows.Count).End(xlUp).Row)
'Debug.Print DataCol.Address '$A$1:$A$31

Dim cl As Range, fnd As Range
    For Each cl In DataCol
    If cl = "Activity" Then
        If fnd Is Nothing Then
        Set fnd = cl
        Else
        Set fnd = Union(fnd, cl)
        End If
    End If
    Next
'Debug.Print fnd.Address '$A$6:$A$10,$A$12:$A$17,$A$20:$A$24,$A$27:$A$31

fndAdd = fnd.Address

Dim ar As Range
For Each ar In fnd.Areas
ar.Rows.Group
'ar.Rows.Hidden = True
Next

Range("A1").Select
End Sub
'========================================================================

Sub toggleGroupShowHide()
'If assigned to form control button on a sheet,
' this macro will show / hide rows of the group created in GroupRowsWithCondition procedure
With ActiveSheet.Range(fndAdd)
    If .Rows.Hidden = True Then
        .Rows.Hidden = False
    Else
        .Rows.Hidden = True
    End If
End With

End Sub
'========================================================================

建议避免使用ActiveSheet,而改用工作表名称。因此,Set sh = Sheets("Sheet1")优于Set sh = ActiveSheet

您可以使用开发人员菜单->控件->插入->表单控件->按钮在工作表上插入按钮,并将宏分配给该按钮。但是,如果经常使用此宏,请考虑一下。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.