Страницы: 1
RSS
Макрос перебора диапазона с исключением повторов (без первого вхождения)
 
Имеется таблица учёта табелирования сотрудников по должностям. 1 сотрудник может в разные дни табелироваться любой должностью.
На листе Отчетник выводится список всех табелирующихся сотрудников, где с помощью формул автоматически подсчитываются их общие часы работы, исходя из данных на листе Электронная фиксация (далее - ЭФ).
Не особо силён в VBA, но нужен макрос, который при нажатии на кнопку будет заполнять диапазон B17:B31 листа Отчетник фамилиями сотрудников с листа ЭФ.
То есть, на листе ЭФ будет перебираться диапазон B4:B38 (минуя объединённые ячейки B3, B9 и подобные), исключаться повторы и выводиться на листе Отчетник.
Надеюсь, объяснил всё нормально, очень надеюсь на помощь. Заранее спасибо!  
 
Точно нужен только макрос? Формульный вариант заполнения не подходит?
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
Точно нужен только макрос? Формульный вариант заполнения не подходит?
Хм... А формульный вариант включает в себя использование дополнительных\вспомогательных строк? Если нет, то как это будет выглядеть? Просто мне одни умные люди чуть делали вместо заполнения - выпадающий список, но там использовали доп.строки для перебора и считывания. А я особо не смог понять принцип, да и не особо хочется вот это присутствие дополнительной информации
 
=IFERROR(INDEX('Электронная фиксация'!$B$4:$B$38;MATCH(0;IF('Электронная фиксация'!$B$4:$B$38=0;1;COUNTIF(B$16:B16;'Электронная фиксация'!$B$4:$B$38));));"")

Более новые версии Excel имеют функции позволяющие сделать проще и короче.

только что есть
Цитата
Даня написал:
(без первого вхождения)
Изменено: БМВ - 28.11.2022 07:59:11
По вопросам из тем форума, личку не читаю.
 
см. файл. Там кнопка "Скопировать в Отчётник"
 
Цитата
написал:
=IFERROR(INDEX('Электронная фиксация'!$B$4:$B$38;MATCH(0;IF('Электронная фиксация'!$B$4:$B$38=0;1;COUNTIF(B$16:B16;'Электронная фиксация'!$B$4:$B$38)));"")

Более новые версии Excel имеют функции позволяющие сделать проще и короче.

только что есть  
Цитата
Даня написал:
(без первого вхождения)
Работает так как и нужно, спасибо)
Но появилась проблема. Если на первом листе убрать одно ФИО, то на втором листе появляются дубликаты часов. Я так понял, считывание происходит по Должности или по часам при отсутствии ФИО. Если с первого листа с любой строки убрать ФИО + Часы, то всё нормально
Изменено: Даня - 28.11.2022 13:04:54
 
Цитата
написал:
см. файл. Там кнопка "Скопировать в Отчётник"
Вот Макросом работает прям как часики. Спасибки большое)
Попробую разобрать принцип. Но и всё же интересен окончательный вариант БМВ)
 
Цитата
новые версии Excel имеют функции
=LET(x;'Электронная фиксация'!B4:B38;УНИК(ФИЛЬТР(x;x<>"")))
Страницы: 1
Наверх