我试图按照部件号按字母顺序对库存清单进行排序,以便在数字之前对字母进行排序。这可以在Excel(或Calc)中使用吗?
例如,给定列表
Foo = EDATE(Dates[EventDate], 10)
排序列表应为
var searchValue = $('#myTextbox').val();
function checkSearchChanged() {
var currentValue = $('#myTextbox').val();
if ((currentValue) && currentValue != searchValue && currentValue != '') {
searchValue = $('#myTextbox').val();
console.log(searchValue)
}
setTimeout(checkSearchChanged, 0.1);
}
$(function () {
setTimeout(checkSearchChanged, 0.1);
});
目前,我只能在字母前对数字进行排序,因此列表看起来像
0004006A
AN42B10
0400975
1968
MS21042L3
0004006
AN414A
J961393
AN4H16A
SR22SCW20
STD1410
4914
15KE51CA
21
560
(注意esp AN4H16A 在 AN42B10 & AN414A 之后,而不是之前。)
我尝试添加自定义列表(A,B,C,...,7,8,9),但按列表排序的结果相同。
答案 0 :(得分:1)
以下解决方案适用于LO Calc。如果数据在A1到A15中,则在B1中输入以下公式。
=IF(LEN($A1)<COLUMN()-1;-1;IF(CODE(MID($A1;COLUMN()-1;1))<=CODE(9);MID($A1;COLUMN()-1;1)+27;CODE(MID($A1;COLUMN()-1;1))-CODE("A")))
这将获取A1中字符串的第一个字符,然后确定该字符的排序值,“A”变为0(排序顺序中的第一个),“9”变为36(排序顺序中的最后一个)。
现在,拖动并填充到J15以获取字符串中的其余字符,然后向下移动到J15以获取其他字符串。
然后,转到数据 - &gt;排序。排序键1是B列,排序键2是C列,依此类推.J。
或者,选择A1到A15,然后运行以下Python macro。
import uno
def custom_sort():
oSelect = XSCRIPTCONTEXT.getDocument().getCurrentSelection()
rowTuples = oSelect.getDataArray()
rowTuples = sorted(rowTuples, key=letters_then_numbers)
oSelect.setDataArray(rowTuples)
def letters_then_numbers(rowTuple):
strval = str(rowTuple[0])
sresult = ""
for c in strval:
if c in (str(i) for i in range(10)): # if character is a number
c = chr(ord('z') + int(c)) # then order it after z
sresult += c
return sresult
g_exportedScripts = custom_sort,