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 |