Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

193
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda