У меня есть набор данных, который экспортируется с одним столбцом, включая идентификаторы персонала и идентификаторы должностей.
Я хочу использовать Power Query, отдельный Person_ID в один столбец и Job_ID в другой столбец. Люди связаны с работой, которая кажется ближайшей над ними. Идентификаторы работы представляют собой текстовую строку из 6 символов, идентификаторы сотрудников — 9 символов. Один и тот же Job_ID может применяться к нескольким людям, но Person_ID уникален (только одна работа на человека, несколько человек для некоторых вакансий).
Пример структуры данных:
Надеюсь, у кого-то что-то есть!
Что вы исследовали / пробовали до сих пор, и почему это не работает?
Я искал способы использовать Text.Length и условные операторы, чтобы определить, какое число является типом для начала, но у меня возникли проблемы с синтаксисом. Затем мне нужно что-то вроде смещения, чтобы проверить значения в ячейках над каждой ссылочной ячейкой (идентификатор человека), чтобы найти ближайший идентификатор работы. Эти значения должны быть скопированы или повернуты в новый столбец. Последним шагом будет фильтрация справочного столбца, чтобы это был просто идентификатор человека, а новый столбец - просто идентификатор работы. Бьюсь об заклад, есть более простой способ. Я мог бы, вероятно, сделать макрос VBA для этого, но я бы предпочел использовать power query/M, так как это то, что получает данные.
Шаг за шагом
Выделите входные данные
Данные... Из таблицы/диапазона... не проверяйте [] моя таблица имеет заголовки
Добавить столбец...Пользовательский столбец..., используя имя столбца Пользовательский, с формулой
Text.Length([Column1])
Добавить столбец...Пользовательский столбец..., используя имя столбца Custom.1, с формулой
if [Custom]=6 then [Column1] else null
Нажмите на столбец Custom.1, щелкните правой кнопкой мыши и выполните fill...down...
Используйте стрелку рядом со столбцом «Пользовательский» и снимите флажок [] 6, оставив только [x] 11.
Щелкните столбец «Пользовательский», щелкните правой кнопкой мыши и выберите «Удалить столбцы».
файл... закрыть и загрузить
Произведенный код:
let Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content],
#"Added Custom" = Table.AddColumn(Source, "Custom", each Text.Length([Column1])),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Custom.1", each if [Custom]=6 then [Column1] else null),
#"Filled Down" = Table.FillDown(#"Added Custom1",{"Custom.1"}),
#"Filtered Rows" = Table.SelectRows(#"Filled Down", each ([Custom] =11)),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Custom"})
in #"Removed Columns"
Только что проверил, отличное решение! Это сэкономит мне кучу времени на работе. Большое спасибо!
Я слишком новичок, чтобы добавлять изображения, может это поможет... photos.app.goo.gl/MLcjAsJLhwT8XCaaA