我怎样才能创build一个Excel的公式/表来找出我需要根据长度有多less东西?

我是一家定制金属制造公司的项目经理。 当我计算需要多less结构油pipe,通道,angular度等时,我是这样做的:

  • 写出每个部分的数量和长度。 例如:
    • 1x 110“
    • 4x 107“
    • 3x 50“
    • 18x 9“
  • 从288“开始(通常),从最长开始减去长度,所以我从288开始,然后减去110,直到我不能再减去,然后减去更小的值,直到我绝对不能再适应棒上面这个例子会变成288> 178> 71> 21> 12> 3这将是第一根棍子,我一直这样做,直到我脱离了局部,这告诉我有多less根棍子我需要点菜

我很乐意在excel中做到这一点。 我试图弄清楚,但无济于事。

那么基本上我需要什么样的配方才能做到这一点? 基本上,我可以input部件的长度和数量以及棒的长度,并计算所需的棒的数量。

注意:把所有的长度加在一起除以长度,绝对不行。 它必须recursion地(是正确的词?)从棒长减去部分长度。

我想到了你的问题,我喜欢这个任务,所以我决定写一个快速的macros来帮助你解决你的问题。 你的macros的input应该看起来如下:

在这里输入图像说明

macros的代码如下所示:

Sub CalcPipe() Dim StartPipeLng As Long, LastLng As Long, TotalLng As Long, PipeName As Long StartPipeLng = Cells(2, 4).Value ' Picks start value from cell D2 LastLng = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row 'Find last row of loop TotalLng = Application.WorksheetFunction.SumProduct(Range("A2:A" & LastLng), Range("B2:B" & LastLng)) TotalLng = Application.WorksheetFunction.RoundUp(TotalLng / StartPipeLng, 0) Cells(5, 4).Value = TotalLng 'Outputs the number of pipes in cell D5 PipeName = 1 For y = 6 To TotalLng + 5 Cells(1, y).Value = "Pipe " & PipeName PipeName = PipeName + 1 StartPipeLng = Cells(2, 4).Value For x = 2 To LastLng If StartPipeLng - Cells(x, 1).Value >= 0 And Cells(x, 2).Value <> Cells(x, 3).Value Then StartPipeLng = StartPipeLng - Cells(x, 1).Value Cells(x, 3).Value = Cells(x, 3).Value + 1 Cells(x, y).Value = Cells(x, y).Value + 1 x = x - 1 End If Next x Next y Columns(3).Clear End Sub 

运行macros之后的输出将如下所示:

在这里输入图像说明

让我知道macros是否适合你。 请注意,堆栈溢出不是一个编码服务,我作为一次性写给你。