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

Страницы: 1 2 3 След.
Ошибка при попытке удалить значения в ячейках строки умной таблицы (run-time error '-2147417848 (80010108)')
 
Всем — большое спасибо!
Задача решена!
Ошибка при попытке удалить значения в ячейках строки умной таблицы (run-time error '-2147417848 (80010108)')
 
Sanja,
прошу прощения, еще один вопрос вдогонку...

Если я беру ваш код 1 в 1, но добавляю в конце
Код
Debug.Print Target.Address
, то получаю, например:
$L$21:$P$21
$K$21

Почему в одном target.address получается 2 диапазона?

При этом, если этот debug.print вставляю внутрь блока If, то результат будет одиночным: $K$21
Ошибка при попытке удалить значения в ячейках строки умной таблицы (run-time error '-2147417848 (80010108)')
 
Sanja,
в вашем примере в обоих упоминаниях Application.EnableEvents = True. Так и должно быть? Ведь "по умолчанию" итак "True" стоит, разве нет?
Ошибка при попытке удалить значения в ячейках строки умной таблицы (run-time error '-2147417848 (80010108)')
 
Спасибо всем за оперативные ответы.

Если добавить "Application.EnableEvents = False/True" в том числе, в "мой" вариант, то тоже все работает.
Получается, в любом случае, "бесконечный цикл", который купируется через Application.EnableEvents = False/True.

"Бесконечность" происходит из-за того, что результатом события "Worksheet.Change" является новое изменение листа? Но, вроде как, повторное событие не должно возникать, т.к. меняются другие ячейки, а не те, которые прописаны в условии "IF", разве нет?
Ошибка при попытке удалить значения в ячейках строки умной таблицы (run-time error '-2147417848 (80010108)')
 
Добрый день,

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

Пытаюсь сделать через событие Worksheet.Change
Но, чтобы я не делал, какие бы варианты не подставлял, все время получаю ошибку "-2147417848 (80010108)' Метод 'ClearContents' of object 'Range' failed.
Прошу помочь при возможности и объяснить, что не так в коде?

Заранее благодарю
ABC-анализ с учетом среза по годам (PP)
 
AlienSx, большое спасибо за ссылку!!!
ABC-анализ с учетом среза по годам (PP)
 
В результате:
1. В PP так и не придумал, как сделать доп. поле так, чтобы заказчики группировались по ABC-группам с учетом "года".
2. Подумывал сделать в PQ, но также из-за нескольких годов, не получилось.
3. Остановился на "мерах": сделал ABC-группу доп. столбцом в сводной таблице.

Всем еще раз спасибо за советы и участие!
ABC-анализ с учетом среза по годам (PP)
 
Спасибо за ответы.
Виноват, что комментарии даю столь поздно - не было доступа к Интернет.
Попробую разобраться через "меры". Если не получится - переформулирую запрос + сделаю более "правильный" пример.
ABC-анализ с учетом среза по годам (PP)
 
Добрый день,
запутался в контекстах и т.п.
Прошу помочь разобраться в следующем вопросе:
1. Есть таблица с заказами за 2 года
2. Заказы выполнялись разными отделами (допустим "Отдел А" , "Отдел Б", "Отдел В")
3. Необходимо выполнить ABC-анализ определенных отделов по сумме заказов: разделить суммы заказов только "нужных" отделов (например, Б и В) на 3 группы, в зависимости от доли суммы заказов, выполненных "нужным" отделом
3а. Полученная сводная таблица должна реагировать на срез "по годам": т.е. показывать конечные данные с учетом года (или без учета, если выбраны все годы).

Сделал через PP, работает вроде как, но:
1. На срез по годам не реагирует совсем (т.е. общая сумма заказов от которой считаются проценты (сделал вычисляемым столбцом) - всегда общая за все время)
2. Странно получается общая сумма в каждой итоговой группе (ABC) - вроде через switch прописаны варианты 0,8, 0,95, и т.д. Но итоги как-то не соответствуют. Наверное, итоговые проценты рассчитываются, все-таки, неверно. Хотелось бы получить суммы процентов как можно ближе к указанным для каждой группы (насколько возможно).

Прошу помочь советом или примером.
"Пример" прилагаю.
Заранее благодарю за помощь и участие.
PQ. List.Generate. Перечисление аргументов функции без each
 
Дмитрий Никитин, спасибо!
PQ. List.Generate. Перечисление аргументов функции без each
 
Спасибо, но речь немного не об этом.
Вопрос был как переписать подобную функцию без помощи each, если в записи более одного поля:
Виноват, пример был неудачным.
Код
List.Generate(
    () => [num = 1, Name = "Иван", Surname = "Иванов"],
    each [num] <= 10,
    each [num = [num] + 1]
)

