Supprimer la ligne dans la feuille de calcul Google d'une plage spécifique en fonction des valeurs d'une plage de cellules spécifique

Bogdan Moineagu

J'ai besoin d'un peu d'aide avec mon scénario.

Tout d'abord, voici un lien vers le ss: https://docs.google.com/spreadsheets/d/1TgG64irjoxkV9wKlT5bEnaNEWlGyOlNxVoLxOmQZ2BA/edit?usp=sharing

Je souhaite supprimer des lignes de la feuille "Équipe 1" (plage: A15: A41), en fonction des valeurs de la feuille "Vue d'ensemble" (plage: C4: C12).

Fondamentalement, si une valeur de C4: C12 est trouvée dans A15: A41, la ligne où se trouve doit être supprimée.

Ex. pour mon ss: C4 = 3, cela signifie que dans la feuille «Team 1», la ligne 17 doit être supprimée.

Mon script jusqu'à présent:

function deleteRows() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();

  var s1 = ss.getSheetByName('Overview');

  var s2 = ss.getSheetByName('Team 1');

  var r1 = s1.getRange("C4");

  var v1 = r1.getValue();

  var r2 = s2.getRange("A2:A28");

  var v2 = r2.getValues();

 for(var i=28;i>0;i--)

    if(v1[i]=v2)

      s2.deleteRow(i+1);
};

Mais la seule chose que j'obtiens est de supprimer toutes les lignes, les critères ne sont pas pris en compte.

Merci.

Tanaike

Je crois que votre objectif est le suivant.

  • Vous souhaitez supprimer les lignes de la feuille Team 1en comparant la cellule "C4" de la feuille Overviewavec les cellules "A2: A28" de la feuille Team 1.

Pour cela, qu'en est-il de cette modification?

Points de modification:

  • Dans votre script, il v1y a une valeur qui n'est pas un tableau. v2est un tableau à 2 dimensions.
    • Dans ce cas, at v1[i]=v2, le tableau à 2 dimensions est tenté de placer undefined. Par cela, v1[i]=v2existe toujours. Ainsi s2.deleteRow(i + 1);est toujours exécuté. Je pense que c'est la raison de votre problème.
  • Lorsque vous souhaitez comparer les valeurs, veuillez utiliser ==et / ou ===au lieu de uniquement =dans l'instruction if.
  • Le 1er index du tableau est 0.
  • Lorsqu'il s2.getRange("A2:A28")est utilisé, le décalage doit être ajouté au numéro de ligne de suppression.

Lorsque les points ci-dessus sont reflétés dans votre script, cela devient comme suit.

Script modifié:

De:
for (var i = 28; i > 0; i--)
  if (v1[i] = v2)
    s2.deleteRow(i + 1);
À:
for (var i = v2.length - 1; i >= 0; i--)
  if (v2[i][0] == v1)
    s2.deleteRow(i + 2);
  • v2.length est utilisé pour récupérer la longueur du tableau.

Références:

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

TOP Lista

CalienteEtiquetas

Archivo