Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 След.
формула "СУММПРОИЗВ": не считает если в диапазоне суммирования попался текст, Посмотрите мой пример. Я ввожу условия, которые должны были отсеять текст, но все равно не работает.
 
memo, магия! Спасибо!
формула "СУММПРОИЗВ": не считает если в диапазоне суммирования попался текст, Посмотрите мой пример. Я ввожу условия, которые должны были отсеять текст, но все равно не работает.
 
memo, да, хотел это, спасибо большое!
Скорее ради удовлетворения любопытства спрошу, а через доработку моей "СУММПРОИЗВ" и не формулу массива эта проблема имеет не громоздкое решение?
Изменено: Сергей Юрьевич - 09.06.2023 15:39:22
формула "СУММПРОИЗВ": не считает если в диапазоне суммирования попался текст, Посмотрите мой пример. Я ввожу условия, которые должны были отсеять текст, но все равно не работает.
 
memo, а как сделать чтобы числа введенные как текст не исчезали? Я так понял, "Ч" их обнуляет, что для меня опасно
формула "СУММПРОИЗВ": не считает если в диапазоне суммирования попался текст, Посмотрите мой пример. Я ввожу условия, которые должны были отсеять текст, но все равно не работает.
 
Здравствуйте! Формула "СУММПРОИЗВ" не будет работать в принципе если в диапазоне суммирования есть текст? Я ввожу условия, которые должны были отсеять текст, но все равно не работает. И второй вопрос в рамках отправленного примера: как сделать чтобы умная таблица не переводила даты в заголовках таблицы в строки (хочу избавиться в моей формуле от ДАТАЗНАЧ, но хочу оставить умную таблицу)

Дополнено спустя время: желательно чтобы числа введеные как текст подсчитывались
Изменено: Сергей Юрьевич - 09.06.2023 04:13:12
Увеличится ли скорость кода VBA, если он сначала опросит все ячейки одного листа и только потом перейдет на второй лист., Задача: считать value 10000 ячеек в массив, ячейки хаотично разбросаны в пределах одной книг
 
RAN, собирается value ячеек в какую-то структуру данных, скажем, массив с листами и адресами ячеек, вот этот массив и нужно дополнить значениями по адресу ячеек. По этой причине двухмерный массив сразу имеет три столбца, заполнить нужно третий столбец - это value, в первых двух столбцах задан лист и ячейка. Порядок листов хаотичен и заранее не известен. Использовать собранные value никак не собираемся, просто кладем их в массив и довольно потираем руки.
Все, теперь есть полное описание задачи. Я расширил описание для вас, надеюсь теперь все понятно по исходным данным.
Я искренне не понимаю, правда, что дали эти дополнительные описания, что с их вводом появилось принципиально меняющее ход мыслей и как вам это поможет ответить на мои вопросы.

На всякий уточню, что вопрос не в полном коде которой должен иметь макрос, а максимум о паре строк в части цикла сбора.
Повторю свои прежние вопросы, но другими словами.
Имеет ли смысл циклу обходить ячейки на основании того, принадлежат ли они листу, или это ничего не дает с точки зрения скорости работы из-за условия, что ячейки не образуют общего диапазона на листе и каждое значение ячейки все равно придется собирать отдельной ссылкой на каждый адрес ячейки. Вы не можете получить доступ к диапазону, объединяющему несколько ячеек, потому что ячейки на листе не группируемы и поэтому какая бы то ни была группировка не может быть описаны (алгоритмом).
Есть ли смысл собирать значение, не заботясь о принадлежности к конкретному листу? Или лучше написать цикл так, чтобы он сначала собирал все ячейки одного листа и только потом переходил на другой лист, где снова обходил все его ячейки (это может быть быстрее, поскольку лист не прыгает туда-сюда и по этой причине может быть предустановлен одним действием сразу на несколько адресов одновременно, в противоположность тому, если об этом не позаботиться и разрешить листам прыгать туда-сюда в том хаотичном порядке в котором они встречаются по массиву).

Цикл можно составить по варианту 3 и лист поменяется 499 раза (так как у нас 10000 ячеек по 20 штук на листе, всего 500 листов), а можно не придавать этому значение и лист будет с отличием до 9999 раз в худшем сценарии варианта 1.
Изменено: Сергей Юрьевич - 29.10.2022 12:23:03
Увеличится ли скорость кода VBA, если он сначала опросит все ячейки одного листа и только потом перейдет на второй лист., Задача: считать value 10000 ячеек в массив, ячейки хаотично разбросаны в пределах одной книг
 
