Новости:

Теперь на форум можно залогиниться / зарегистрироваться с помощью ВКонтакте. Уже существующие пользователи могут связать свою учетную запись с аккаунтом ВКонтакте одним кликом в профиле пользователя http://forum.msexcel.ru/index.php?action=profile;area=account

Главное меню

суммирование ячеек с заливкой в определяемой функцией диапазоне

Автор Диана Нурушева, 28.02.2017, 21:34

« назад - далее »

Диана Нурушева

здравствуйте! просьба помочь.
функция Public Function SumByColor
можно ли в эту функцию добавить еще одно условие: суммирование значений с заливкой по определенной фамилии.
пробовала добавить функции суммесли и суммеслимн. не получается.

kuklp1

SumByColor - пользовательская функция написанная на ВБА. И где она в Вашем файле? А формулам листа, тем самым суммесли и суммеслимн, до лампочки любые форматы ячеек, они работают только со значениями(чего и Вам желаю).
Я, как всегда, чертовски адекватен... Email: kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728, E332314026771

Диана Нурушева

сюда можно вложить файл с расширением.xls-его и вложила.
а функция Public Function SumByColor у меня в файле с расширением .xlsm
Public Function SUMBYCELLCOLOR(ByVal rgeSearchCells As Range, _
                              ByVal rgeCriteriaCell As Range) As Double
Dim rgeCell As Range
For Each rgeCell In rgeSearchCells
   If rgeCell.Interior.Color = rgeCriteriaCell.Interior.Color Then
      SUMBYCELLCOLOR = SUMBYCELLCOLOR + rgeCell.Value
   End If
Next rgeCell
End Function

то есть, в диапазон просматриваемых ячеек =SumByColor([color=#ff0000]C2:C16[/color];$H$1) бесполезно пытаться впихнуть функцию суммесли?
тогда, как можно диапазон просматриваемых ячеек ограничить только одной фамилией (разумеется формулой, не руками диапазон выбирать по каждой фамилии)?

kuklp1

Сюда вполне можно запакованные в зип, рар файлы xlsm, или просто xls выкладывать.
Public Function SUMBYCELLCOLOR(ByVal rgeSearchCells As Range, _
                               ByVal rgeCriteriaCell As Range, fam$) As Double
    Dim rgeCell As Range
    For Each rgeCell In rgeSearchCells
        If rgeCell.Interior.Color = rgeCriteriaCell.Interior.Color And rgeCell.Offset(, -1).Value = fam Then
            SUMBYCELLCOLOR = SUMBYCELLCOLOR + rgeCell.Value
        End If
    Next rgeCell
End Function
где fam - нужная фамилия.
Я, как всегда, чертовски адекватен... Email: kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728, E332314026771


Диана Нурушева

просьба. Вы не могли бы помочь еще?
есть два файла: "2 файл" и "3 файл". в каждом нужен только один лист.
во "2 файле" по строкам фамилии, по столбам- даты. в этом файле изначально расставлены оранжевые заливки.
в "3 файле" по строкам фамилии и даты под каждой, столб- время в цифровом формате, причем у людей не все даты могут быть рабочими (нерабочих в таблице нет).
нужно:
1. из 2 файла перенести оранжевые заливки в 3 файл по датам и фамилиям
2. после того как я руками расставлю в 3 файле серые заливки (сама), перенести эти серые заливки во 2 файл по фамилиям и датам.
спасибо!

vikttur


Диана Нурушева

в Вашем заархивированном файле формула работает, но когда пытаюсь саму формулу скопировать отсюда в новый файл- она не работает. уточните формулу, пожалуйста...

vikttur

?
Здесь только один архив - Ваш. Вы к себе обращаетесь?

Диана Нурушева

архив Ваш. в заархивированном файле функция работает.
копирую код функции, прописанный тут Вами в окошке в файл у меня на локальном диске- не работает(

kuklp1

Диана, придите в себя! В каком сообщении Виктора Вы видите архив?! Номер и время сообщения, пожалуйста.
P.S. и не надо писать мне в личку, все вопросы обсуждаются в форуме. Кроме случаев оплачиваемой работы. Или дружеских сплетен форумчан.  ;)
Я, как всегда, чертовски адекватен... Email: kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728, E332314026771

Диана Нурушева

формула, прописанная kuklp1 в сообщении от 01.03.17 не всегда работает. иногда все хорошо- выдает верный результат, а иногда в файлах- выдает сумму=0, хотя там есть ячейки, удовлетворяющие заданным условиям. просто хотела уточнить скорректированную под фамилию функцию. извините, не хотела никого задеть.
p.s. я в себе.