Помогите с решением задачи... пытаюсь через sumifs написать формулу, но, к сожалению, результат выдается неправильный... наверное что-то все-таки некорректно сделал.
Исходные данные содержат несколько полей включая ТИП (текстовые значения) и две колонки с датами а также количества. Необходимо суммирование всех количеств где ТИП совпадает и дата находится в нужном диапазоне, указанном на первом листе как дата начала и дата конца диапазона.
Пришлось немного повозиться и переделать файл на другом ПК где не стоит корпоративная система шифрования... вот сейчас (ОЧЕНЬ) надеюсь все ок с файликом.
=СУММПРОИЗВ(Sheet2!C2:C10*(Sheet2!A2:A10=A2)*(--Sheet2!B2:B10>=--B2)*(--Sheet2!B2:B10<=--C2)) Но правильнее - привести даты к нормальному формату даты. Всего лишь три раза плюнуть через левое плечо повторить действие: выделить один столбец с датами, Данные-Текст по столбцам-Готово.
Спасибо за совет, Михаил. не могу никак уйти от ошибок... можете в файл добавить вашу формулу? Заранее извиняюсь за беспокойство... по поводу данных - вроде бы по внешнему виду данные выглядят как дата, при переводе типа ячейки в тип "даты" ничего не меняется... ровно те же сложности остаются. Датазнач на все типы моих дат выдает ошибку...
Михаил Pr написал: при переводе типа ячейки в тип "даты" ничего не меняется...
Формат ячейки и формат значения - не одно и то же. Данные внешне выглядят, как даты, но там текст. И как бы Вы не меняли формат ячейки. текст останется текстом и внешне будет выглядеть. как дата. А вот если в ячейку вписать дату (настоящую дату), то формат ее отображения можно менять, хотя дата останется числовым значением (количество дней от 01.01.1900)
Спасибо большое за подсказку и за формулу. Тема для меня действительно незнакомая... подскажите, а данная формула как то может быть изменена (например задать другой размер массива)? при любых изменениях, даже минимальных формула выдает ошибку...
Количество строк должны быть одинаковыми Например, если $A$2:$A$9 изменили на $A$2:$A$40, то и в других диапазонах формулы должно быть 39 строк. $B$2:$B$40 А так покажите в примере при каких изменениях выходит ошибка
Макрос в стандартный модуль, запускать при активном листе Sheet1
Код
Sub Tablica()
Dim i As Long
Dim iLastRow As Long
Dim List2 As Worksheet
Dim FoundCell As Range
Dim FAdr As String
Set List2 = ThisWorkbook.Worksheets("Sheet2")
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
Range("D2:D" & iLastRow) = 0
With List2
For i = 2 To iLastRow
Set FoundCell = .Columns(1).Find(Cells(i, "A"), , xlValues, xlWhole)
If Not FoundCell Is Nothing Then
FAdr = FoundCell.Address
Do
If FoundCell.Offset(, 1) >= Cells(i, "B") And FoundCell.Offset(, 1) <= Cells(i, "C") Then
Cells(i, "D") = Cells(i, "D") + FoundCell.Offset(, 2)
End If
Set FoundCell = .Columns(1).FindNext(FoundCell)
Loop While FoundCell.Address <> FAdr
End If
Next
End With
End Sub
Переформулирую вопрос. если я делаю изменение в вашейй формуле, кроме того что должны быть одинаковые количества строк в диапазонах, нужно что-то еще зажимать чтобы не слетала формула в ошибку? или ее можно только записать с нуля? как быть если нужно формулу протянуть на большее количество строк первого листа?