Переписать List.Generate без each так,
Код
List.Generate(
    () => [num = 1, Name = "Иван", Surname = "Иванов"],
    (x) => ?,
    (x) => ?,
    (x) => [запись: поле num, поле Name, поле Surname]?
)
чтобы в результате получилось 10 записей, у которых поле num от 1 до 10, остальные поля - без изменений.
Изменено: Sviman144 - 05.12.2025 13:42:04
PQ. List.Generate. Перечисление аргументов функции без each
 
Добрый день,
прошу помочь "сообразить" как написать пример функции List.Generate без использования each
Пример:
Код
List.Generate(
    () => [num = 1],
    each [num] <= 10,
    each [num = [num] + 1]
)
Как переписать эту функцию так, чтобы не использовать конструкцию "each"? В виде:
Код
List.Generate(
    () => [num = 1],
    (x) => ?,
    (x) => ?,
)
Заранее благодарю за ответы по существу.
Изменено: Sanja - 05.12.2025 13:02:25
Удалить значения в строке в соседнем столбце от активной ячейки в умной таблице (VBA)
 
Задача решена.
Большое спасибо!
Тему можно считать закрытой.
Удалить значения в строке в соседнем столбце от активной ячейки в умной таблице (VBA)
 
Спасибо за оперативный ответ.
Один дополнительный вопрос, если позволите: Не могли бы вы чуть универсализировать функцию, дабы обращение к столбцу было не по имени, а,
например, по его индексу в таблице (для случая, когда эту функцию можно было использовать на нескольких таблицах с разными названиями столбцов).

Как вариант, возможно, как-то определить переменную, в которую попадал бы адрес текущей активной ячейки (как адрес в умной таблице)? И адрес этой переменной передавался бы вместо "Таблица1[Столбец1]"?
Удалить значения в строке в соседнем столбце от активной ячейки в умной таблице (VBA)
 
Добрый день,
Два вопроса:
1.  В VBA я не разбираюсь совсем, к сожалению. Вся задача решается в Эксель с помощью умных таблиц и формул.
Единственная загвоздка: Есть два списка в умной таблице. Один зависит от другого (сначала выбираешь значение в одном списке, затем - в другом с учетом выбранного значения в первом).
Необходимо удалять выбранные из второго списка значения при изменении значения в первом списке (в конкретной строке). Можно ли это реализовать без VBA? Если "нет", то как это сделать через VBA?
2. Можно ли для ячеек, в которых выбирается второй список сделать ссылку на список не просто, допустим, "B5", а ссылкой на соседнюю ячейку умной таблицы, т.е. второй список --> Таблица1[@Столбец1]?

Заранее благодарю за конструктивные советы.
Изменено: Sviman144 - 26.11.2025 20:53:50
Вывод исходных данных из сводной таблицы с учетом дополнительного контекста (PP)
 
Жаль, я надеялся на чудо. Чуда не произошло. :)
Спасибо! Тему можно считать закрытой.
Вывод исходных данных из сводной таблицы с учетом дополнительного контекста (PP)
 
Добрый день,

Прошу совета, как можно решить следующую задачу:

Есть таблица (см. пример).
Для таблицы определяется мера в PP ("Сумма (тип 1)").

Необходимо, чтобы при двойном нажатии на значение в соответствующем мере поле сводной таблицы получить не список всех "заказов", а только тех, которые участвовали в расчете меры.

Т.е. в примере сейчас нет разницы, если дважды щелкну на числа в мере "Общая сумма" или "Сумма (тип 1)". В обоих случаях я получу "все заказы". А хотелось бы сделать так, чтобы при двойном щелчке на значении каждой меры я получал бы таблицу только со строками, которые участвовали в расчете меры.

Это возможно или нет?

Заранее благодарю за ответы.
Функция SAMEPERIODLASTYEAR + ошибка в "непрерывности" дат в сводной (PP)
 
Ах, вот в чем дело. Понял. Спасибо. :)
Функция SAMEPERIODLASTYEAR + ошибка в "непрерывности" дат в сводной (PP)
 
Ок, я создал новый календарь через конструктор в модели данных и связал его с таблицей Заказы. Ошибка не исчезла. Все также - в одной сводной работает SAMEPERIODLASTYEAR, а в другой - нет.
Функция SAMEPERIODLASTYEAR + ошибка в "непрерывности" дат в сводной (PP)
 
georgem, хм,

