У меня есть набор данных по программам и колледжам, с которыми я работаю, но в последние годы названия нескольких колледжей изменились.
+------+------------------------------+------------------+
| 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. После обновления ссылок в предоставленном коде, похоже, проблема решена!
Вы говорите «несколько колледжей» - ваш пример относится к ОДНОМУ колледжу, который изменил название? Ваши «несколько» колледжей в одной таблице? Если да, то как определить, какие «старые» и «новые» названия колледжей связаны?
@ Только последние записи имеют название последнего колледжа. К сожалению, между старым и новым названиями колледжей нет никакой связи, кроме племенных знаний.
@AlexisOlson К сожалению, я не могу использовать значения Replace. Например, колледж искусств и наук был разделен на два колледжа: гуманитарно-гуманитарный и научно-технический. Последнее название колледжа в программе - это самый простой способ, который я могу найти для замены.
Не имея отношения, как можно автоматизировать ссылку?
@Olly, Название программы / Код совпадает за все 3 года. Когда я сказал, что нет родственников, я имел в виду, что у нас нет справочной таблицы, в которой говорится: «Эта программа была в этом колледже, теперь она здесь».
Итак, в вашем примере «BA Communication» - это ключ, который связывает три строки? Это значение не применимо ни к какому другому колледжу?
правильно, @Olly.
Вам нужно ключевое поле, которое отличает один колледж от другого. Если это поле 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! Я думаю, что это помогло, сейчас я работаю над его проверкой.
Вы пробовали использовать кнопку «Заменить значения» на вкладке «Главная» редактора запросов (раздел «Преобразование»)?