Страницы: 1
RSS
Заполнение данных столбца, основываясь на уже имеющихся данных за другие года
 
Прошу совета знатоков.

Имеется таблица с данными договоров контрагентов, за три года. 2017, 2018, 2019 гг. Порядка 90 тыс. записей.
За 2018 и 2019 годы указана территориальная принадлежность контрагента. г. Мегион и(или) п.г.т. Высокий.
В базе, за 2017 год, не по всем контрагентам указана территориальная принадлежность .

Задача - заполнить данные столбца "Населённый пункт" за 2017 год основываясь на данных 2018 и 2019 года. При условиях:
Если по контрагенту в 2018 или 2019 годах указана территориальная принадлежность в единственном числе (г. Мегион или п.г.т. Высокий), населённый пункт верифицируется однозначно,  то соответственно должен быть внесено (за 2017 год) название единственного населенного пункта. Если контрагент получает услугу в двух населённых пунктах, то ячейка, столбца "Населённый пункт" (за 2017 год) должна оставаться пустой (или временного столбца).

В ручную, всю базу "крутить", не вариант...

Возможно кто-то похожую проблему уже решал и соответствующий вопрос на форум задавал. Пока, у самого, тяму не хватает правильными словами вопрос задать в поиске. :)
 
Доброе время суток.
Версия на Power Query
Код
let
    Source = Excel.CurrentWorkbook(){[Name="База"]}[Content],
    #"Removed Columns" = Table.RemoveColumns(Source,{"Год"}),
    #"Filtered Rows" = Table.SelectRows(#"Removed Columns", each ([Населённый пункт] <> null)),
    #"Removed Duplicates" = Table.Distinct(#"Filtered Rows"),
    onlyOne = Table.Group(#"Removed Duplicates", {"Контрагент"}, {"temp", each if Table.RowCount(_) = 1 then _{0}[Населённый пункт] else null}),
    joined = Table.Join(Source, {"Контрагент"}, onlyOne, {"Контрагент"}),
    #"Renamed Columns" = Table.RenameColumns(joined,{{"Населённый пункт", "source"}}),
    calcDistrict = Table.AddColumn(#"Renamed Columns", "Населённый пункт", each if [source] = null then [temp] else [source]),
    #"Removed Columns1" = Table.RemoveColumns(calcDistrict,{"source", "temp"}),
    #"Reordered Columns" = Table.ReorderColumns(#"Removed Columns1",{"Контрагент", "Населённый пункт", "Год"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Reordered Columns",{{"Контрагент", type text}, {"Населённый пункт", type text}, {"Год", Int64.Type}})
in
    #"Changed Type"
 
Добрый день!
Вариант на PQ+дальнейшее заполнение исходной формы с помощью формул
 
Спасибо.
Страницы: 1
Наверх