在汇总表中重复获取工作簿的连续工作表中的特定数据集的 MIN、MAX、AVERAGE

发布于 2025-01-11 19:44:17 字数 416 浏览 0 评论 0原文

如何减少 Excel 中的手动工作,以在汇总表中获取工作簿的连续工作表中特定数据集的重复使用的 MIN、MAX、AVERAGE。每个工作表中的数据集都会有所不同,但是必须对每个 Excel 选项卡的列中的每个数据集执行这三个操作。该摘要表示随着时间的推移,工厂生产的橡胶批次的最小周期时间、最大周期时间和平均值。大约有 50 种不同的橡胶产品,因此工作簿中有 50 个工作表。带有控制图的周期时间 -查询
我在链接中提供了示例数据。

How do I reduce manual work in excel to fetch in a summary table a recurring use of MIN, MAX, AVERAGE for a specific data set in consecutive worksheets of a workbook. The dataset will be different in each worksheet, but the three operations have to be performed on each of the dataset in the column of each excel tab. The summary represents the cycle time minimum, maximum and averages of rubber batches being produced in a factory over time. There are approximately 50 different rubber products, so 50 worksheets in the workbook.Cycle Time with Control charts - Query.
I have provided sample data in the link.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小帐篷 2025-01-18 19:44:17

下面是一个脚本,它创建一个新工作表作为工作表 1,将其称为“摘要”,放入列标题并遍历所有工作表。

Option Explicit

Sub makeSummary()

Worksheets.Add Before:=Sheets(1)
Sheets(1).Name = "Summary"
Sheets(1).Range("A1").Value = "Sheet N°"
Sheets(1).Range("B1").Value = "Sheet Name"
Sheets(1).Range("C1").Value = "Minimum"
Sheets(1).Range("D1").Value = "Maximum"
Sheets(1).Range("E1").Value = "Average"

Dim i As Integer
For i = 2 To Sheets.Count
    CopySheet (i)
Next
End Sub

Sub CopySheet(s)  ' sheetNumber to treat

Dim minVal, maxVal, Running, i As Long
minVal = 100000
i = 3
Do While Sheets(s).Range("C" & i).Value <> 0
    If (Sheets(s).Range("C" & i).Value < minVal) Then
        minVal = Sheets(s).Range("C" & i).Value
    End If
        If (Sheets(s).Range("D" & i).Value > maxVal) Then
        maxVal = Sheets(s).Range("D" & i).Value
    End If
    Running = Running + Sheets(s).Range("E" & i).Value
    i = i + 1
Loop

Sheets(1).Range("A" & s).Value = s
Sheets(1).Range("B" & s).Value = Sheets(s).Name
Sheets(1).Range("C" & s).Value = minVal
Sheets(1).Range("D" & s).Value = maxVal
Sheets(1).Range("E" & s).Value = Running / (i - 3)

End Sub

以及测试表的输出(我用“产品名称”命名了这些表。如果有的话,您也可以从表中的单元格中复制它。)

Sheet N°    Sheet Name  Minimum Maximum Average
2           ProductA    2       150     35
3           ProductB    1       177     40

Here is a script which creates a new sheet as sheet 1, calls it Summary, puts in the column headings and runs through all the sheets.

Option Explicit

Sub makeSummary()

Worksheets.Add Before:=Sheets(1)
Sheets(1).Name = "Summary"
Sheets(1).Range("A1").Value = "Sheet N°"
Sheets(1).Range("B1").Value = "Sheet Name"
Sheets(1).Range("C1").Value = "Minimum"
Sheets(1).Range("D1").Value = "Maximum"
Sheets(1).Range("E1").Value = "Average"

Dim i As Integer
For i = 2 To Sheets.Count
    CopySheet (i)
Next
End Sub

Sub CopySheet(s)  ' sheetNumber to treat

Dim minVal, maxVal, Running, i As Long
minVal = 100000
i = 3
Do While Sheets(s).Range("C" & i).Value <> 0
    If (Sheets(s).Range("C" & i).Value < minVal) Then
        minVal = Sheets(s).Range("C" & i).Value
    End If
        If (Sheets(s).Range("D" & i).Value > maxVal) Then
        maxVal = Sheets(s).Range("D" & i).Value
    End If
    Running = Running + Sheets(s).Range("E" & i).Value
    i = i + 1
Loop

Sheets(1).Range("A" & s).Value = s
Sheets(1).Range("B" & s).Value = Sheets(s).Name
Sheets(1).Range("C" & s).Value = minVal
Sheets(1).Range("D" & s).Value = maxVal
Sheets(1).Range("E" & s).Value = Running / (i - 3)

End Sub

and the output from the test sheets (I've named the sheets with 'product names'. You could also copy this from a cell in the sheet if there is one.)

Sheet N°    Sheet Name  Minimum Maximum Average
2           ProductA    2       150     35
3           ProductB    1       177     40
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文