【问题标题】:Sum values in columns with variable number of Columns列中具有可变列数的总和值
【发布时间】:2016-07-11 13:57:59
【问题描述】:

我有一个“项目需求”表,其中包含 3 个不同的东西:

一列包含对象的零件编号,几列以日期为标题,数量为其中的值。

Part Number |  Date1 |    Date2 | Date3  |    Date4 ... | Lead Time

2003032.........201.........63.......54..........63.............3  

2145631..........54.........21........53..........21............2

4563214.........23..........121.......12.........31.............5

但这是我需要做的,我不知道该怎么做。

所以如果 Lead Time 是 3 个月,我需要取今天的日期和 3 个月的总和,而不是选择与这个总和的结果相对应的列(仅同一个月而不是同一日期),而不是取值此列和它之前的所有列并全部求和。

我不确定我是否说清楚了,如果我没有说清楚,我很抱歉。如果有任何问题,我会尝试进一步解释。

希望有人能提供帮助。

Excel 2002

【问题讨论】:

  • 欢迎来到本站!你试过什么了?查看tour,了解有关提出可能引发有效答案的问题的更多信息。
  • 为此或 sumif 使用数组公式
  • 我在 vba 中需要这个,到目前为止,我已经做了一个宏,它从 SAP 获取信息,并分析了一些数据,但我依赖这个来继续。
  • 我能做的就是将“提前期”列的值添加到今天的日期。这会给我我想要的最后一列。但是我不知道如何让 vba 知道这是哪一列,然后将此列和所有值相加,直到第一列。所以... DataLead = Date + Range("AX3").Value 比那会给我日期,这将是最后一列,而不是我必须在日期列中找到类似的日期(找到相同的月份)。那会给我一列,我不必知道如何选择这一列并一直选择到第一列,然后对里面的所有值求和。
  • 一旦你得到答案 - 它会进入哪个单元格?

标签: vba excel excel-formula sum


【解决方案1】:

电影。您的情况不需要 VBA,公式 SUM 和 OFFSET 应该这样做。我做了一个非常简单的表来说明清楚:

Printscreen

【讨论】:

  • 我认为这会有所帮助,我会尝试一下。但是我你的表为什么“TODAY DATE”有 3 个不同的日期
  • 这是一个输入,用于测试公式是否适用于可变日期。您可以更改该列中 =TODAY() 的值。
【解决方案2】:

假设

  • 日期从左到右升序排列

  • 日期在连续范围内(它们之间没有空格)

  • 日期是其行中唯一的数字

  • 交货时间是其列中唯一的数字

那你可以试试这个

Option Explicit

Sub main()
    Dim cell As Range, datesRng As Range
    Dim jMonth As Variant
    Dim mySht As Worksheet: Set mySht = Worksheets("leadtimes") '<--| change "leadtimes" with your actual sheet name
    Dim leadCol As String: leadCol = "N" '<--| change "N" to your actual lead times column index

    With mySht
        Set datesRng = .Rows(1).SpecialCells(xlCellTypeConstants, xlNumbers)
        For Each cell In .Columns(leadCol).SpecialCells(xlCellTypeConstants, xlNumbers)
            jMonth = Application.Match(CLng(DateAdd("m", cell.Value, Date)), datesRng, 1)
            If Not IsError(jMonth) Then cell.offset(, 1) = WorksheetFunction.Sum(datesRng.offset(cell.Row - datesRng.Rows(1).Row).Resize(, jMonth))
        Next cell
    End With
End Sub

【讨论】:

  • @L.Fim:你试过这个吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-30
  • 1970-01-01
  • 2021-10-04
  • 2020-03-22
  • 2018-12-31
  • 2021-03-05
相关资源
最近更新 更多