我有一個這樣的公式:=ArrayFormula(sort(INDEX($B$1:$B$10,MATCH(E1,$A$1:$A$10,0))))
in columns A:B:
a 1
b 2
c 3
d 4
e 5
f 6
g 7
h 8
i 9
j 10
和
the data to convert in E:H
a c f e
f a c b
b a c d
我使用上述公式得到以下結果
in columns L:O:
1 3 6 5
6 1 3 2
2 1 3 4
我想要的輸出是這樣的:
1 3 5 6
1 2 3 6
1 2 3 4
我想將數字從小到大排列。我可以使用額外的輔助單元來做到這一點。但如果可能的話,我想在沒有任何額外單元格的情況下獲得相同的結果。我能得到一點幫助嗎?謝謝。
uj5u.com熱心網友回復:
要按行排序,請使用SORT BYROW. 但不幸的是,嵌套陣列結果在BYROW. 所以,我們需要JOIN和SPLIT結果陣列。
=ARRAYFORMULA(SPLIT(BYROW(your_formula,LAMBDA(row,JOIN("??",SORT(TRANSPOSE(row))))),"??"))
uj5u.com熱心網友回復:
這是另一種使用 Makearray 和 Index 來獲取當前行和 Small 來獲取行內最小、下一個最小等的方法:
=ArrayFormula(makearray(3,4,lambda(r,c,small(index(vlookup(E1:H3,A1:B10,2,false),r,0),c))))

或者您可以更改順序(可能會快一點),因為您不需要查看整個陣列,只需查看當前行:
=ArrayFormula(makearray(3,4,lambda(r,c,small(vlookup(index(E1:H3,r,0),A1:B10,2,false),c))))
有趣的是(無論如何對我來說)您可以使用 Map 或 Scan 查詢當前單元格的行號和列號,所以這也是可能的:
=ArrayFormula(map(E1:H3,lambda(cell,small(vlookup(index(E1:H3,row(cell),0),A1:B10,2,false),column(cell)-column(E:E) 1))))
感謝@JvdV 在 Excel 中顯示的
或者如果你想要數字:
=INDEX(IFNA(VLOOKUP(TRIM(SPLIT(FLATTEN(QUERY(QUERY(QUERY(SPLIT(FLATTEN(E1:H3&"×?"&ROW(E1:H3)), "?"),
"select max(Col1) group by Col1 pivot Col2"), "offset 1", 0),,9^9)), "×")), A:B, 2, 0)))

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/514763.html
標籤:排序谷歌表格分裂查找展平
上一篇:用數字python字典排序字串
