Доброго времени суток. Прошу вас помочь, как сделать экспорт данных из Эксель в XML ? Суть истории следующая:
Есть xml-файл с заданной структурой (формализованное сообщение), в который должны попадать данные, которые ведутся в эксель-таблице. Это сообщение потом используется сторонней программой. Под него, я сделал структуру полей т.к. структура сообщения в общих чертах состоит из 3 блоков: в первом указываются значения о том, кто создает сообщение, во втором блоке указываются данные о номере сообщения, датах совершения, операции, сумма сделки и данные об участниках операции, в третьем блоке указываться должен перечень документов сделки (договор, товарные накладные, они должны быть в одной умной таблице, чтобы этот перечень в xml был корректно отражен.
Первые два блока организованы в виде рядов ячеек с имеющимися в них значениями, а третий формируется, как умная таблица, формируемая из сводной при помощи Power query, которую справа я растянул и дополнил столбцами, в которых прописаны формулы, преобразующие под заданный формат данные из левой половины.
Сводная таблица тут мне нужна лишь затем, что она в одно поле сводит № договора и № товарных накладных, т.к. они в первичной таблице с данными расположены в разных столбцах, а надо вместе и в строках, плюс самостоятельное изменение таблицы согласно содержанию в ней данных.
С созданием/загрузкой карты при помощи xsd-схемы и сопоставлением полей для первых двух блоков проблем не возникает, они все успешно сопоставляются и выгружаются в файл, но для третьего блока как только нужно назначить сопоставление полей схеме xsd, эксель не даёт это сделать и пишет ошибку "Невозможно выполнить операцию, поскольку её результат будет перекрывать внешний диапазон или сводную таблицу". Но снизу и справа от этой таблицы пусто и ничего не было.
Если я то, что получил при помощи PQ скопирую в другое место на листе и сделаю тоже умной таблицей, то сопоставление по её столбцам происходит по схеме xsd без вопросов, но это не тот результат, какой мне нужен. Каждый день обновлять и копировать полученный список и подставлять в поля простой таблицы никто не будет...
Задача стоит следующая - сделать так, чтобы перечень документов, который требуется сопоставить для выгрузки в XML по схеме, автоматически изменялся, вот для чего и создавался запрос через PQ на сводную таблицу, т.к. только при помощи нее собирается перечень нужного вида. При выборе другого №ФЭС сводная таблица обновляется, изменяется информация в сводной таблице, изменяется и её размер, происходит обновление запроса и содержимое умной таблицы через PQ само собой изменяется.
Т.к. эксель выдал ошибку, тогда я пристроил к таблице 1 вторую умную таблицу, куда данные перетаскиваются формулами, но связать её с той, что слева, так, чтоб она под неё изменялась, удалялись лишние строки или добавлялись, не удается. Первая обновляется данными и изменяется в размере, а вторая нет и формулы в ней не тянутся вслед за увеличением строк.
Пробовал тоже самое на разных листах - результат тот же - ошибка "Невозможно выполнить операцию, поскольку её результат будет перекрывать внешний диапазон или сводную таблицу".
Во вложении файл с моей конструкцией. и вопросы:
- Может ли кто-нибудь помочь создать код на vba для обработки табл.2, чтобы синхронизировать её с табл.1 или вообще на выгрузку данных с конкретных полей целиком в XML , минуя эти карты, сопоставления и прочее?
- почему на таблицу-результат обработки PQ эксель выдает такую ошибку при сопоставлении полей XML карте и не дает использовать сформированные таким образом умные таблицы для сопоставления с данными карты? Можно ли как-то это обойти?
Есть xml-файл с заданной структурой (формализованное сообщение), в который должны попадать данные, которые ведутся в эксель-таблице. Это сообщение потом используется сторонней программой. Под него, я сделал структуру полей т.к. структура сообщения в общих чертах состоит из 3 блоков: в первом указываются значения о том, кто создает сообщение, во втором блоке указываются данные о номере сообщения, датах совершения, операции, сумма сделки и данные об участниках операции, в третьем блоке указываться должен перечень документов сделки (договор, товарные накладные, они должны быть в одной умной таблице, чтобы этот перечень в xml был корректно отражен.
Первые два блока организованы в виде рядов ячеек с имеющимися в них значениями, а третий формируется, как умная таблица, формируемая из сводной при помощи Power query, которую справа я растянул и дополнил столбцами, в которых прописаны формулы, преобразующие под заданный формат данные из левой половины.
Сводная таблица тут мне нужна лишь затем, что она в одно поле сводит № договора и № товарных накладных, т.к. они в первичной таблице с данными расположены в разных столбцах, а надо вместе и в строках, плюс самостоятельное изменение таблицы согласно содержанию в ней данных.
С созданием/загрузкой карты при помощи xsd-схемы и сопоставлением полей для первых двух блоков проблем не возникает, они все успешно сопоставляются и выгружаются в файл, но для третьего блока как только нужно назначить сопоставление полей схеме xsd, эксель не даёт это сделать и пишет ошибку "Невозможно выполнить операцию, поскольку её результат будет перекрывать внешний диапазон или сводную таблицу". Но снизу и справа от этой таблицы пусто и ничего не было.
Если я то, что получил при помощи PQ скопирую в другое место на листе и сделаю тоже умной таблицей, то сопоставление по её столбцам происходит по схеме xsd без вопросов, но это не тот результат, какой мне нужен. Каждый день обновлять и копировать полученный список и подставлять в поля простой таблицы никто не будет...
Задача стоит следующая - сделать так, чтобы перечень документов, который требуется сопоставить для выгрузки в XML по схеме, автоматически изменялся, вот для чего и создавался запрос через PQ на сводную таблицу, т.к. только при помощи нее собирается перечень нужного вида. При выборе другого №ФЭС сводная таблица обновляется, изменяется информация в сводной таблице, изменяется и её размер, происходит обновление запроса и содержимое умной таблицы через PQ само собой изменяется.
Т.к. эксель выдал ошибку, тогда я пристроил к таблице 1 вторую умную таблицу, куда данные перетаскиваются формулами, но связать её с той, что слева, так, чтоб она под неё изменялась, удалялись лишние строки или добавлялись, не удается. Первая обновляется данными и изменяется в размере, а вторая нет и формулы в ней не тянутся вслед за увеличением строк.
Пробовал тоже самое на разных листах - результат тот же - ошибка "Невозможно выполнить операцию, поскольку её результат будет перекрывать внешний диапазон или сводную таблицу".
Во вложении файл с моей конструкцией. и вопросы:
- Может ли кто-нибудь помочь создать код на vba для обработки табл.2, чтобы синхронизировать её с табл.1 или вообще на выгрузку данных с конкретных полей целиком в XML , минуя эти карты, сопоставления и прочее?
- почему на таблицу-результат обработки PQ эксель выдает такую ошибку при сопоставлении полей XML карте и не дает использовать сформированные таким образом умные таблицы для сопоставления с данными карты? Можно ли как-то это обойти?