БМВ, большое спасибо! На всякий случай уточнюсь, меня смутила ваша настороженность по поводу читабельности кода. С краткостью решения, как мне кажется, полный порядок - не противоречит условию задачи адресам ячеек изначально находиться в двумерном массиве (лист, адрес). Простите меня за то, что я не упомянул об этом сразу. Вопросы выше можно свести и к таким:
1. Нужно ли разбивать данные в массиве по листам и последовательно запрашивать ячейки в пределах листа, или можно "не заморачиваться" и писать цикл полной адресации к случайному листу из массива.
2. Какой самый удачный синтаксис в пределах цикла в плане скорости. Есть ли разница между приведенными мной вариантами?
Если я правильно понял ваш ответ, то первое - да, желательно разбить. Второе - предпочтительный синтаксис на который нужно держать ориентир с "with", а не "Select" как было у меня в варианте 3. Могли бы вы пояснить в чем тонкость? Равнозначны ли вариант 1 и вариант 2? Спасибо!
Изменено: Сергей Юрьевич - 29.10.2022 09:18:06
Увеличится ли скорость кода VBA, если он сначала опросит все ячейки одного листа и только потом перейдет на второй лист., Задача: считать value 10000 ячеек в массив, ячейки хаотично разбросаны в пределах одной книг
 
New, не понял, а если данные листов не выстраиваются в линии чтобы их как в вашем примере макросом забирать целыми столбцами\строками?
Я именно такую ситуацию и обрисовывал в своем первом сообщении. Но, видимо, сделал это непрозрачно. Исправлюсь:
Есть 10000 адресов ячеек в несистемном виде. Скажем:
- по 20 ячеек на лист, таких листов 500. Итого 20яч. * на 500 листов = 10000 ячеек; Я не знаю может ли быть в одной книге столько листов. Для простоты предположим что все листы в одной книге.
- у ячеек нет общего столбца и строки в пределах одного листа, нужные данных по единственном экземпляре на строку и на столбец среди других ненужных значений.
- положение ячеек на одном листе ничего не говорит о их расположении на другом листе.

Если пример показался недостаточным - усложните, он же так скажем учебный, самый лютый сценарий примените из тех которые вам рисует воображение. Смысл в том что данных очень много, они не системны и стремятся образовывать максимально неудобные для считывания разом диапазоны ячеек, у части ячеек есть общий лист и это вся что у них общее. А мой вопрос про то нужно ли эти данные собирать ориентируясь на эту общность по листу.
(Исходя из этого я накидал варианты 1-3 в первом сообщении, но их у вас может быть больше, это те что мне пришли в голову).

Цитата
[USER=8380]Ігор Гончаренко[/USER], написал:
вы бы описали задачу
выложили исходные данные
Описание задачи приходится придумывать так как передо мной в чистом виде такой задачи не стоит. На абстрактом, избыточно усложненном примере хочу понять ответы на свои вопросы про скорость. Написать макрос под эту цель не смогу (я их так быстро как вы не пишу). Посмотрите, пожалуйста, я дал описание в этом сообщении выше.  
Изменено: Сергей Юрьевич - 29.10.2022 08:35:21
Увеличится ли скорость кода VBA, если он сначала опросит все ячейки одного листа и только потом перейдет на второй лист., Задача: считать value 10000 ячеек в массив, ячейки хаотично разбросаны в пределах одной книг
 
Привет!
Меня интересует, увеличится ли скорость работы кода VBA, если он сначала опросит все ячейки одного листа и только потом перейдет на второй лист.
Допустим, нам нужно считать значение 10000 ячеек в массив, сами ячейки разбросаны в пределах одной книги (каждое значение нужно читать по индивидуально назначенному адресу ячейки, оптимизация по общему диапазону невозможна).

Будет ли зависимость скорости от последовательности адресации листов?
Будет ли зависимость скорости от синтаксиса адресации листов?

Второй вопрос можно сузить для краткости - какой синтаксис оптимален для описанной выше задачи, есть ли разница для цикла при задании итерации:


