我已经为此工作了几个月。我只是无法获得natural
(真实的字母数字)结果。令我震惊的是我无法获得RPG
自1992年以来的成就EBCDIC
。
我正在寻找SQL,VBS或简单的excel或access中的任何解决方案。这是我的数据:
299-8,
3410L-87,
3410L-88,
420-A20,
420-A21,
420A-40,
4357-3,
AN3H10A,
K117GM-8,
K129-1,
K129-15,
K271B-200L,
K271B-38L,
K271D-200EL,
KD1051,
KD1062,
KD1092,
KD1108,
KD1108,
M8000-3,
MS24665-1,
SK271B-200L,
SAYA4008
我要查找的顺序是真实的字母数字顺序,如下所示:
AN3H10A,
KD1051,
KD1062,
KD1092,
KD1108,
KD1108,
K117GM-8,
K129-1,
K129-15,
MS24665-1,
M8000-3,
SAYA4008,
SK271B-200L
库存为7800条记录,因此我在处理能力方面也遇到了一些问题。
任何帮助,将不胜感激。
杰夫
在本机Excel中,您可以添加多个排序列以返回每个字符的ASCII代码,但是如果字符是数字,则在代码中添加一个大数字(例如1000)。
然后对每个帮助器列进行排序,包括表中的第一列,但不进行排序。
公式:
=IFERROR(CODE(MID($A1,COLUMNS($A:A),1))+AND(CODE(MID($A1,COLUMNS($A:A),1))>=48,CODE(MID($A1,COLUMNS($A:A),1))<=57)*1000,"")
排序对话框:
结果:
您可以使用VBA以及可能的SQL来实现类似的算法。我不了解VBS或Access。
问题内容: 我有一些文件需要按名称排序,但是不幸的是,我无法使用常规排序,因为我也想对字符串中的数字进行排序,因此我进行了一些研究,发现所寻找的东西叫做。 我尝试了此处给出的解决方案,并且效果很好。 但是,对于诸如和这样的字符串,该字符串会导致特定的自然键算法失败,因为它仅与第一个整数匹配,在这种情况下,该整数将是和,因此它放弃了排序。因此,我认为可能会帮助匹配字符串中的所有数字并将它们分组在一起
问题内容: 我有一个熊猫DataFrame,它的索引要自然排序。Natsort似乎不起作用。在构建DataFrame之前对索引进行排序似乎无济于事,因为我对DataFrame所做的操作似乎使过程中的排序变得混乱。关于如何自然使用索引的任何想法? 问题答案: 如果要对df进行排序,只需对索引或数据进行排序,然后直接将其分配给df的索引,而不是尝试将df作为arg传递,因为这会产生一个空列表: 请注意
问题内容: 请查看下面的代码: 有人可以解释一下为什么输出是 代替 ? 因为在API中它表示优先级队列的元素是根据其自然顺序进行排序的。 问题答案: PriorityQueue基于优先级堆。尽管未对元素进行排序,但此数据结构允许非常快地检索最小元素。将元素添加到PriorityQueue的速度比向基于树的TreeSet快。由于未对元素进行排序,因此如API所述,迭代器“不会以任何特定顺序返回元素”
问题内容: 有没有一种优雅的方法可以在MySQL数据库中进行高性能的自然排序? 例如,如果我有此数据集: 最终幻想 最终幻想4 最终幻想10 最终幻想12 最终幻想12:爱情之链 最终幻想冒险 最终幻想起源 最终幻想战术 除了将游戏名称拆分成各个组成部分外,其他任何 优雅的 解决方案 标题 :《最终幻想》 编号 :“ 12” 副标题 :“ Promathia的链条” 确保它们以正确的顺序出现?(1
来自Javadoc的: 注:如果对象用作中的键或中的元素,则应小心操作,因为的自然顺序与等于的顺序不一致。 例如,如果您创建一个并向其中添加和,则该集合将包含两个元素(因为值具有不同的比例,因此根据和,它们是不相等的),但是,如果对
问题内容: 我碰巧遇到了许多语句,例如当需要自然排序并同时对数组或集合和比较器进行排序以进行总排序时,使用了compare的语句。 您可能听到的版本可能相同,也可能相同,但含义相同,但最终还是两者(比较器和类似接口)之间的区别因素之一。 但是,我找不到任何地方的两种订购类型之间的区别。如果有人可以用一个很好的例子来解释它,我将不胜感激:) 问题答案: 总排序意味着可以将所有值与所有其他值进行比较。