google-apps-script indice - Elimina una riga in Google Spreadsheets se il valore della cella nella riga indicata è 0 o vuoto




5 Answers

function onEdit(e) {
  //Logger.log(JSON.stringify(e)); 
  //{"source":{},"range":{"rowStart":1,"rowEnd":1,"columnEnd":1,"columnStart":1},"value":"1","user":{"email":"","nickname":""},"authMode":{}}
  try {
    var ss = e.source; // Just pull the spreadsheet object from the one already being passed to onEdit
    var s = ss.getActiveSheet();

    // Conditions are by sheet and a single cell in a certain column
    if (s.getName() == 'Sheet1' &&  // change to your own 
        e.range.columnStart == 3 && e.range.columnEnd == 3 &&  // only look at edits happening in col C which is 3
        e.range.rowStart == e.range.rowEnd ) {  // only look at single row edits which will equal a single cell
      checkCellValue(e); 
    }
  } catch (error) { Logger.log(error); }
};

function checkCellValue(e) {
  if ( !e.value || e.value == 0) {  // Delete if value is zero or empty
    e.source.getActiveSheet().deleteRow(e.range.rowStart);
  }
}

Questo guarda solo il valore di una singola cella adesso e non i valori nell'intero foglio.

address index

Mi piacerebbe poter eliminare un'intera riga in un foglio di lavoro Google se il valore inserito per dire la colonna "C" in quella riga è 0 o vuoto. C'è una semplice sceneggiatura che potrei scrivere per realizzare questo? Grazie!




Posso suggerire una soluzione semplice senza usare uno script !!

Diciamo che vuoi eliminare le righe con testo vuoto nella colonna C. Ordina i dati (Menu Dati -> Ordina foglio per colonna C, A-> Z) nella colonna foglio C, in modo che tutte le righe di testo vuote siano disponibili insieme .

Basta selezionare quelle righe tutte insieme e fare clic con il tasto destro del mouse -> Elimina righe. Quindi puoi riordinare i dati in base alla colonna di cui hai bisogno. Fatto.




Stavo avendo qualche problema con gli script, quindi la mia soluzione era usare lo strumento "Filtro".

  1. Seleziona tutti i dati del foglio di lavoro
  2. Fai clic sull'icona dello strumento di filtro (assomiglia a un bicchiere di vino)
  3. Fai clic sull'icona del filtro appena disponibile nella prima cella della colonna che desideri cercare.
  4. Seleziona "Filtra per condizione"> Imposta le condizioni (Stavo usando "Testo contiene"> "parola")

Questo lascerà le righe che contengono la parola che stai cercando e potranno essere eliminate selezionandole in blocco tenendo premuto il tasto Maiusc> fai clic con il tasto destro> cancella le righe.




leggendo la tua domanda attentamente, ho trovato questa soluzione:

function onOpen() {
  // get active spreadsheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  // create menu
  var menu = [{name: "Evaluate Column C", functionName: "deleteRow"}];

  // add to menu
  ss.addMenu("Check", menu);
}

function deleteRow() {
  // get active spreadsheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  // get active/selected row
  var activeRow = ss.getActiveRange().getRowIndex();

  // get content column C
  var columnC = ss.getRange("C"+activeRow).getValue();

  // evaluate whether content is blank or 0 (null)
  if (columnC == '' || columnC == 0) {
    ss.deleteRow(parseInt(activeRow));
  }
}

Questo script creerà un menu al caricamento del file e ti consentirà di eliminare una riga, in base a quei criteri impostati nella colonna C, oppure no .




C'è un modo più semplice:

  1. Usa il filtro per mostrare solo le righe che vuoi eliminare. Ad esempio, la mia colonna in base alla quale voglio eliminare le righe aveva delle categorie, A, B, C. Attraverso l'interfaccia di filtraggio ho selezionato solo A e B, che volevo eliminare.
  2. Seleziona tutte le righe ed eliminale. Facendo questo, nel mio esempio, ho effettivamente selezionato tutte le righe A e B e le ho cancellate; ora il mio foglio di calcolo non mostra alcuna riga.
  3. Spegni il filtro. Questo mostra le mie righe C. Fatto!



Related

google-apps-script google-spreadsheet