Power Apps #12 – Sesión 3 – Resumen

Funciones y Fórmulas
🎯 Objetivo de la sesión
La Sesión 3 del curso de Power Apps tuvo dos partes: (1) finalizar las pantallas pendientes de la app (Módulos y Principal) iniciadas en la clase anterior, y (2) introducir el uso de funciones y fórmulas de PowerFx, el lenguaje funcional que impulsa Power Apps.
🖥️ 1. Construcción de pantallas de la aplicación
| Pantalla | Propósito | Elementos clave |
|---|---|---|
| Inicio | Landing responsivo (hecha en sesión anterior) | Contenedores adaptables a dispositivo móvil |
| Módulos | Menú de acceso a áreas (Contabilidad, RR.HH., etc.) | Plantilla predefinida con tarjetas tipo galería |
| Principal | Vista de trabajo con menú lateral + contenido | Contenedores horizontales/verticales anidados |
- Se usaron plantillas de pantalla predefinidas (screen templates) como punto de partida, ajustando contenedores, tamaños y textos según necesidad.
- Se armó un menú lateral dinámico con un control de galería vertical que muestra icono + texto por cada opción.
🔁 2. Variables y Colecciones — conceptos clave
| Fórmula | Uso | Ejemplo de la clase |
|---|---|---|
Collect | Crea/alimenta una variable de tipo lista (colección) | Collect(ListaMenu, {NombreMenu:"Menú 1", IconoMenu: Icon.Add}) |
Clear | Limpia una colección antes de repoblarla, evitando duplicados | Se agregó Clear(ListaMenu) antes de cada Collect para que el menú no se acumulara al cambiar de módulo |
Set | Crea una variable global de un solo valor | Set(VariableMayus, Upper(EntradaTexto.Text)) |
Navigate | Cambia de pantalla, opcionalmente pasando variables de contexto | Navigate(ScreenPrincipal) / Navigate(ScreenModulos) para «Regresar» |
📌 Concepto destacado: Solo conviene crear una variable si su valor se reutilizará en varios controles; si el valor solo alimenta un control, es más eficiente aplicar la fórmula directamente en la propiedad Default/Text del control, sin declarar variable. [learn.microsoft.com], [learn.microsoft.com]
🧮 3. PowerFx: el lenguaje de fórmulas de Power Apps
PowerFx es un lenguaje funcional y declarativo, comparado en clase con Excel: así como en Excel se selecciona una celda y se escribe una fórmula en la barra fx, en Power Apps se selecciona una propiedad de un control y se escribe la fórmula en la barra de fórmulas. La lógica de funciones (Find, Left, Right, etc.) es prácticamente idéntica a Excel, solo cambian algunos nombres. [learn.microsoft.com]
🔤 4. Funciones de texto
| Función | Qué hace |
|---|---|
Trim | Elimina espacios en blanco sobrantes |
Concatenate | Une varios valores de texto en uno solo |
Len | Devuelve la cantidad de caracteres de un texto |
Upper / Lower / Proper | Mayúsculas / minúsculas / primera letra en mayúscula |
DateValue / TimeValue / DateTimeValue | Convierten texto en fecha, hora o fecha-hora |
Value / Text | Convierten texto a número y viceversa |
Ejercicio práctico: se construyó un formulario simple (entrada de texto + botón) para probar Upper, Lower y Proper, comparando el uso de una variable declarada con Set versus aplicar la fórmula directamente en la propiedad del control de salida.
✂️ 5. Funciones de extracción de texto
| Función | Sintaxis | Ejemplo |
|---|---|---|
Left | Left(Texto, N) | Left("Morales", 2) → «Mo» |
Right | Right(Texto, N) | Right("Morales", 3) → «les» |
Mid | Mid(Texto, Posición, N) | Extrae caracteres desde una posición específica |
Find | Find(Buscado, Texto) | Ubica la posición de un carácter/subcadena |
Split | Split(Texto, Separador) | Split("perrito,gatito,paloma", ",") → tabla con 3 valores |
Substitute | Substitute(Texto, Antiguo, Nuevo) | Reemplaza una subcadena por otra |
[learn.microsoft.com], [learn.microsoft.com]
📅 6. Funciones de fecha y hora
| Función | Descripción |
|---|---|
Now() / Today() | Fecha-hora actual / fecha actual |
DateAdd / DateDiff | Suma o calcula diferencia entre fechas |
Year, Month, Day, Hour, Minute, Second, Weekday | Extraen partes específicas de una fecha |
[learn.microsoft.com], [learn.microsoft.com]
🔀 7. Lógica, notificaciones y otras funciones
- Condicionales/lógicos:
If,And(todas las condiciones deben cumplirse),Or(basta con una),Not(negación). Notify(Mensaje, TipoNotificación, Tiempo): muestra un banner en pantalla (informativo=celeste, éxito=verde, advertencia=amarillo, error=rojo). [learn.microsoft.com]- Credenciales de usuario:
User().FullName,User().Email— obtienen datos de la sesión logueada. - Validación:
IsBlank(verifica vacío),IsMatch,IsNumeric. [learn.microsoft.com] - Conteo y agregación:
Count,CountIf,Sum,Average,Max,Min,CountRows(siempre operan sobre listas/tablas, no sobre variables de un solo registro). [learn.microsoft.com] - Agrupamiento:
GroupBy/Ungroup— se usarán más adelante para pantallas de gráficos. [learn.microsoft.com] - Operadores: aritméticos (
+ - * /) y de comparación (>=,<=, etc.).
❓ Preguntas y respuestas destacadas de la clase
| Pregunta (alumno) | Respuesta del docente | Refuerzo con documentación oficial |
|---|---|---|
| ¿Existe un catálogo en internet para ver los nombres/íconos disponibles y no «adivinar»? | Sí, se puede consultar la documentación oficial de Power Apps, donde aparece el listado completo de íconos disponibles para los controles. | El control Icon (y las propiedades Icon/ItemIconName) tiene su referencia oficial con la lista de valores disponibles en Microsoft Learn. [learn.microsoft.com], [learn.microsoft.com] |
| ¿Por qué en mi entorno solo aparecen 3 opciones (Insertar, Agregar datos, Nueva pantalla) y en el suyo aparecen más? | Se debe a que el alumno estaba trabajando en el entorno predeterminado (default environment), que tiene limitaciones frente a un entorno de desarrollo dedicado. | El entorno predeterminado está pensado como «zona de pruebas» con capacidades restringidas; para funcionalidades completas se recomienda usar un entorno administrado/dedicado. [learn.microsoft.com] |
| ¿Cómo se accede al editor de código (ver código) de un control? | Seleccionando el control y usando la opción de los «tres puntos» → Ver código. | Power Apps Studio incluye la función**»Use code view»**, que permite ver, copiar y pegar el código YAML de un control. [learn.microsoft.com] |
¿Cómo se usa la función Split? | Se aplica sobre un texto separado por comas (u otro delimitador); retorna una tabla/lista con cada segmento como un registro independiente. | Split(Texto, Separador) devuelve una tabla de una columna (Value) con las subcadenas resultantes. [learn.microsoft.com] |
| ¿Por qué el menú lateral acumula registros duplicados al cambiar entre módulos (Contabilidad → RR.HH.)? | Porque Collect agrega registros a una variable que ya existe en memoria; al usar la misma variable para distintos módulos, los nuevos registros se suman a los anteriores en vez de reemplazarlos. | La solución es usar Clear antes de Collect (o directamente ClearCollect), que limpia la colección antes de volver a poblarla. [learn.microsoft.com] |
✅ Conclusiones y recomendaciones
- PowerFx es el corazón de Power Apps: dominar sus funciones (texto, fecha, lógicas, agregación) es indispensable antes de avanzar a pantallas más complejas con datos reales.
- Variables (
Set) vs. Colecciones (Collect): usaSetpara un único valor reutilizable yCollect/ClearCollectpara listas de registros; recuerda siempre limpiar (Clear) una colección si la vuelves a poblar, para evitar duplicados. - Reutilización de fórmulas: no siempre es necesario crear una variable — si el valor solo se usará en un control, aplica la fórmula directamente en su propiedad (
Default,Text, etc.) para mantener la app más simple y mantenible. - Practica activamente: el docente recomendó repasar la grabación priorizando los tramos prácticos (creación de fórmulas paso a paso) sobre los teóricos, ya que la asimilación de PowerFx requiere repetición.
- Próxima sesión: se abordarán fórmulas de fecha/operadores restantes, más fuentes de datos (listas), formularios de registro, actualización y búsqueda — es decir, el inicio del trabajo con bases de datos dentro de la app.
- Buenas prácticas generales: nombra tus controles y variables de forma descriptiva (
entrada_texto,ListaMenu,colProductos), documenta el propósito de cada colección, y valida entradas de usuario (IsBlank,IsMatch) antes de guardar datos, siguiendo las guías oficiales de Power Apps. [wickedsmartdata.com]

