Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

198
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!