Power Query: заменить значение на основе другого столбца

У меня есть набор данных по программам и колледжам, с которыми я работаю, но в последние годы названия нескольких колледжей изменились.

+------+------------------------------+------------------+
| Year |           College            |     Program      |
+------+------------------------------+------------------+
| 2018 | College of Arts & Humanities | BA Communication |
| 2017 | College of Arts & Humanities | BA Communication |
| 2016 | College of Arts & Sciences   | BA Communication |
+------+------------------------------+------------------+

Я хочу заменить название колледжа в каждом упоминании программы названием колледжа за последний год. В моем примере выше 2016 год изменится только на «Колледж искусств и гуманитарных наук».

Я все еще новичок в запросах мощности и тому подобном, поэтому я не имею ни малейшего понятия, как с этим справиться ...

Я могу создать новый столбец с информацией или заменить текст в столбце, мне просто нужен способ, который не является ручным.

Кто-нибудь еще сталкивался с этим? Или есть идеи, как к этому подойти? Любой совет будет очень признателен. :)


Обновлять: Заменить значения не сработают, так как некоторые колледжи были разделены, и нет простого перехода A-B.

Когда я говорю «несколько» колледжей, 1 колледж разделился на два, а 2 других были переименованы. Мы говорим о нескольких тысячах записей в одном наборе данных, всех разных колледжах. У меня нет справочной таблицы для изменения имени. Я работал над этим набором данных в течение 2 дней, и самая простая логика, которую я могу найти, - это заменить название колледжа в каждой программе на название колледжа за последний год.


Окончательное обновление: Спасибо @ user9264230. После обновления ссылок в предоставленном коде, похоже, проблема решена!

Вы пробовали использовать кнопку «Заменить значения» на вкладке «Главная» редактора запросов (раздел «Преобразование»)?

Alexis Olson 26.09.2018 23:40

Вы говорите «несколько колледжей» - ваш пример относится к ОДНОМУ колледжу, который изменил название? Ваши «несколько» колледжей в одной таблице? Если да, то как определить, какие «старые» и «новые» названия колледжей связаны?

Olly 27.09.2018 10:38

@ Только последние записи имеют название последнего колледжа. К сожалению, между старым и новым названиями колледжей нет никакой связи, кроме племенных знаний.

Riley Mashburn 27.09.2018 15:10

@AlexisOlson К сожалению, я не могу использовать значения Replace. Например, колледж искусств и наук был разделен на два колледжа: гуманитарно-гуманитарный и научно-технический. Последнее название колледжа в программе - это самый простой способ, который я могу найти для замены.

Riley Mashburn 27.09.2018 15:12

Не имея отношения, как можно автоматизировать ссылку?

Olly 27.09.2018 15:15

@Olly, Название программы / Код совпадает за все 3 года. Когда я сказал, что нет родственников, я имел в виду, что у нас нет справочной таблицы, в которой говорится: «Эта программа была в этом колледже, теперь она здесь».

Riley Mashburn 27.09.2018 15:21

Итак, в вашем примере «BA Communication» - это ключ, который связывает три строки? Это значение не применимо ни к какому другому колледжу?

Olly 27.09.2018 15:25

правильно, @Olly.

Riley Mashburn 27.09.2018 16:51
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
8
1 545
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно ключевое поле, которое отличает один колледж от другого. Если это поле Program, используйте код

let Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content],
#"Grouped Rows" = Table.Group(Source, {"Program"}, {{"Year", each List.Max([Year]), type number}}),
#"Merged Queries" = Table.NestedJoin(#"Grouped Rows",{"Program", "Year"},Source,{"Program", "Year"},"Source",JoinKind.LeftOuter),
List = Table.ExpandTableColumn(#"Merged Queries", "Source", {"College"}, {"College"}),
#"Merged Queries1" = Table.NestedJoin(Source,{"Program"},List,{"Program"},"List",JoinKind.LeftOuter),
#"Expanded Table2" = Table.ExpandTableColumn(#"Merged Queries1", "List", {"College"}, {"College.1"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Table2",{"College"})
in #"Removed Columns"

В противном случае замените все экземпляры Program именем желаемого поля, например Key

Спасибо @ user9264230! Я думаю, что это помогло, сейчас я работаю над его проверкой.

Riley Mashburn 27.09.2018 17:13

Другие вопросы по теме