Пользуюсь самодельным планировщиком заданий в Эксцеле. Ну, там формулы дат типа каждая вторая среда чётного месяца или последний день месяца, начинающего квартал; выбор/классификация оснований для выполнения, заданий и результатов выполнения по ключевым словам; автоматические подсчёты количеств за периоды времени, средних значений, построение графиков и т.д. Увидел у коллеги с другого предприятия ещё более функциональную папку с файлами. Но часто приходится долго придумывать, с помощью каких формул в ячейках получить нужный результат.
Функции «Номер недели в году»/«Номер недели в месяце» разве нет?
Цитата: Bhudh от апреля 15, 2016, 22:06
Функции «Номер недели в году»/«Номер недели в месяце» разве нет?
Первая есть, второе и без функции нетрудно посчитать.
Если честно, я вообще не понял, о чём тема, никакой конкретики.
Ну, о своих "достижениях" я написал для показа своего невысокого, но не нулевого уровня владения эксцелем, например, с назначением таких дат я справился.
Вот текущие вопросы.
1) Некий лист содержит пару сотен столбцов (каждый с уникальным именем) и десятки тысяч строк. В определенных столбцах ячейки пустые или содержат тексты "+" (понятно, что каждый такой текст можно быстро вручную заменить на имена столбцов). Создал еще один столбец. Требуется в каждой строке заполнить ячейку этого нового столбца текстом, состоящим из имён столбцов перечисленных непустых ячеек.
2) далее, тексты в некоторых из находящихся друг под другом ячеек двух и более строк будут одинаковые. Если так, то надо оставить только одну из этих строк, но объединить в одну ячейку тексты из других находящихся друг под другом ячеек.
Второе точно без VBA не сделать, первое скорее всего тоже. Понадобится хотя бы простая функция конкатенации, т.к. стандартная concatenate не принимает диапазоны ячеек. Думаю, вам поможет предложенная здесь функция ConcatIf: http://www.mrexcel.com/forum/excel-questions/365691-concatenate-multiple-cells-array-formula.html
Цитата: Upliner от апреля 16, 2016, 13:33
без VBA не сделать, первое скорее всего тоже. Понадобится хотя бы простая функция конкатенации, т.к. стандартная concatenate не принимает диапазоны ячеек
Оказывается число ячеек в формуле =A1&B1&C1... не может быть более 32. Поэтому конкатенировал в два этапа: сначала по 32 ячейки, затем результаты в одну. Ну, и на каждом этапе заменял результат вычисления значением.
Цитата: Rusiok от апреля 18, 2016, 11:44
Оказывается число ячеек в формуле =A1&B1&C1... не может быть более 32. Поэтому конкатенировал в два этапа: сначала по 32 ячейки, затем результаты в одну. Ну, и на каждом этапе заменял результат вычисления значением.
Вроде пишут, что функция CONTATENATE() может принимать до 255 аргументов, и это единственное её отличие от оператора &
Кстати, я кажется неправильно понял второй пункт. Мне показалось, что нужно сделать реальный Merge Cells, если значения в соседних двух ячейках совпадает. Если не надо -- то это конечно реализуется без VBA.
Кто знает, как убрать из ячеек без данных эту абракадабру? То есть, если цифры не вводить, то должна отображаться просто пустая ячейка
Разве что так: ЕСЛИ(C8=0;"";(оригинальная формула))
Цитата: Upliner от июля 9, 2019, 11:52
Разве что так: ЕСЛИ(C8=0;"";(оригинальная формула))
Семён Семёныч... :3tfu:
ЕСЛИОШИБКА(D8*100/C8;"") и т.п.
Напишите как эта формула будет выглядеть полностью, пожалуйста, а то я тупой совсем в этой программе :-[
P.S. О, разобрался! :=
Спасибо :UU: