sábanas de google, conseguir todos los nombres de las sábanas donde la celda "A1" no tiene una determinada cadena

Tengo un archivo de hojas de google muy grande con un montón de sábanas, y necesito una lista de sábanas donde una célula no tiene una "descripción de cadenas". Algunas hojas la faltan, o está en una celda equivocada, y las que necesito encontrar para arreglar esas sábanas. No puedo averiguar cómo extender este código que encontré aquí. Soy muy nuevo en las hojas de google.

/*** return sheet names for active document
 * @customfunction
 */
function sheetName() {
  var out = new Array()
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  for (var i=0 ; i

Pregunta hecha hace 3 años, 4 meses, 28 días - Por htmlhero


4 Respuestas:

  • Para comprobar una sola célula:

    function checkCell() {
      let value = "description" // edit this for your value
      let file = SpreadsheetApp.getActive();
      let sheet = file.getActiveSheet(); // gets your active sheet
     
      // gets value from cell A1
      let valueToCheck = sheet.getRange("A1").getValue()
    
      // Checking value
      if(valueToCheck != value) {
        // if NOT right value, print "FALSE"
        Logger.log("FALSE")
      }
    }
    

    Para comprobar todas las hojas:

    function checkSheets() {
      let value = "description" // edit this for your value
      let file = SpreadsheetApp.getActive();
      let sheets = file.getSheets(); // gets all sheets in array
     
      let numberOfSheets = sheets.length // gets number of sheets in total
      
      let result = []; // initialize empty array
      
      // for loop to run as many times as there are number of sheets
      for (let i=0; i

    Copia esto en tu editor de scripts, ejecutelo, y luego ve a Ver Logs.

    Referencias " Más Lectura

    Respondida el Dec 18, 2020 a las 06:50 - por codecrafty

    Votos positivos: 0 | Votos negativos: 0

  • function findAll() {
      const ss=SpreadsheetApp.getActive();
      const shts=ss.getSheets();
      let f=[];
      shts.forEach(sh=>{
        if(sh.getRange("A1").getValue()=="Description") {
          f.push(sh.getName());
        }
      });
      SpreadsheetApp.getUi().showModelessDialog(f.join('
    '),"Sheets with String in A1") }

    Respondida el Dec 18, 2020 a las 06:55 - por scriptsphinx

    Votos positivos: 0 | Votos negativos: 0

  • Para poder obtener una lista de todas las hojas en tu archivo de Google Sheets donde la celda "A1" no contiene una determinada cadena, puedes modificar ligeramente la función que has proporcionado.

    A continuación te muestro un ejemplo de cómo puedes hacerlo:

    javascript
    /*
      Devuelve los nombres de las hojas donde la celda "A1" no contiene una cadena específica.
      @param {string} cadenaABuscar - La cadena que no debe estar presente en la celda "A1".
      @customfunction
        
    • /
    function sheetName(cadenaABuscar) { var out = []; var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets(); for (var i = 0; i < sheets.length; i++) { var sheet = sheets[i]; var cellA1Value = sheet.getRange("A1").getValue(); if (cellA1Value.toString().indexOf(cadenaABuscar) === -1) { out.push(sheet.getName()); } } return out; }

    Para utilizar esta función, debes:

    • Pegar el código en el editor de secuencias de comandos de Google Apps Script.
    • Guardar los cambios.
    • En una celda de tu hoja de cálculo, puedes usar la fórmula `=sheetName("cadena_a_buscar")`, donde `"cadena_a_buscar"` es la cadena específica que deseas buscar en las celdas "A1".
    • Al presionar Enter, obtendrás una lista de nombres de las hojas donde la celda "A1" no contiene esa cadena.

    Espero que esta solución te sea de ayuda. ¡Déjame saber si tienes alguna otra pregunta!

    Respondida el Dec 19, 2020 a las 06:50 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • js
    /** return sheet names for active document
      @customfunction
        
    • /
    function sheetName() { var out = new Array() var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets(); for (var i = 0; i < sheets.length; i++) { var range = sheets[i].getRange("A1"); // Check if the cell contains the string "descriptionstring" if (range.getValue() != "descriptionstring") { // If it doesn't, add the sheet name to the output array out.push(sheets[i].getName()); } } return out; }

    Respondida el Dec 19, 2020 a las 07:01 - por Gemini

    Votos positivos: 0 | Votos negativos: 0