Recherche de la position d'une chaîne de caractère dans un tableau

Bonjour,

Dans le code ci-dessous, normalement console.log(c) est censé m'affiche 31, qui est la position de la valeur "Evènement" sur la première ligne de la feuille sheet 1 de mon classeur, (Ligne1, Colonne 31). Mais lorsque je débogue, C affiche plutôt la valeur -1 (valeur "Evènement" non trouvée dans monTableau).

Quelqu'un aurait-il une idée de comment écrire le code svp ?

var sheet1 = SpreadsheetApp.getActive().getSheetByName("sheet1");
var a = sheet1.getLastRow();
var b = sheet1.getLastColumn();
const monTableau =[sheet1.getRange(1,1,1,b).getValues()];
var c = monTableau.indexOf('Evènement');
console.log(c);

En vous remerciant par avance.

Bonjour,

C'est normal car tu as mis le tableau retourné par getValues dans un nouveau tableau (au lieu de faire l'inverse) :

const monTableau =[sheet1.getRange(1,1,1,b).getValues()];
var c = monTableau.indexOf('Evènement');

Dans ce cas, le seul élément du tableau monTableau est le tableau entier retourné par getValues.

Pour mieux comprendre pourquoi ça ne fonctionne pas dans un cas comme ça, fais un console.log de monTableau et tu verras les différents tableaux imbriqués

Voici une solution :

function test() {
  const sheet1 = SpreadsheetApp.getActive().getSheetByName('sheet1');
  //const a = sheet1.getLastRow();
  const b = sheet1.getLastColumn();
  const monTableau = sheet1.getRange(1, 1, 1, b).getValues()[0];
  const c = monTableau.indexOf('Evènement');
  console.log(c);
}

Ah je comprend mieux.

ça marche, merci beaucoup

Rechercher des sujets similaires à "recherche position chaine caractere tableau"