Да и версия макрорекордера нормально работает, если ссылки привести в порядок. У Вас записано RefersToR1C1, значит ссылки должны быть в стиле R1C1, а Вы пытаетесь передать в стиле А1. Отсюда и проблема. Если записать так:
Код
Sub Добавить_имена()
Worksheets("График").Names.Add Name:="namecount", RefersTo:="=График!$CJ$15:$CJ$4200"
Worksheets("График").Names.Add Name:="namecount2", RefersTo:="=График!$CM$15:$CM$4200"
Worksheets("График").Names.Add Name:="namecount3", RefersTo:="=График!$CS$15:$CS$4200"
Worksheets("График").Names.Add Name:="namecount4", RefersTo:="=График!$BP$15:$BP$4200"
Worksheets("График").Names.Add Name:="namelist", RefersTo:="=График!$CJ$15:$CK$4200"
Worksheets("График").Names.Add Name:="namelist2", RefersTo:="=График!$CM$15:$CM$4200"
Worksheets("График").Names.Add Name:="namelist3", RefersTo:="=График!$CS$15:$CT$4200"
Worksheets("График").Names.Add Name:="namelist4", RefersTo:="=График!$BP$15:$CBQ$4200"
End Sub
все будет работать Или ссылки указывать в стиле R1C1(на примере одной - остальные лениво переделывать):
olege1983 написал: Макрорекордер выдал Activeworkbook.Names и вот эту фразу я изменил на Worksheets
если нет понимания разницы - лучше оставить Activeworkbook. В том варианте, в котором у Вас сейчас - созданные имена создаются с областью видимости в листе "График" и будут доступны в итоге исключительно на этом листе. Если же создавать через Activeworkbook.Names - имена будут доступны для применения в любом листе этой книги.
Так очевидно же - данные просто не найдены. А когда убираете 0 - идет поиск методом интервального просмотра. Напишите, что именно ищете и определитесь что хотите делать в случаях, если данные не найдены - тогда можно будет подсказать более конкретно что-то. Возможно, надо Вы пытаетесь искать часть слова, но функции указываете искать точное совпадение. Если надо найти строку, начинающуюся на "Присоед", то делать правильно так:
Есть у меня подозрение, зачем это сделано. Не факт, но других идей нет. По сути имя листа добавляется как правило в случаях, когда ссылка ведет на ДРУГОЙ лист или книгу. И если мы отсортируем таблицу со ссылками, а ссылки сортировать не станем - они могут в этом случае перестать ассоциироваться с нужными данными. Например, если мы ссылаемся на конкретную строку другого листа для получения из неё нужных данных. И для каждой строки текущей таблицы - это разная строка. При этом формула может не зависеть вообще от данных в текущей таблице - это ведь может быть совершенно самостоятельная формула, которая просто "тащит" показатель из другого листа просто на основании того, что пользователь решил, что для строки "Иван" текущей таблицы надо взять строку "7" листа "коэффициенты". И если мы не будем сортировать такие формулы - их ассоциации просто собьются. Понятно, что более-менее продвинутые пользователи не делают такой бредовины, но ведь и Excel когда-то разрабатывали не для профи. Другой вопрос, почему до сих пор не реализован механизм распознавания ссылок с именем листа текущего Думаю, просто забили на это дело, ибо общая статистика ошибок из-за этого бага явно незначительная.
P.S. Чтобы более понятно что я имею ввиду - добавьте еще один столбец в листе "Неправильно" и пропишите в нем на все значения формулы типа:
Код
=Правильно!A1
Т.е. ссылка на ячейку другого листа, которая соответствует конкретному имени. Отсортируйте таблицу. Всё будет отсортировано корректно с точки зрения соответствия данных - т.е. Петя напротив Пети, Вася напротив Васи. При этом ссылки изменятся.
Смотря какая формула. Иначе может оказаться, что разбор формулы и определение алгоритма её работы может в итоге стоить дороже, чем написание самого кода.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Long. Типы можно смотреть самостоятельно через окно Watches, перенеся туда переменную после получения ей значения. Так же можно еще и справку использовать(F1 или вбить свойство в поисковик).
P.S. Так-то вся тема к Word относится, а не к Excel...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пока Вы не напишите как что прописываете и откуда чего взять - Вам никто ничего толкового и полностью рабочего не предложит. Кроме Вас никто не знает, что там в Ваших ячейках и в каком виде записано. Вот, крутите(ячейки свои указывайте):
да вот ни разу, если хотите скопировать сводную таблицу, но чтобы в итоге это была не сводная, а обычная, но со всеми вычислениями сводной. Это можно сделать только кодом, притом не самым простым. Ведь вычисления в таблице могут быть разными: сумма, кол-во, произведение, дисперсия и т.п. И это все надо сначала определить, потом в таблице воспроизвести расчеты этих вычислений стандартными функциями. Плюс могут быть вычисляемые поля и объекты, которые тоже надо будет определять. Так что на самом деле не такая уж простая задача, как кажется.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
В общем-то, при помощи PowerQuery делается все достаточно просто(см.вложение). Основной принцип описан здесь: Как из оборотно-сальдовой ведомости сделать сводную таблицу при помощи Power Query, вариант 2. Если потренируетесь и разберетесь с вложенным файлом - то в дальнейшем без проблем сможете сами такие таблицы переделывать.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
ton bon написал: через функцию DisplayFormat не работает, а как работает - не понятно
да нет ничего не понятного. Просто Вы не все прочли - свойство DisplayFormat не будет работать внутри UDF(т.е. функции пользователя, вызываемой с листа). Вот и все. А у Вас скорее всего именно из листа и вызывается функция.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Не пробовали добавить сетевой диск(или отдельные его папки) в надежные расположения(Параметры -Центр управления безопасностью -Параметры центра управления безопасностью -Надежные расположения -Добавить новое расположение)? Тогда Excel должен игнорировать блокировку файлов из этих папок.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Nicola Verde написал: мне нужны именно цифры 1,2,3, а работает он со столбцом Объем работ, но форматы одинаковые
а скрины говорят другое: Объем работ - числовой тип с плавающей запятой, Индекс - без определенного типа. Это по иконкам видно. Добавьте все же шаг ДО создания столбца сведения, в котором назначьте столбцу Индекс тип ЧИСЛОВОЙ.
Кстати, что заметил: даты у Вас идут вроде бы не по порядку(не от самой ранней к поздней, а в разнобой) - значит перед сведением не мешало бы их отсортировать по возрастанию. Иначе может каша получиться в итоговой таблице.
написал: Насчет суммы не понял вас, можете уточнить?
сложно уточнять, когда и так уже расписал где это и откуда брать При создании столбца сведения - Расширенные параметры. Когда раскрываете - там есть функция сведения. Это либо сумма, либо количество и т.п. У Вас явно сумма, т.к. на скрине 4 это явно видно - List.Sum. В видео Николай почему-то не описывает этот момент. Попробуйте по этому видео(или текстовой инструкции) что-то изменить - может получится: Создать список дат(месяцев, кварталов, лет) на основании даты начала и окончания периода
Цитата
Nicola Verde написал: Я добавлял даты которые отсутствуют
это еще более непонятно. Почему отсутствует, зачем добавляли, куда...проще было бы в таблицу исходную добавить какую-то строку временную с проектом, начало которого было бы с первой нужной даты и заканчивается последней нужной.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Без файла действительно плохо понятно, что именно Вы делаете. Что хотелось бы уточнить: Вы при создании столбца сведения указываете функцию агрегирования Сумма по столбцу Индекс? Если да - то для начала надо для столбец индекс преобразовать в число, а уже потом агрегировать. Ну и понять бы, зачем именно сумма. Здесь судя по всему можно выбрать кол-во(разворачиваете Дополнительные параметры и выбираете функцию агрегирования).
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Дублирование текста через привязку совпадений между ячейками, Необходимо настроить автоматическое дублирование текста в ячейки ниже по списку на основе совпадения значений параллельного списка
Rinum написал: Так что не стоит тыкать в нос правилами форума, если какой-то пункт не выполнен
Да не выполняйте, Вас никто не заставляет. Но и прикрываться законами здесь не надо, никто не просит от Вас файлы телефонами и адресами. К тому же про них в описании речи и не шло. Упоминались только артикулы, которые ну никак не подпадают под понятие конфиденциальности. А если уж и есть там иная информация - можно потратить чуточку своего драгоценного времени и составить небольшой пример с данными, который не будет содержать никакой конфиденциальной информации и выложить его на форум. Если и это делать лень - то не стоит рассчитывать на то, что у кого-то на форуме возникнет желание угадывать что там и как у Вас расположено, чтобы решение готовое давать.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Виктор Скалин написал: это должен быть 1 фойл в формате ворда или pdf
А почему не подходит просто из Excel сохранить в PDF и этот файл подписать ЭЦП? Если нужна шапка на каждой странице - в Excel для печати можно сквозные строки назначить. Все остальные варианты будут все равно привязаны к ручному вмешательству и правкам в Word, т.к. прямого переноса, увы, нет.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Так Вы в запрос-то загляните - у Вас для этого кода ошибка висит: "Невозможно преобразовать в число". В запросе "ТЗаявки", из которого берете данные, Вы для этого столбца пытаетесь данные перевести в число на 2-м шаге запроса: = Table.TransformColumnTypes(Источник,{{"код 1-3", Int64.Type}, {"код 4-5", Int64.Type}, {"код 6-7", Int64.Type}, {"код 8-17", Int64.Type}, {"код 18-20", Int64.Type}, {"сумма заявок", type number}, {"КОСГУ", Int64.Type}, {"Код направления расходов", Int64.Type}, {"дата заявки", type datetime}, {"№ заявки", type any}}) Задайте нормальный тип и будет все как положено.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
а почему у Вас двоеточие в условиях, когда я формулу приводил с точкой-с-запятой? =СУММПРОИЗВ((C7:C115)*((D7:D115={"просрочен";"в работе";"отправлен скан счета"})))
Ну и сообщение мое выше прочтите - возможно надо ввести как формулу массива или использовать другой вариант формулы.
epova_viktoriya написал: по вашей формуле тоже выдает ошибку
либо введите мою формулу как формулу массива(сразу тремя клавишами Ctrl+Shift+Enter), либо используйте более длинный вариант: =СУММПРОИЗВ((C3:C100)*((D3:D100="просрочен")+(D3:D100="в работе")+(D3:D100="отправлен скан счета")))
Плюс, убедитесь, что в диапазоне суммирования нет текстовых значений. Иначе будет ошибка #ЗНАЧ!
смотря как пробовали - если все условия в одну функцию, то правильно, что не получается. Всегда 0 будет, т.к. СУММЕСЛИМН работает по принципу "если все условия выполняются". А Вы скорее всего указали несколько условий, типа: D:D;"просрочено";D:D;"в работе". А это не правильно, т.к. не может быть в одной ячейке двух разных значений.
ну да. Просто скрин Вы сделали не очень информативно - надо приглядываться, чтобы увидеть, что это выпадающий список, т.к. изображение обрезано очень сильно. Вот и ввело в заблуждение, несмотря на присутствие в описании слов про выпадающий список(у нас тут кто как только чего не называл ) По существу ZVI уже ответил - это фича 365 офиса, у меня работает без проблем. Возможно, в какой-то момент у Вас что-то откатилось просто вместе с очередным обновлением.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
elnur_quba написал: Как узнать, после чего происходит и как исправить?
Что такое _xlfn в формуле Excel? Используются функции, недоступные в других версиях. Других причин нет. Появляется сразу после того, как в файле была применена одна из функций. Информация хранится внутри файла, так что никакие перезагрузки здесь не помогут. А сами функции могут использоваться не только напрямую в формулах, но и в именах, проверках данных, условном форматировании и т.п.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...