Вариант 1
итерация 1
ThisWorkbook.Sheets("Лист1").Range("A3")
итерация 2
ThisWorkbook.Sheets("Лист2").Range("A2")
итерация 3
ThisWorkbook.Sheets("Лист1").Range("A4")

Вариант 2
итерация 1
ThisWorkbook.Sheets("Лист1").Range("A3")
итерация 2
ThisWorkbook.Sheets("Лист1").Range("A4")
итерация 3
ThisWorkbook.Sheets("Лист2").Range("A2")

Вариант 3
несколько циклов (один в другом)
ThisWorkbook.Sheets("Лист1").Select
'код обращения к адресам нужных ячеек без указания листа
ThisWorkbook.Sheets("Лист2").Select
'код обращения к адресам нужных ячеек без указания листа


P.s. Еще вопрос про скорость который меня волнует, если можно)
Это нормальная практика объединять с разделителем несколько значений в String разной длины и засовывать в массив, делая String последним уровнем вложения в структуре данных? Извлекается от от туда только один раз, поиск мне не нужен. Переживаю за скорость. Или лучше заменить на коллекцию?)
Изменено: Сергей Юрьевич - 29.10.2022 01:18:36
Удобное внедрение языка программирования "Python" в файл Excel на основе портативной сборки Python, Настроенный файл Excel для удобного вызова скриптов Python из Excel
 
Цитата
Игорь Федорович написал:
1. а в этой портативной сборке UDF функции организовать возможно?
Можно
на сайте достаточно хороший раздел дружественной к новичкам документации, попробуйте читать ее разделы в той последовательности как они идут, браузером можно сделать перевод на приемлемый русский.

Цитата
Игорь Федорович написал:
2. и запустить сервер что бы быстрее отрабатывался их вызов?
Видел возможность сделать удаленный интерпретатор Python, но сам не делал. Я хочу чтобы вы знали, когда на сайте столкнетесь что это опция для PRO: такая возможность доступна и для обычной версии библиотеки, она не афишируется, возможно из коммерческих соображений, но в одном из видео демонстрации новых возможностей xlwings я видел как автор сайта объяснял что делать пользователям обычной библиотеки. Какое конкретно это было видео я уже не вспомню, вы сможете его найти на канале автора сайта в ютубе. На этом канале не так много видео длиной около одного часа которые посвящены демонстрации возможностей, демонстрация проходила в формате Live (через яндекс браузер сможете посмотреть на русском).

Оставлю тут перевод части текста по ссылке выше о возможностях:

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

Полностью управляемые сервисы : Heroku , render , Fly.io и др.

Интерактивные среды : PythonAnywhere , Anvil и др.

Бессерверные функции : AWS Lambda , Azure Functions , Google Cloud Functions , Vercel и т. д.

Виртуальные машины : DigitalOcean (реферальная ссылка), vultr (реферальная ссылка), Linode , AWS EC2 , Microsoft Azure VM , Google Cloud Compute Engine и т. д.

Корпоративные серверы : все будет работать (включая Kubernetes), если к соответствующим конечным точкам можно получить доступ из вашего приложения для работы с электронными таблицами."
[
Изменено: Сергей Юрьевич - 06.09.2022 22:01:53
Нужна формула для вывода в одной ячейке номеров всех участков для заданного периода., Формула вроде ВПР, перечисляющая все значения, удовлетворяющие запрос, через разделитель.
 

Приветствую!

Нужна формула вроде ВПР, перечисляющая все уникальные значения, удовлетворяющие запрос через какой-то разделитель, скажем пробел либо запятую!

В прилагаемом примере даны идентификаторы работ, даты, номера участков (могут дублироваться в периоде). Нужен вывод всех уникальных участков для идентификатора внутри заданного периода (в примере предлагается выводить уникальные значения отдельно за 2018, 2019, 2020 и вместе за 2018-2020).

Вывод в одной ячейке! Формат не важен, можно как в примере через запятую или даже так: {1} или {1, 2, 3}, если это сделает работу формулы быстрее.

Задача стоящая передо мной: понятно для глаз вывести в одной ячейке все участки в периоде!

Спасибо!

Изменено: Сергей Юрьевич - 12.03.2022 11:13:14
Удобное внедрение языка программирования "Python" в файл Excel на основе портативной сборки Python, Настроенный файл Excel для удобного вызова скриптов Python из Excel
 
Цитата
Лина Сафиуллина написал:
Что я не так сделала? Буду благодарна за помощь!
Лина, можете попробовать снова, я изменил на первой странице источник портативной сборки. Думаю, теперь у вас все получится!
Изменено: Сергей Юрьевич - 25.12.2021 20:22:13
При цитировании пропадает ссылка на цитируемого
 
Цитата
vikttur написал:
Это так

:D  ;)  8)
При цитировании пропадает ссылка на цитируемого
 
