为什么添加数据时 SORT(UNIQUE()) 排序不正确?或者为什么表格不遵循单元格格式?
Why is SORT(UNIQUE()) not ordering correctly when data is added? OR Why are tables not following cell format?
我正在尝试使用以下公式对 table 中数据中的数字代码列表进行排序:=SORT(UNIQUE(B3:B43)))
。但是,当我将数据添加到 table 时,它排序不正确。
使用示例数据,结果如下:
计算公式的 UNIQUE(B3:B43)
部分得到 =SORT({"1000";"2000";"3000";"4000";"5000";"6000";7000})
。 7000 附近缺少引号让我认为它正在读取后来添加的数据(就像我对 7000 所做的那样,在 table 和公式生成后添加到 table 中)作为 'General' 类型,这意味着它被认为是一个数字,而不是默认为 'Text'。但是,在 table 中,单元格是左对齐的,并且显示类型为 'Text'.
我主要想知道为什么会发生这种情况,但我尝试使用 TEXT()
修复它的尝试非常失败:=SORT(UNIQUE(TEXT(B3:B43, "Text")))
结果如下:
它似乎正在用...替换“e”。
立即编辑:
在写这篇文章的时候,我尝试在 'Text'、'General' 和 'Number' 之间更改 table 列的单元格格式几次。单元格没有立即更新,但转到第一个条目(“1000”)使它成为一个数字。我改回来了,但是 SORT
现在显示数字 1000 和文本“1000”(意味着单元格现在显示 1000、7000、“1000”、“2000”、“3000”、“4000”、 "5000", "6000").
暂时忽略 TEXT()
的怪异之处,我很困惑为什么我的公式拒绝遵循单元格格式。
编辑 2
值得注意的是,在 table 中,除了 7000 和修改后的 1000 之外,所有单元格都有“Number Stored As Text”注释。
截图,here参考
概览
通常,Excel 的 'sort' 按升序排列会将数字格式的单元格置于文本格式的单元格上方(根据 here)。您可以尝试使用常规 'sort' 功能 - 例如在主功能区中,数据 -> 排序 - 其中混乱值 returns 以下内容:
(左对齐为文本格式,即前导单引号,而右对齐为数字格式)。
解决方法
一种解决方法是使用 sortby,并使用值的文本版本:
=SORTBY(B2:B9,"'"&B2:B9)
这将是 'safer' 而不是按数字格式的值排序,例如乘数为 1,以防您的某些单元格同时包含数字 和 文本,例如 A101、B202 等)
备注
RE: unique- 为了简单起见,这可以简单地用作整个方程的包装器(另一种方法是在 sortby 公式中使用 unique 两次,这对于 simplicity/parsimony 显然是一个不太有利的解决方案, 还有问题错误率)..
=UNIQUE(SORTBY(B2:B9,"'"&B2:B9))
我正在尝试使用以下公式对 table 中数据中的数字代码列表进行排序:=SORT(UNIQUE(B3:B43)))
。但是,当我将数据添加到 table 时,它排序不正确。
使用示例数据,结果如下:
计算公式的 UNIQUE(B3:B43)
部分得到 =SORT({"1000";"2000";"3000";"4000";"5000";"6000";7000})
。 7000 附近缺少引号让我认为它正在读取后来添加的数据(就像我对 7000 所做的那样,在 table 和公式生成后添加到 table 中)作为 'General' 类型,这意味着它被认为是一个数字,而不是默认为 'Text'。但是,在 table 中,单元格是左对齐的,并且显示类型为 'Text'.
我主要想知道为什么会发生这种情况,但我尝试使用 TEXT()
修复它的尝试非常失败:=SORT(UNIQUE(TEXT(B3:B43, "Text")))
结果如下:
它似乎正在用...替换“e”。
立即编辑:
在写这篇文章的时候,我尝试在 'Text'、'General' 和 'Number' 之间更改 table 列的单元格格式几次。单元格没有立即更新,但转到第一个条目(“1000”)使它成为一个数字。我改回来了,但是 SORT
现在显示数字 1000 和文本“1000”(意味着单元格现在显示 1000、7000、“1000”、“2000”、“3000”、“4000”、 "5000", "6000").
暂时忽略 TEXT()
的怪异之处,我很困惑为什么我的公式拒绝遵循单元格格式。
编辑 2 值得注意的是,在 table 中,除了 7000 和修改后的 1000 之外,所有单元格都有“Number Stored As Text”注释。
截图,here参考
概览
通常,Excel 的 'sort' 按升序排列会将数字格式的单元格置于文本格式的单元格上方(根据 here)。您可以尝试使用常规 'sort' 功能 - 例如在主功能区中,数据 -> 排序 - 其中混乱值 returns 以下内容:
(左对齐为文本格式,即前导单引号,而右对齐为数字格式)。
解决方法
一种解决方法是使用 sortby,并使用值的文本版本:
=SORTBY(B2:B9,"'"&B2:B9)
这将是 'safer' 而不是按数字格式的值排序,例如乘数为 1,以防您的某些单元格同时包含数字 和 文本,例如 A101、B202 等)
备注
RE: unique- 为了简单起见,这可以简单地用作整个方程的包装器(另一种方法是在 sortby 公式中使用 unique 两次,这对于 simplicity/parsimony 显然是一个不太有利的解决方案, 还有问题错误率)..
=UNIQUE(SORTBY(B2:B9,"'"&B2:B9))