Table.Column 值为 (-4.80, 0.70) 用作列表时抛出错误

Table.Column with value (-4.80, 0.70) throws error when using as List

基于这个答案我能够清理大量数据。

但现在我必须修复一个包含值为 (-4.80, 0.70) 的单元格的列,这 returns 在我的函数中调用列函数时出错

对我来说,如果 (-4.80, 0.70) 被读取为包含两列的列表,则错误消息听起来像是 - 并引发错误 :-/

这是函数。 我注释掉了所有内容 - 并添加了前两行来演示问题。

//fnFixMultipleValuesInCell
//
let
    fnFixMultipleValuesInCell = (Source as table, columnName as text, columnIndex as number) as table =>
    let

        listColumn = Table.Column(Source, columnName), //same result for  listColumn = Source[Column2]
        Result = Table.FromList(listColumn)   /*,
        

        addIndex = Table.AddIndexColumn(Source, "Index",0),
        replaceNull = Table.ReplaceValue(addIndex,null,"",Replacer.ReplaceValue,{columnName}),

        splitMergedCells = List.Select(List.Combine(List.Transform( Table.Column(replaceNull, columnName), each Text.Split(_, "#(lf)"))), each Text.Length(_) > 0 ),
        
        insertColumn = Table.AddColumn(replaceNull, "new", each splitMergedCells{[Index]}) ,

        removeOldColumn = Table.RemoveColumns(insertColumn,{columnName, "Index"}),
        renameColumn = Table.RenameColumns(removeOldColumn,{{"new",columnName}}),
        ColumnNames = Table.ColumnNames(renameColumn),
        newColumnNamesList = List.RemoveLastN( List.Combine({List.FirstN(ColumnNames, columnIndex-2), List.LastN(ColumnNames,1), List.LastN(ColumnNames, List.Count(ColumnNames)-columnIndex+1 ) } ),1),
        Result = Table.ReorderColumns(renameColumn, newColumnNamesList) */

    in
        Result
in fnFixMultipleValuesInCell

我的代码有什么问题吗? 我能做些什么,将此函数用于任何类型的列 - 无论数据如何?

你是正确的,它将逗号解释为表示一个额外的列。

如果您查看 Table.FromList 的文档,您将看到以下内容:

Table.FromList(list as list, optional splitter as nullable function, optional columns as any, optional default as any, optional extraValues as nullable number) as table

Converts a list, list into a table by applying the optional splitting function, splitter, to each item in the list. By default, the list is assumed to be a list of text values that is split by commas. Optional columns may be the number of columns, a list of columns or a TableType. Optional default and extraValues may also be specified.

要解决此问题,请将 Table.FromList(listColumn) 更改为

Table.FromList(listColumn, Splitter.SplitByNothing())