Так как цитировать то теперь? Как мне ответить человеку на его вопрос чтобы он понял что я ответил на его вопрос (получил уведомление об этом)?
Сайт чтоли заброслили? Элементарного комфорта нет.

"а пока включаем режим BB code" - это как?
Изменено: Сергей Юрьевич - 25.12.2021 17:44:08
Как заставить макрос дождаться завершения работы других макросов., запросы PQ
 
,спасибо!
Office 2021 и новый Excel - у кого уже есть, какие мнения?, Обсуждение новой версии
 
Можно сюда задам вопрос. А как в новом Excel с редактором кода vba? Все по прежнему? Тот же интерфейс визуально все тоже самое?
Как заставить макрос дождаться завершения работы других макросов., запросы PQ
 
,хорошая идея! Ну если ничего более придумать нельзя, воспользуюсь! Спасибо!
Как заставить макрос дождаться завершения работы других макросов., запросы PQ
 
,нет, не совсем мой случай. У меня много запросов, если переписывать таким образом, то запросы НЕ будут стартовать один за другим что увеличит время исполнения кода (макрос не будет запускать следующий PQ-запроса пока не отработал прошлый PQ-запрос)
Как заставить макрос дождаться завершения работы других макросов., запросы PQ
 
Цитата
написал:
вы реализовали многопоточность в VBA ?
Нет, конечно. У меня запросы PQ продолжают работать от предшествующего макроса. Как узнать завершены ли все до единого PQ-запросы из других макросов той же книги?
Изменено: Сергей Юрьевич - 25.11.2021 08:32:36
Как заставить макрос дождаться завершения работы других макросов., запросы PQ
 
Добрый день!
Как заставить макрос дождаться завершения работы других макросов? Нужен код.
Изменено: vikttur - 25.11.2021 11:16:53
Удобное внедрение языка программирования "Python" в файл Excel на основе портативной сборки Python, Настроенный файл Excel для удобного вызова скриптов Python из Excel
 
egonomist, благодарю за роскошные подробности! Я так понял (из видео) вы два раза в месяц мониторите новые библиотеки Python. Из этого я заключил, что если вдруг появится что-то бесплатное, что способно выполнить код, который хранится в ячейках листа Excel, то вы об этом узнаете намного быстрее чем я. Буду благодарен если отпишите сюда! Я думаю где-то на этом сайте должна быть тема, которая несет информационно-позновательное о новинках в мире для связки Python + Excel. А может у вас есть такой блог?
Изменено: Сергей Юрьевич - 17.11.2021 13:18:24
Удобное внедрение языка программирования "Python" в файл Excel на основе портативной сборки Python, Настроенный файл Excel для удобного вызова скриптов Python из Excel
 
egonomist,  спасибо, за ваши 5 копеек! Не знал про библиотеку "mito", думал что кроме платной "bamboolib" GUI-альтернатив просто нет, так как мне не удалось ничего нагуглить другого полгода назад на эту тему.

Цитата
egonomist написал:
В такой связке VBA вообще не нужен. (Я раньше очень много писал на VBA но теперь им совсем не пользуюсь - переделываю чужие макросы на нормальные etl)
Какими инструментами решаете задачи сейчас, позвольте поинтересоваться? Я так понял у вас устоялась некая связка из редактора кода, ETL и БД, мне было бы интересно узнать несколько подробнее.
Изменено: Сергей Юрьевич - 14.11.2021 09:10:33
Выбор (формулой) максимального значения с самым высоким приоритетом из ряда значений
 
mechanix 85, в примере стоит "66" в ячейке N21. Возможно вам стоит загрузить пример заново, я менял его, возможно у вас старый. Кстати, ваша формула работает и в последнем варианте в файле-примере, если в пустую ячейку приоритета вписать какое-либо значение, например, "нет".
Меня это устраивает! Это даже лучше чем я хотел - будет стимулировать пользователей всегда указывать что-то в поле приоритета, иначе он будет получать ноль,поля не будут теперь пустыми!
Огромное спасибо Вам!
Изменено: Сергей Юрьевич - 28.10.2021 13:02:02
Выбор (формулой) максимального значения с самым высоким приоритетом из ряда значений
 
