Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Добавление данных в пустой столбец PowerQuery, Добавление данных в пустой столбец PowerQuery
 
Уважаемые знатоки, очень прошу вашей помощи. Есть три "умные" таблицы.
"Данные" - содержит описание электрических приборов, где явно указан тип прибора и его позиция.
"Карта_Контактов" - У каждого Типа прибора есть свой набор контактов, они постоянны. (Это своего рода БД, и по идее будет в другом файле, но это  сейчас не важно)
"Контакты_в_Проекте" - таблица, полученная путём объединения первых двух таблиц через PowerQuery (далее PQ) по полю Тип. Таким образом, для каждого элемента (для каждой Позиции) в проекте я получил список его контактов. Проблема заключается в поле провод. Изначально это поле пустое. Во время работы с проектом туда вручную будут добавляться номера проводов. При обновлении таблицы столбец Провод обнуляется. Можно ли как-то сделать, чтобы этот столбец заносился в запрос "Контакты_в_Проекте" перед его обновлением?

Так же я пробовал не добавлять столбец Провод в таблицу "Карта_Контактов". А добавлял этот столбец сразу к таблице "Контакты_в_Проекте", но не через PQ, а "вручную". Таким образом этот столбец не обнулялся. Но при добавление нового элемента в таблицу "Данные", или изменение типа существующего элемента, "провода", забитые вручную не соответствовали своим позициям. Можно ли как-то выйти из этой ситуации?
 
Появилась идея. Отловить макросом VBA событие обновление. Перед самим обновлением скопировать данные из столбца Провод, и затем макросом обновить запрос, заменив в запросе данные на скопированные.
Может ли такой трюк прокатить?
 
Добрый день!
в столбец E введите какие-либо данные, после чего обновите запросы (в соседней таблицу появятся введенные вами данные)
 
Не сработало, если второй раз обновить данные, то столбцы обнуляются
 
вам так надо?
 
Anton555, Благодарю за ваш отклик на мою проблему, но это тоже не совсем то. Когда у позиции меняю тип в таблице данные (Тип 1 на Тип 4) на тип у которого больше контактов, чес было изначально, то ваше предложение не сработало.

Для себя реши проблему следующим образом. Убрал Столбец "Провод" из таблицы "Карта_Контактов". Создал новую таблицу с полями "Позиция", "Контакт", "Провод" (эта таблица будет на скрытом листе). Объединил запросы "Контакты_в_Проекте" и новую таблицу по полям "Позиция", "Контакт", таким образом, получил таблицу "Контакты_в_Проекте" со столбцом Провод, который ссылается на новую таблицу. Теперь заполняю провода вручную и запускаю макрос. Макрос перед обновлением скопирует столбцы "Позиция", "Контакт", "Провод"  из таблицы "Контакты_в_Проекте" и далее запустит обновление, таким образом, всё, что я забил руками в столбец провод будет внедрятся в таблицу "Контакты_в_Проекте", согласно позициям
 
Цитата
Machestro написал:
Для себя решил
нам покажете
 
Цитата
artyrH написал:
нам покажете
Обязательно, только приведу всё это к нормальному виду
 
Вот и обещанное решение. Важно отметить, что теперь нельзя нажимать кнопку "Обновить всё!", которая расположена на ленте, а то всё поломается.
Ещё один нюанс, в макросе не реализованы разные проверки на наличие нужной таблицы, соответствие полей и т.д. Просто показан принцип работы
 
спасибо
 
вы просили
Цитата
Machestro написал:
Проблема заключается в поле провод. Изначально это поле пустое. Во время работы с проектом туда вручную будут добавляться номера проводов. При обновлении таблицы столбец Провод обнуляется. Можно ли как-то сделать, чтобы этот столбец заносился в запрос "Контакты_в_Проекте" перед его обновлением?
вам предоставили решение
теперь вы пишите
Цитата
Machestro написал:
Когда у позиции меняю тип в таблице данные (Тип 1 на Тип 4) на тип у которого больше контактов, чес было изначально, то ваше предложение не сработало
это я вообще не понял, да и в первом вопросе этого не было
я уверен, что если бы вы написали нормальные условия, все можно выполнить силами PQ без доп макросов. я до сих пор не могу понять что вам надо, нашли решение, ок, удачи вам.
Страницы: 1
Читают тему (гостей: 1)
Наверх