Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

201
Visualizações
¿Cómo pasar el rango con nombre a la función personalizada como celda y no como rango?

En Google Sheets "Apps Script" definí una función personalizada que recibe un formato y algunos valores, luego reemplaza los valores en los marcadores de posición del formato y los devuelve.

 function PRINT_DETAILS(format, productName, quantity) { /* format expects a string with placeholders like: "{productName} {quantity}" product: expects a string quantity: expects an integer */ }

En la "tabla" de Productos hay las siguientes columnas: nombre, cantidad, precio, etc. Cada uno de ellos tiene su propio rango con nombre.

Definí una columna de "impresión" donde llamo a la función de esta manera: = PRINT_DETAILS("{productName} {quantity}"; Products.Name; Products.Quantity)

El problema es que mi función recibe todo el rango con nombre, y no solo el valor de celda de la misma fila. es decir, estoy recibiendo todos los nombres de productos y todas las cantidades de productos...

Utilicé con éxito rangos con nombre como valores de celda de muchas maneras: agregándolos, en condiciones "IF", operador de concatenación "&", etc. Incluso en llamadas de funciones estándar.

Por eso creo que habría una manera de hacer lo mismo en las funciones personalizadas.

No me gustaría sacrificar la legibilidad usando referencias de celda como A1 o algo así.

Así que estoy buscando una manera de restringir los argumentos u obtener los valores deseados de una manera no demasiado complicada. Además, si pudiéramos echar un vistazo al código fuente de Google Sheets, tal vez esas funciones estándar también estén implementadas en JavaScript y ya tengan esto resuelto.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Descripción

Excel tiene una función en la que un valor de un rango con nombre se puede pasar a una fórmula personalizada correspondiente a la fila en la que se encuentra la fórmula. Desafortunadamente, Google Sheets no tiene la función. En su lugar, debe obtener el número de fila de la fórmula.

Tenga en cuenta que esto supone que los rangos con nombre comienzan en la fila 1 y las fórmulas están en esa misma fila en cualquier hoja.

Gracias a Mike Steelson he modificado ligeramente el guión para mejorarlo. Pero no la captura de pantalla.

 =PRINT_DETAILS("{productName} {quantity}",Products.Name,Products.Quantity)

capturas de pantalla

ingrese la descripción de la imagen aquí

Guion

 function PRINT_DETAILS(format,productName,quantity) { try { var row = SpreadsheetApp.getActiveRange().getRow(); return [productName[row-1],quantity[row-1]]; } catch(err) { return err.message; } }

Referencia

  • https://support.google.com/docs/thread/92023000?authuser=0&hl=en
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda