Value был не числовым?
простой пример: имеем "Вася" Name, и 20 Value. Делаем Record.FieldOrDefault(dic, "Вася", 1) * 5
Первый раз такое слышу - просто не за компом щас - не проверить
т.е. Record.FromTable не требует ничего, но работать с тем, что она выдаёт иначе у меня не получилось
если у вас у словаря значения ключей должны быть числовыми, то есть смысл менять тип на числовой или на его подтип.
хотелось универсальности)
Но значения словаря далеко не всегда должны быть числовыми. Так что универсальнее будет передавать третим аргументом тип значений, к которому надо привести (как один из вариантов)
да, только про это подумал. это точно лучше чем try Number.From )
(tbl as text, optional nodistinct as any, optional newType as nullable type) => let src = Excel.CurrentWorkbook(){[Name=tbl]}[Content], nms = Table.ColumnNames(src), tp = Table.TransformColumnTypes(src, {{nms{0}, Text.Type}, {nms{1}, newType ?? Any.Type }}), // если уж очень надо uniq = if nodistinct is null then Table.Distinct(tp, nms{0}) else tp, todic = Record.FromTable(Table.RenameColumns(uniq, List.Zip({nms, {"Name", "Value"}}))) in todic
по-мелочи, мне кажется еще надо uniq и tp переставить местами, но тут хз, как стриминг сработает, может и так сойдёт
вопрос, "as nullable type" какую нагрузку несёт?
Допустимый тип аргумента. null или type.
Обсуждают сегодня