И вам здравствовать долгие лета. Здесь, на форуме, темы с такими названиями закрываются. У вас же есть конкретный вопрос о работе сводной талицы, почему не назвать так тему? Вопрос в чём, "Как организовать сводной таблицей отображение уникальных клиентов?" Если это так, тогда Посмотрите здесь
написал: но теряется примерно от 3 до 7 часов по людям
Проверил соответствие с файлом в сообщении #4, одно расхождение у Холоднова. Остальные одинаковы. Если хотите получить второй IN как в сообщении #4, сумируйте два значения Присутствие+Отсутствие, это типа числился на работе (для отчётности, от первого входа до последнего выхода). У Холднова не стыковка, так как у него есть два выхода в одно и тоже время, строки в примере 291-292. Убрал один выход (удалил дубликаты). При одном входе и двух выходах расчет не верный.
Расцепить данные в ячейки по столбцам или вычленить нужную информацию, Необходимо расцепить данные в ячейки по столбцам или вычленить нужную информацию
iLastRow < 12 - Это условие если последняя ячейка в заполняемом столбце меньше 12 строке, тогда будет заполняться, если больше 12, тогда выйдет сообщение на картинке.
или если не выполнится условие iLastRow > startRow - т.е. последняя ячейка в заполняемом столбце не >5 строки, тоже выскачет сообщение. Если iLastRow=5 строке, то условие iLastRow > startRow не выполняется, ведь в макросе прописано, startRow =5, (5>5 = ЛОЖЬ)
написал: не могу добиться поочерёдности при изменении "= Cells(3, 74)"
Здравствуйте. Cells(3, 74) = пустая ячейка, Cells(4, 74) и следующие тоже пустые. Заполнение происходит, но так как все ячейки кроме Cells(2, 74) пустые, то соответственно и не заметно, что в пустые ячейке перенесено значение пустых ячеек. Замените Cells(3, 74), Cells(4, 74).....Cells(8, 74), на Cells(2, 74), тогда везде появится единица.
Здравствуйте. Чуток изменил ваши UDF под мин и макс.
Код
Function MinByColor(DataRange As Range, ColorSample As Range) As Double
Dim cell As Range, total As Double
For Each cell In DataRange
If cell.Interior.Color = ColorSample.Interior.Color Then
If total = 0 Then total = cell.Value
total = Application.Min(total, cell.Value)
End If
Next cell
MinByColor = total
End Function
Function MaxByColor(DataRange As Range, ColorSample As Range) As Double
Dim cell As Range, total As Double
For Each cell In DataRange
If cell.Interior.Color = ColorSample.Interior.Color Then total = Application.Max(total, cell.Value)
Next cell
MaxByColor = total
End Function
Здравствуйте. Установите формат Экспоненциальный, число десятичных знаков 0. всегда будет первая цифра после нулей. Может быть он подойдет. Но скорее всего нужно конечно округление, если после третьего знака данные не нужны.
написал: прописать условий требуется много и значений тоже
Всё равно в любой формуле все эти условия придётся прописывать. А вариантов чем заменить ЕСЛИМН(), придумать можно не один и не два. СУММПРОИЗВ(); СЧЁТЕСЛИМН(). возможно и ПРОСМОТР() подойдёт.
А при снятой защите авто высота работает? В поменяли в макросе пароль на свой? А выложить файл с одной строкой которую надо подогнать по высоте, никак? Пароль можно оставить 123, или вообще без пароля.
Здравствуйте. Попробуйте на ленте Главная -- группа Ячейки -- кнопка Формат -- Автоподбор высоты строки Работает только с необъединенными ячейками. Для объединенных ячеек нужен макрос.