Justo me hacía falta esto, pues andaba estancado para lograr usar concatenar varias columnas, aparte agregarle la función SI, pues no quería que se active si estaba la celda vacía y me funcionó genial. Gracias. definitivamente tengo que adquirir los cursos, juntaré dinero.
Muchas gracias por estos videos, ya habia visto tus videos anteriores de lambda y como eran muy complicados de utilizar no lo estudie ni lo practique, pero ahora con las nuevas tablas de google que no permiten formulas en los encabezados tengo el desafio de poder importar a otras tablas en diferentes hojas (importrange) la base de datos de la manera mas simple y dinamica!, seguro tu nos puedes recomendar eso! saludos
Hola! Este tema de las tablas, aunque tiene muchas ventajas, tambien nos va a traer muchos retos a los que usamos funcionalidades mas complejas El tema del ArrayFormula yo todavía no lo veo bien compatible con las tablas, pero lo voy a seguir investigando y seguramente habrá un video a futuro Gracias por la sugerencia Saludos!
Hola: Exelente canal. Para los espacios vacios yo prefiero encerrar el map() dentro de un Filter() porque por una lado eso me permite escribir en las filas vacias sin que el map me de un error y ademas si utilizamos scripts en esa hoja no tenemos errores con el lastRow() ya que si utilizamos el condicional estamos escirbiendo en todas las filas de la hoja (unque queden en blanco)
Gran aporte Emilio Aunque fijate que si dejas el vacio vacío y no en comillas, por ejemplo SI(FILA(var1)=1;; no te va a afectar el .getLastRow() Pero si puede llegar a ser mas eficiente ya que no "escribe" en tantas celdas Gracias por el consejo!
Hola Juan, excelente el tema tratado hoy, las formulas matriciales son de lo mejor en las hojas de cálculo. Muy buena su explicación, ahora falta usarlas también con filtros y sobre todo filtros dinámicos, puede ser 🤔 Saludos y un super like👍
Juan! Muchas gracias por compartir, este arreglo es para practicarlo porque sí confunde un poco pero es como todo, sólo práctica y por si a alguien le sirve, para cuando toca hacer operaciones básicas con array yo lo hago de la siguiente forma: •Si ponemos el array en la fila 2: =ARRAYFORMULA(A2:A+B2:B) •Array en encabezado: =ARRAYFORMULA( SI(FILA(A:A)=1; "Suma"; ARRAYFORMULA(A:A+B:B)) ) Esas dos primeras me van a traer 0 en donde esté vacío pero para ello uso este arreglo: =ARRAYFORMULA( SI(A:A="";""; SI(FILA(A:A)=1; "Suma"; ARRAYFORMULA(A:A+B:B))) ) Yo dejo las formulas tipo como cuando se programa ajajja voy bajando renglón para poderme ver donde empieza y termina una formula y las demás. Saludos! También soy de Colombia
11:25 map(ref,LAMBDA(Var,var+form) Simplemente impresionante! Yo me quedé entendiendo la primera parte el BYROW, Lo estudiaré más a fondo Muchas Gracias Ing. Guzman, Cordial saludo hasta Colombia desde Mex.
Yo utilizo para limitar la formula de matriz el contar los datos manuales y los combino con un indirecto, seria algo asi map(indirecto(“B:B“&CONTARA(A:A)....... de esta forma solo se expande la formula solo cuando hay datos en la columna A, muchas gracias por sus videos son mis referencia para aprender más.
Excelente a verdad es q Excel sigue siendo mejor para muchas cosas, sobre todo si tienes bases muy grandes o requieres funcionalidades muy avanzadas como opciones específicas de Tabla Dinámica o Tablas, o Power Query Pero de resto, Sheets es una maravilla Saludos!
@@Pillados- Lo han mejorado, para no quedarse atras de Google, pero me quedo con Sheets personalmente. Uso los 2, me toca. Pero me quedo con Sheets. Saludos!
@@JuanSGuzman Hola Juan, quiero usar MAP en el siguiente caso. Usando Lambda y arrastrando la fórmula funciona bien, pero al llevarlo a MAP no funciona correctamente. La función ubicada en columna B cuenta si los elementos de columna A se repiten o no dentro de la misma columna A. Ejemplo usando solo lambda en fila 5 =LAMBDA(varUno;varDos;IF(COUNTIF(varUno;varDos)>1; "SI"; "NO"))($A$1:A5;A5) Llevado a MAP: =MAP($A$1:A;A1:A;LAMBDA(varUno;varDos;IF(COUNTIF(varUno;varDos)>1; "SI"; "NO"))) Cualquier ayuda se agradece.
@@AgendaBioBioCL Hola! Te dejo este video del canal en inglés donde lo hago. Lo anoto para hacerlo en español th-cam.com/video/CKkTmS0av_I/w-d-xo.html Saludos!
@@AgendaBioBioCL Ahi es mas complejo y tienes que ayudarte de fórmulas como INDIRECTO y DESREF. Lo podrías hacer así =MAP(A1:A;LAMBDA(varUno;IF(COUNTIF(INDIRECTO("A1:A"&FILA(varUno)))>1; "SI"; "NO"))) Algo asi Lo anoto para un video adicional Saludos!
Juan muchas gracias y muchas felicidades, compartir tu conocimiento nos ayuda mucho. ¿Te animas a hacer un paquete que sea un pago único por una suscripción lifetime a tu pagina web?
Hola Juan, sos un GENIO!!! Explicas muy bien y vas sin rodeos a desarrollar el tema. Disculpa que mi pregunta no sea de este tema, pero quisiera preguntarte: ¿de qué manera puedo hacer sumas condicionales? como por ejemplo, según el color de la tipografía de la cantidad a sumar. SIN realizar filtros como lo explicas en otro video. Desde ya muchas gracias!!! Lo que pretendo hacer es que en una columna con varias cantidades de distintos colores, agregar abajo, filas con los subtotales de cada color y abajo de todo el resultado de la suma general. Se entiende?
Hola Normalmente las sumas condicionales se hacen con SUMAR.SI pero no incluyen condiciones de formatos como los coore Para sumar colores te toca hacer funciones personalizadas, como en este video th-cam.com/video/LqY85FQBlE4/w-d-xo.html Saludos!
Hola! Claro que si! EL truco esta en saber que se deja como variables del LAMBDA y que se pone directamente como referencia Por ejemplo para tu ejemplo sería =MAP(A2:A;LAMBDA(ref;INDICE(Datos!A1:F50;COINCIDIR(ref;A1:A;0);3))) Saludos!
@@JuanSGuzman Hola. No, me refiero a que estoy trabajando en la hoja 1, actualizando una información, y al pasar de la hoja 1 a la hoja 2, es decir, al ingresar a la hoja 2, se me ejecute la macro "Orden Descendente" que ya la tengo hecha. En estos momentos tengo la macro asignada a un botón, pero si no se pincha el botón no se genera el orden ascendente y se presta para confuciones al leer la información de la hoja 2. No he podido dar con la solución.
Súper esta función, nunca la había utilizado, siempre usaba Array Formula. Aunque tengo una consulta, lo probé en una de mis plantillas pero al ponerle números a mis variables me saca error. Hay alguna forma de que esto no suceda. Por ejemplo necesito tener variables como P1, P2, P3... Para mis productos.
Es importante que tus variables no se confundan con referencias, por eso p1 no te la toma Intenta con prod1 o var1 Saludos!
7 หลายเดือนก่อน +1
BUEN CLASE LA TUYA, tengo una consulta al usar esta formula en mi caso al usar filter y transpose solo me muestra un valor de todos los demas que deberian estar enlistados de forma horizontal para hacer que mi desplegable dependiente sea automatico si se aumentan mas filas Formula=MAP(A2:A1800;B2:B1800;D2:D1800;'Atención de consultas_2024'!F2:F1800;LAMBDA(componente;tema;componente2;componente3;if(componente2="";;TRANSPOSE( filter (tema;componente=componente3)))))
El truco de MAP es saber cuales referencias "entran" dentro del map, y cuales no. En tu caso, sería algo asi, sin entender bien tu estructura de datos =MAP(D2:D1800;'Atención de consultas_2024'!F2:F1800;LAMBDA(componente2;componente3;if(componente2="";;TRANSPOSE( filter (B2:B1800;A2:A1800=componente3))))) Saludos!
En pocas palabras... Lambda es una función anónima. Es decir una función sin nombre. Si ya tienen experiencia programando en javascript y han utilizado los metodos map, filter y reduce. A estos métodos se les pasa una función que recibe un valor o valores que componen el array y se define el cuerpo de la misma que es la operaciónción a realizar con ese elemento y regresa el resultado. Prácticamente es lo mismo. Microsoft Excel fue el primero en agregar este tipo de funciones pero solo están disponibles para office 365. Excel incorpora una llamada filter que si filtra el resultado de una fórmula. El filter de sheets solo funciona para rangos. Si tengo que filtrar el resultado de una fórmula utilizo Query. Saludos!
Clase avanzada no! Me gusta Lamda porque las celdas no quedan con formulas lo cual es bueno para evitar algun borrado de la formula en las celdas de abajo y cuando se tiene un libro muy grande, creo que cargue mucho mas rapido ya que no habria formulas en cada celda de esa columna. Pero hasta el momento lo dejo en min 14, luego continuo. Veo bien ese uso hasta el momento.
Justo me hacía falta esto, pues andaba estancado para lograr usar concatenar varias columnas, aparte agregarle la función SI, pues no quería que se active si estaba la celda vacía y me funcionó genial. Gracias. definitivamente tengo que adquirir los cursos, juntaré dinero.
Hola
Excelente! Me alegra ser de utilidad.
Un gran saludo!
Juan, Muchísimas gracias por la explicación!
Excelente Juan !!
Gracias!
Muchas gracias por estos videos, ya habia visto tus videos anteriores de lambda y como eran muy complicados de utilizar no lo estudie ni lo practique, pero ahora con las nuevas tablas de google que no permiten formulas en los encabezados tengo el desafio de poder importar a otras tablas en diferentes hojas (importrange) la base de datos de la manera mas simple y dinamica!, seguro tu nos puedes recomendar eso! saludos
Hola!
Este tema de las tablas, aunque tiene muchas ventajas, tambien nos va a traer muchos retos a los que usamos funcionalidades mas complejas
El tema del ArrayFormula yo todavía no lo veo bien compatible con las tablas, pero lo voy a seguir investigando y seguramente habrá un video a futuro
Gracias por la sugerencia
Saludos!
Estupendo vídeo, Juan.
Mil gracias!
Hola: Exelente canal. Para los espacios vacios yo prefiero encerrar el map() dentro de un Filter() porque por una lado eso me permite escribir en las filas vacias sin que el map me de un error y ademas si utilizamos scripts en esa hoja no tenemos errores con el lastRow() ya que si utilizamos el condicional estamos escirbiendo en todas las filas de la hoja (unque queden en blanco)
Gran aporte Emilio
Aunque fijate que si dejas el vacio vacío y no en comillas, por ejemplo SI(FILA(var1)=1;;
no te va a afectar el .getLastRow()
Pero si puede llegar a ser mas eficiente ya que no "escribe" en tantas celdas
Gracias por el consejo!
Hola Juan, excelente el tema tratado hoy, las formulas matriciales son de lo mejor en las hojas de cálculo.
Muy buena su explicación, ahora falta usarlas también con filtros y sobre todo filtros dinámicos, puede ser 🤔
Saludos y un super like👍
Tienes razón
Esta es la punta del iceberg
Gracias por comentar
Saludos!
Sos un capo! me encantó la idea de dejar el arrayformula. Gracias!
Hola!
Que amables palabras! Mil gracias!
Saludos!
Juan! Muchas gracias por compartir, este arreglo es para practicarlo porque sí confunde un poco pero es como todo, sólo práctica y por si a alguien le sirve, para cuando toca hacer operaciones básicas con array yo lo hago de la siguiente forma:
•Si ponemos el array en la fila 2:
=ARRAYFORMULA(A2:A+B2:B)
•Array en encabezado:
=ARRAYFORMULA(
SI(FILA(A:A)=1;
"Suma";
ARRAYFORMULA(A:A+B:B))
)
Esas dos primeras me van a traer 0 en donde esté vacío pero para ello uso este arreglo:
=ARRAYFORMULA(
SI(A:A="";"";
SI(FILA(A:A)=1;
"Suma";
ARRAYFORMULA(A:A+B:B)))
)
Yo dejo las formulas tipo como cuando se programa ajajja voy bajando renglón para poderme ver donde empieza y termina una formula y las demás.
Saludos! También soy de Colombia
Mil gracias por el aporte!
Saludos!
11:25 map(ref,LAMBDA(Var,var+form)
Simplemente impresionante!
Yo me quedé entendiendo la primera parte el BYROW, Lo estudiaré más a fondo
Muchas Gracias Ing. Guzman,
Cordial saludo hasta Colombia desde Mex.
Gracias por comentar como siempre Felipe
Yo utilizo para limitar la formula de matriz el contar los datos manuales y los combino con un indirecto, seria algo asi map(indirecto(“B:B“&CONTARA(A:A)....... de esta forma solo se expande la formula solo cuando hay datos en la columna A, muchas gracias por sus videos son mis referencia para aprender más.
Tienes razón!
Gran aporte
La verdad es que cuando juntas map y lambda con INDIRECTO y DESREF tienes unas posibilidades increibles!
Saludos!
Excelente aporte y explicación, muchas gracias por ello. Bendiciones y éxito.
Hola!
Gracias a ti por tomarte el trabajo de comentar!
Saludos!
32:28 Ok pero los que tengamos Array Formula con GAS? También cambiaremos?
ArrayFormula va a seguir funcionando siempre
Solo que estas son mas potentes y funcionan en más casos
Saludos!
Excelente contenido. Muchas gracias Juan
Gracias a ti!
Excelente como siempre, muchas gracias, Juan!!
Gracias a ti por comentar!
Muchas gracias Juan... excelente.
Con mucho gusto
Muy buena explicación, primera vez que veo esas fórmulas, ya estoy de lleno en Sheets y dejé Excel
Excelente
a verdad es q Excel sigue siendo mejor para muchas cosas, sobre todo si tienes bases muy grandes o requieres funcionalidades muy avanzadas como opciones específicas de Tabla Dinámica o Tablas, o Power Query
Pero de resto, Sheets es una maravilla
Saludos!
@@JuanSGuzman pero hay que ver si Excel tienes esas buenas funcionalidades en la nube
@@Pillados- Lo han mejorado, para no quedarse atras de Google, pero me quedo con Sheets personalmente. Uso los 2, me toca. Pero me quedo con Sheets. Saludos!
Excelente aporte
Gracias!
Excelente, muchas gracias.
Gracias por comentar!
Me gustó esto de LAMBDA MAP.
Es super chevere!
Yo ya casi deje de utilizar ArrayFormula
Saludos!
@@JuanSGuzman Hola Juan, quiero usar MAP en el siguiente caso. Usando Lambda y arrastrando la fórmula funciona bien, pero al llevarlo a MAP no funciona correctamente.
La función ubicada en columna B cuenta si los elementos de columna A se repiten o no dentro de la misma columna A.
Ejemplo usando solo lambda en fila 5
=LAMBDA(varUno;varDos;IF(COUNTIF(varUno;varDos)>1; "SI"; "NO"))($A$1:A5;A5)
Llevado a MAP:
=MAP($A$1:A;A1:A;LAMBDA(varUno;varDos;IF(COUNTIF(varUno;varDos)>1; "SI"; "NO")))
Cualquier ayuda se agradece.
@@AgendaBioBioCL Hola! Te dejo este video del canal en inglés donde lo hago. Lo anoto para hacerlo en español
th-cam.com/video/CKkTmS0av_I/w-d-xo.html
Saludos!
@@AgendaBioBioCL Ahi es mas complejo y tienes que ayudarte de fórmulas como INDIRECTO y DESREF. Lo podrías hacer así
=MAP(A1:A;LAMBDA(varUno;IF(COUNTIF(INDIRECTO("A1:A"&FILA(varUno)))>1; "SI"; "NO")))
Algo asi
Lo anoto para un video adicional
Saludos!
@@JuanSGuzman misma solución. Agradecido nuevamente.
Muy bueno Juan, muchas gracias
Con mucho gusto
La voy a usar
Me cuentas como te va
Saludos!
Muchas gracias por el video, manito arriba, una pregunta como seria al buscarx con el lambda?
Hola!
=MAP(A2:A20;LAMBDA(valor_busqueda;BUSCARX(valor_busqueda;Datos!A:A;Datos!C:C;)))
Saludos!
Juan muchas gracias y muchas felicidades, compartir tu conocimiento nos ayuda mucho.
¿Te animas a hacer un paquete que sea un pago único por una suscripción lifetime a tu pagina web?
Hmmm, no se me había ocurrido. Voy a pensarlo
Gracias por la sugerencia
Saludos!
@@JuanSGuzman puedo ser tu 🐇 de indias
@@DiegoSotomayorMendoza Dejame "echo número" y t cuento
Gracias por el interés!
Saludos!
Hola Juan, sos un GENIO!!! Explicas muy bien y vas sin rodeos a desarrollar el tema. Disculpa que mi pregunta no sea de este tema, pero quisiera preguntarte: ¿de qué manera puedo hacer sumas condicionales? como por ejemplo, según el color de la tipografía de la cantidad a sumar. SIN realizar filtros como lo explicas en otro video. Desde ya muchas gracias!!! Lo que pretendo hacer es que en una columna con varias cantidades de distintos colores, agregar abajo, filas con los subtotales de cada color y abajo de todo el resultado de la suma general. Se entiende?
Hola
Normalmente las sumas condicionales se hacen con SUMAR.SI pero no incluyen condiciones de formatos como los coore
Para sumar colores te toca hacer funciones personalizadas, como en este video
th-cam.com/video/LqY85FQBlE4/w-d-xo.html
Saludos!
Me encantaría saber si se puede usar LAMBDA con funciones matriciales como INDICE o COINCIDIR
Hola!
Claro que si!
EL truco esta en saber que se deja como variables del LAMBDA y que se pone directamente como referencia
Por ejemplo para tu ejemplo sería
=MAP(A2:A;LAMBDA(ref;INDICE(Datos!A1:F50;COINCIDIR(ref;A1:A;0);3)))
Saludos!
Hola, ¿Tienes un video que explique como ejecutar una macro al pasar de una hoja a otra?
Hola!
Te refieres a copiar un dato?
Saludos!
@@JuanSGuzman Hola. No, me refiero a que estoy trabajando en la hoja 1, actualizando una información, y al pasar de la hoja 1 a la hoja 2, es decir, al ingresar a la hoja 2, se me ejecute la macro "Orden Descendente" que ya la tengo hecha.
En estos momentos tengo la macro asignada a un botón, pero si no se pincha el botón no se genera el orden ascendente y se presta para confuciones al leer la información de la hoja 2.
No he podido dar con la solución.
Súper esta función, nunca la había utilizado, siempre usaba Array Formula. Aunque tengo una consulta, lo probé en una de mis plantillas pero al ponerle números a mis variables me saca error. Hay alguna forma de que esto no suceda. Por ejemplo necesito tener variables como P1, P2, P3... Para mis productos.
Es importante que tus variables no se confundan con referencias, por eso p1 no te la toma
Intenta con prod1 o var1
Saludos!
BUEN CLASE LA TUYA, tengo una consulta al usar esta formula en mi caso al usar filter y transpose solo me muestra un valor de todos los demas que deberian estar enlistados de forma horizontal para hacer que mi desplegable dependiente sea automatico si se aumentan mas filas
Formula=MAP(A2:A1800;B2:B1800;D2:D1800;'Atención de consultas_2024'!F2:F1800;LAMBDA(componente;tema;componente2;componente3;if(componente2="";;TRANSPOSE( filter (tema;componente=componente3)))))
El truco de MAP es saber cuales referencias "entran" dentro del map, y cuales no. En tu caso, sería algo asi, sin entender bien tu estructura de datos
=MAP(D2:D1800;'Atención de consultas_2024'!F2:F1800;LAMBDA(componente2;componente3;if(componente2="";;TRANSPOSE( filter (B2:B1800;A2:A1800=componente3)))))
Saludos!
Funcionará para el encabezado hacer algo asi?
={"Max Ventas";funcion_ByRow_Lambda}
Debería funcionar
Saludos!
En pocas palabras... Lambda es una función anónima. Es decir una función sin nombre. Si ya tienen experiencia programando en javascript y han utilizado los metodos map, filter y reduce. A estos métodos se les pasa una función que recibe un valor o valores que componen el array y se define el cuerpo de la misma que es la operaciónción a realizar con ese elemento y regresa el resultado. Prácticamente es lo mismo.
Microsoft Excel fue el primero en agregar este tipo de funciones pero solo están disponibles para office 365. Excel incorpora una llamada filter que si filtra el resultado de una fórmula. El filter de sheets solo funciona para rangos. Si tengo que filtrar el resultado de una fórmula utilizo Query.
Saludos!
Gracias por resumir!
Saludos!
Clase avanzada no! Me gusta Lamda porque las celdas no quedan con formulas lo cual es bueno para evitar algun borrado de la formula en las celdas de abajo y cuando se tiene un libro muy grande, creo que cargue mucho mas rapido ya que no habria formulas en cada celda de esa columna. Pero hasta el momento lo dejo en min 14, luego continuo. Veo bien ese uso hasta el momento.
Lo dices tu xq ya eres avanzado, jaja
Gracias por comentar
Saludos!