У меня в примере, в Модели данных исходные таблицы Заказы и Календарь связаны. При этом таблица Календарь помечена как "таблица дат".
Разве этого недостаточно?
Функция SAMEPERIODLASTYEAR + ошибка в "непрерывности" дат в сводной (PP)
 
Добрый день,

Прошу помочь разобраться, почему в таблице "Сводная 1" мера [Итого PY (fx Sameperiod)]  с функцией SAMEPERIODLASTYEAR работает, а в другой - вызывает "Ошибку вычисления в мере..." по причине отсутствия непрерывности дат.

Получить данные за предыдущий аналогичный период (месяц) получается только через функцию PARALLELPERIOD ([Итого PY (fx Parallelperiod)])

См. пример во вложении.

Заранее благодарю за ответы.
Определить для сумм диапазоны значений (PQ)
 
sotnikov,
Огромное спасибо!
Так и знал, что всё не сложно.

Что-то я совсем отупел. Ничего сам сообразить не могу. :(

Спасибо еще раз.
Вопрос решен. Тему можно считать закрытой.
Определить для сумм диапазоны значений (PQ)
 
Добрый день,

Прошу помочь справиться со следующей задачей в PQ:
Есть таблица заказов, у каждого заказа - своя стоимость.
Есть таблица "диапазонов сумм" (от 100 до 200 тыс. руб., от 1 млн. до 2 млн. руб. и т.д)
Как в PQ определить в столбце с каждым заказов, в какой диапазон значений входит его стоимость (Столбец1 во вложенном примере).

Никак не могу справиться с задачей.
Заранее благодарю за содержательные ответы.
Низкая скорость обработки запроса с регулярными выражениями
 
Andrew Rubanov, спасибо за наводку.
Низкая скорость обработки запроса с регулярными выражениями
 
AlienSx, соглашусь с Вами в определенной степени.

Изначально задача решалась с помощью regexp и всё, действительно, "работало", но медленно.

Вероятно, мой первоначальный пример был некорректен, т.к. не охватывал все возможные "варианты для отсечения". Как результат, предложенные ответы были "высокоскоростные", но не решали задачу полностью в части охвата слов для отсечения.
Дальнейшие запросы от меня были попыткой получить доработанное "скоростное" решение с учетом более "полного охвата".
Согласен, что в данный момент, задача смещается в несколько другом направлении.

Предположу, что увеличение разнообразия количества возможных вариантов слов, которые требуется отсечь, приведут к решению, которое, по скорости не будет особо отличаться от варианта с regexp.

В таком случае, тему можно закрывать.

Благодарю всех за посильную помощь и советы.  
Низкая скорость обработки запроса с регулярными выражениями
 
sotnikov,

"контрагент" я записал для примера. В оригинале слова "контрагент" нет в принципе. Вместо него идут всевозможные названия юрлиц, ИП, физлиц. С и без обозначения формы собственности. Причём, форма собственности может быть как краткой (ООО, ОАО, ИП), так и полной (Общество с ограниченной ответственностью и т.п.)
Низкая скорость обработки запроса с регулярными выражениями
 
sotnikov, добрый вечер,

Есть ли какие-либо еще возможности, на Ваш взгляд, с учетом обновленного "примера" или надежды больше нет? ;)
Низкая скорость обработки запроса с регулярными выражениями
 
sotnikov, спасибо за участие :)

Обновленный пример прилагаю.
Изменено: Sviman144 - 16.08.2025 23:08:05
Низкая скорость обработки запроса с регулярными выражениями
 
sotnikov, спасибо.
Если я правильно понял, то предложенный Вами вариант подходит, когда нужно отделить что-то слева до конца строки.
Видимо, пример, не совсем удачный, т.к. представляет только один вариант "замены".

Вопрос к предложенному Вами варианту: а можно ли каким-то образом в функцию записать разделитель, состоящий из нескольких символов, а не просто по одному вроде "точки" или "скобки"?

+ еще один вопрос: а как быть в случае, когда требуется удалить какую-то часть внутри строки, например, между разделителями, причем, разделители могут отличаться друг от друга?
Низкая скорость обработки запроса с регулярными выражениями
 
Цитата
написал:
Без файла-примера только гадать...
Предположил, что формулы будет достаточно. Файл-пример прилагаю.
Цитата
написал:
И почему бы не делать это с помощью VBA.
Данная обработка - лишь  одна из многих для этой таблицы. Остальные обработки сделаны также в PQ. Итоговый результат передается в PP, а оттуда - в сводные отчеты. Предположил, что делать всю "работу" в чем-то одном будет разумнее. Кроме того, я не знаю VBA.
Общее количество строк в "основной" таблице около 90-100 тыс. шт.
Страницы: 1 2 3 След.
Наверх