|
Формулы после обновления ListObject
|
|||
---|---|---|---|
#18+
Здравствуйте! Есть ObjectList, который подключен к кубу с помощью MDX-запроса. Фишка в том, что в колонках есть три статичных атрибута и динамическое количество месяцев-атрибутов. Во вложенном файле на листе присутствует ListObject без подключения к кубу, это для примера. Вставляется ListObject на лист, где присутствует 6 месяцев-колонок, и потом макрос добавляет дополнительные вычисляемые поля. В каждую колонку в первую строку (запись, не заголовок) вставляется формула, и далее автоматически протягивается по всей колонке для остальных строк. Этот ListObject можно просто обновлять. Но есть но. Если будет уже не 6 месяцев, а 7, то таблица меняет размерность. 1. Если отсутствует флажок в свойстве внешних данных "сохранять сведения о сортировке/фильтре/формате для столбца", то эта вычисляемые меры будут пустыми: вместо названии столбцов - "Столбец1", "Столбец2" и т. д., Формулы исчезают, строки пустые. 2. Если присутствует этот флажок, то Вычисляемые меры остаются. Но "Вычисляемая Мера1" и "Вычиcляемая Мера2" не охватывают добавленную область для суммирования. Если при последующем обновлении ListObject добавляются новые строки, то формулы в вычисляемых мерах автоматически не добавляются. Почему не добавляются? Как сделать так, чтобы добавлялись? Во вложенном файле присутствует макрос, который добавляет вычисляемые меры и вставляет формулы туда. В этих формулах в режиме R1C1 для указания индекса колонок прописывается разность между индексом колонки (откуда берется) и текущий индекс колонки (который рассчитывается). Не слишком ли я сложно сделал? Следует учесть, что потом возможно придется добавлять новые вычисляемые меры или дорабатывать имеющиеся вычисляемые меры. В общем в таком инструменте будут ежедневно обновляться данные, какие то колонки-месяцы добавляться, а какие то - исчезать. Подскажите, как правильно написать макрос, который обновляет данные и формулы в вычисляемых колонках имели нужный диапазон суммирования? Может быть для данной задачи нужно другое решение? Или нужно при обновлении удалять таблицу полностью и вставлять эти вычисляемые меры? Есть вариант вычисляемые меры прописывать сразу в MDX, только эти формулы будут иногда корректироваться в Excel. Для определения индекса колонки ListObject добавил функцию. Не лишняя ли эта функция или как то можно по другому определить индекс определенного поля? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2017, 13:01 |
|
Формулы после обновления ListObject
|
|||
---|---|---|---|
#18+
Чтобы на Ваши вопросы охотнее откликались, советую Вам ограничиваться одним вопросом за раз, и формулировать его как можно короче и проще. ferzmikk...Почему не добавляются? Как сделать так, чтобы добавлялись? Видимо так работает таблица (ListObject) в Excel. Возможно, поможет Refresh. Можно "дописывать" недостающие формулы или полностью очищать лист перед обновлением таблицы. ferzmikk...Не слишком ли я сложно сделал? На мой взгляд слишком. ferzmikk...Подскажите, как правильно написать макрос, который обновляет данные и формулы в вычисляемых колонках имели нужный диапазон суммирования? Я бы, возможно, воспользовался внутренним запросом SQL. ferzmikk...Может быть для данной задачи нужно другое решение? Или нужно при обновлении удалять таблицу полностью и вставлять эти вычисляемые меры? Да и да, попробовать стоит. ferzmikk...Не лишняя ли эта функция или как то можно по другому определить индекс определенного поля? Функцию можно упросить до одной строчки. Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2017, 16:51 |
|
|
start [/forum/topic.php?fid=61&msg=39488573&tid=2172623]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 131ms |
0 / 0 |