Another solution: replacement of the funcitons for each column, you can add all of them in one M query:
let
Source = OData.Feed(ProjectOnlineUrl),
Projects_table = Source{[Name="Projects",Signature="table"]}[Data],
#"Добавлен пользовательский объект" = Table.AddColumn(Projects_table, "Cost at Completion", each [ProjectActual]+[ProjectForecast]),
#"Измененный тип1" = Table.TransformColumnTypes(#"Добавлен пользовательский объект",{{"Cost at Completion", Int64.Type}}),
#"Добавлен пользовательский объект1" = Table.AddColumn(#"Измененный тип1", "Variance Status", each [ProjectBudget]-[Cost at Completion]),
#"Измененный тип2" = Table.TransformColumnTypes(#"Добавлен пользовательский объект1",{{"Variance Status", Int64.Type}, {"ProjectBudget", Int64.Type}, {"ProjectActual", Int64.Type}, {"ProjectForecast", Int64.Type}}),
#"Измененный тип" = Table.TransformColumnTypes(#"Измененный тип2",{{"Cost at Completion", Int64.Type}}),
#"Renamed Columns" = Table.RenameColumns(#"Измененный тип",{{"ProjectBudget", "Budget"}, {"ProjectActual", "Actual"}, {"ProjectForecast", "Forecast"}}),
#"Filtered Rows" = Table.SelectRows(#"Renamed Columns", each ([ProjectIdentifier] <> null)),
#"Added Test_Column" = Table.AddColumn(#"Filtered Rows","Test",each OData.Feed("https://****.sharepoint.com/sites/pwa/_api/ProjectServer/Projects('"&[ProjectId]&"')/IncludeCustomFields?$Select=Id,Name,Custom_888a2aeba276e61180cf00155de4ce03")),
#"Expanded Test" = Table.ExpandRecordColumn(#"Added Test_Column", "Test", {"Custom_888a2aeba276e61180cf00155de4ce03"}, {"Custom_888a2aeba276e61180cf00155de4ce03"})
in
#"Expanded Test"