I don't know if it's my fault but it's doesn't work. my new code is this:
function myFunction() {
let objects = SpreadsheetApp.getActive().getSheetByName("Feuille 7").getRange('D:E').getValues()
let order = SpreadsheetApp.getActive().getSheetByName("Feuille 7").getRange('A:A').getValues().flat()
/* Create a mapping object `orderIndex`:
*/
let orderIndex = {}
order.forEach((value, index) => orderIndex[value] = index);
// Sort
objects.sort((a, b) => orderIndex[a] - orderIndex[b])
// Log
Logger.log("/////////////////////////order////////////////////////////////")
Logger.log(order)
Logger.log("/////////////////////////objects////////////////////////////////")
Logger.log(objects)
SpreadsheetApp.getActive().getSheetByName("Feuille 7").getRange('H:I').setValues(objects)
}
a | array 1D | b | 156 | array 2D | b | 156 | result | ||
---|---|---|---|---|---|---|---|---|---|
b | f | 68 | f | 68 | |||||
c | a | 507 | a | 507 | |||||
d | c | 22 | c | 22 | |||||
e | d | 430 | d | 430 | |||||
f | e | 555 | e | 555 | |||||
g | g | 689 | g | 689 | |||||
h | k | 62 | k | 62 | |||||
i | l | 395 | l | 395 | |||||
j | i | 209 | i | 209 | |||||
k | j | 745 | j | 745 | |||||
l | h | 37 | h | 37 |