Страницы: 1
RSS
Сумма чисел до сегодняшнего дня в таблице
 
Добрый вечер!
Есть что-то вроде календаря, под каждой датой свое значение.
Помогите в ячейку А1 написать формулу, кот. будет считать все значения до сегодняшнего дня, включая его.
 
Добрый вечер katilovm,если транспортировать ваш календарь в "приемлемый" вид , то можно и так:
Код
=СУММЕСЛИ(I1:I31;"<="&СЕГОДНЯ();$J$1:$J$31)
Изменено: Aleksey1107 - 22.01.2020 23:25:44
 
Да, рассматривал такой вариант. Но, к сожалению, нет возможности транспортировать календарь в линейную форму.
Т.е. доп. условие, что календарь должен остаться в первоначальном виде.
 
Макросом, проверяйте.
Код
Sub iSumma()
Dim FoundDate As Range
Dim S1 As Double
Dim S2 As Double
Dim S3 As Double
Dim S4 As Double
  S1 = WorksheetFunction.Sum(Range("A2:G2"))
  S2 = WorksheetFunction.Sum(Range("A4:G4"))
  S3 = WorksheetFunction.Sum(Range("A6:G6"))
  S4 = WorksheetFunction.Sum(Range("A8:G8"))
  Set FoundDate = Columns("A:G").Find(Date, , xlFormulas, xlWhole)
  If Not FoundDate Is Nothing Then
    Select Case FoundDate.Row
      Case 1
        Range("A1") = WorksheetFunction.Sum(Range(Cells(2, 1), Cells(FoundDate.Row + 1, FoundDate.Column)))
      Case 3
        Range("A1") = S1 + WorksheetFunction.Sum(Range(Cells(4, 1), Cells(FoundDate.Row + 1, FoundDate.Column)))
      Case 5
        Range("A1") = S1 + S2 + WorksheetFunction.Sum(Range(Cells(6, 1), Cells(FoundDate.Row + 1, FoundDate.Column)))
      Case 7
        Range("A1") = S1 + S2 + S3 + WorksheetFunction.Sum(Range(Cells(8, 1), Cells(FoundDate.Row + 1, FoundDate.Column)))
      Case 9
        Range("A1") = S1 + S2 + S3 + S4 + WorksheetFunction.Sum(Range(Cells(8, 1), Cells(FoundDate.Row + 1, FoundDate.Column)))
    End Select
  Else
    MsgBox "В таблице нет сегодняшней даты: " & Date
  End If
End Sub
 
Цитата
Kuzmich написал:
Макросом, проверяйте.
Спасибо, работает.

Но что делать, если надо транспортировать на большую таблицу? Я не силен в макросах. Может формулой решить можно задачку?
 
Проверяйте:
В любую ячейку кроме А1.
=СУММПРОИЗВ((A1:G9<=СЕГОДНЯ())*(A1:G9<>"")*ЕНЕЧЁТ(СТРОКА(A1:A9))*A2:G10)
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
Страницы: 1
Наверх