mechanix 85, формула не справляется с последней таблицей в файле "пример". Если формуле сложно пустые значения приоритета обрабатывать, то мне не проблема будет отметить в своем файле столбцы с такими значениями буквой или, например, словом "исключено" вместо пустоты.
Изменено: Сергей Юрьевич - 28.10.2021 12:49:33
Удобное внедрение языка программирования "Python" в файл Excel на основе портативной сборки Python, Настроенный файл Excel для удобного вызова скриптов Python из Excel
 
Лина Сафиуллина, честно говоря не знаю с какой проблемой вы столкнулись, я сейчас попробовал и у меня команда выполнилась.
Все что мне приходится сделать для установки: открываю Console-Launcher.exe и через комбинацию Ctrl+V вставляю скопированный текст pip install xlwings
Нажимаю клавишу Enter и все само устанавливается
Изменено: Сергей Юрьевич - 28.10.2021 12:27:51
Выбор (формулой) максимального значения с самым высоким приоритетом из ряда значений
 
Юрий М, предложите, я только рад буду если тему назовут более информативно
Выбор (формулой) максимального значения с самым высоким приоритетом из ряда значений
 
Прошу модератора изменить название темы на "Выбор максимального значения с самым высоким приоритетом из ряда значений". В описании - нужна формула, см. пример
Выбор (формулой) максимального значения с самым высоким приоритетом из ряда значений
 
Jack Famous, не удается изменить. Текст сообщения доступен для редактирования, но не само название темы
Выбор (формулой) максимального значения с самым высоким приоритетом из ряда значений
 
Добрый день!
Помогите решить задачу.
Есть ряд цифр из которых нужно выбрать одно значение исходя из условий:
1. Выбранное значение должно быть одно и с максимально высоким приоритетом (1- это максимум).
2. Если приоритет равен, а значений несколько- то выбирается максимальная цифра из ряда с одинаковым приоритетом.
3. Значение 0 или пусто обрабатывать одинаков - искать другие значения.
4. Найденное значение должно быть более 0, ноль возможен только если весь ряд нулевой (в принципе нет значений выше 0)
5. Приоритет не задан - игнорировать (значения без заданного приоритета не брать)
PQ. При попытке загрузки таблицы ошибка "Не допускается перекрытие результатов запроса и таблицы..."
 
Добрый день! После критического повреждения файла эксель создаю реплику старого файла и возникла неожиданная сложность - при копировании запроса из поврежденного файла в новый, абсолютно идентичный файл, пересаженный запрос выгружает результаты с созданием нового листа, а мне не надо на новый лист - мне нужно воссоздать прежнюю структуру документа и "заставить" запрос загрузить в ранее существующую под этот запрос таблицу. Удалить таблицу и сделать ее заново не смогу - для этого потребуется переписать множество формул, кроме того таких таблиц у меня 9 штук.
Изменено: Сергей Юрьевич - 26.10.2021 13:39:32
Файл отказывается сохраняться (критическая ошибка), с сообщением, что файл поврежден настолько серьезно что восстановить его не удалось
 
Здраствуйте! Помогите понять что требуется исправить в исходом файле.
Имеется файл формата .xlsm (исходный вариант), который вроде как работает без нареканий, но вот когда сотрудники фирмы берут его в качестве шаблона, после чего несколько раз у себя сохраняют с различными вариациями незначительных изменений и вот уже эти реплики, по не ясной мне причине, после изменений, иной раз, сохраняются нормально, а в другой раз, отказываются сохраняться с сообщением, что файл поврежден настолько серьезно что восстановить его не удалось:

Журнал восстановления:
Скрытый текст

Во вложении я дам ссылку на архив в котором будут два файла - рабочий исходник и реплика с него, которая дает ошибку при попытке ее сохранить в каком бы то ни было формате (и даже просто при нажатии на сохранить):
https://disk.yandex.ru/d/2cQoUrjMYXOrXg
Изменено: Сергей Юрьевич - 19.10.2021 08:06:15
Страницы: 1 2 3 4 След.
Наверх