При извлечении шаблона из текстового столбца «Столбец1» в другой столбец «Выпуск» в Power BI я получаю сообщение об ошибке, если столбец «Столбец1» имеет пустое или нулевое значение. У меня есть код ниже, который работает для непустых значений, но выдает ошибку, если ячейка «столбец1» пуста или равна нулю. Я хотел бы пропустить пустые и нулевые значения столбцов. Как это исправить?
let
Source = Excel.Workbook(File.Contents("C:\Users\aditya\Documents\Test.xlsx"), null, true),
Sheet1_Sheet = Source{[Item = "Sheet1",Kind = "Sheet"]}[Data],
#"Changed Type" = Table.TransformColumnTypes(Sheet1_Sheet,{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}}),
#"Added Release" = Table.AddColumn(#"Changed Type", "Release", each let a = List.Transform(Text.Split([Column1], ";"), each Text.Trim(_)),
b = List.Select(a, each Text.StartsWith(_,"R") and Value.Is(Value.FromText(Text.At(_, 1)), type number))
in b{0}?)
in
#"Added Release"
Фильтрация невозможна, поскольку существуют другие отчеты, основанные на строках с пустыми значениями.
каждая попытка... 1)) иначе ноль





Сбой в функции Text.Split на шаге #"Added Release".
Преобразуйте значение null в "", чтобы функция Text.Split не вызывала сбоев:
a = List.Transform(Text.Split([Column1]??"", ";"), each Text.Trim(_)),
Этот M-код действительно больше похож на C#, чем я себе представляю! Я не знал nullable<string> ?? работает и в М!
@rachel В М это называется просто оператор Coalesce.
Мне нужно найти это слово. Номенклатура имеет смысл теперь, когда я знаю, что это значит.
Затем вам нужно добавить нулевую проверку:
let
Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content],
FilterList = (splits as list)=>
let
b = List.Select(splits, each Text.StartsWith(_,"R") and Value.Is(Value.FromText(Text.At(_, 1)), type number))
in
if List.Count(b) = 0 then "" else b{0},
AddRelease = Table.AddColumn(Source, "Release", each if [Column1] = null then "" else FilterList(Text.Split([Column1],";")))
in
AddRelease
Вам нужно сохранить строки, в которых столбец Column1 равен нулю? если нет, вы можете просто отфильтровать строки с Column1 = null. support.microsoft.com/en-us/office/…