Hola a todos,
Hace unos días me preguntaban como se podría hacer una custom function en Power Apps, el asunto es que querían utilizar la función para obtener la generación de una persona según su fecha de nacimiento: Generación Z (1997 en adelante) · Millennial (1981–1996) · Generación X (1965–1980) · Baby Boomer (1946–1964) · Generación anterior (antes de 1946)
Bien, aunque este tipo de clasificaciones en mi opinión ofrecen ciertas dudas, a nivel funcional se puede hacer perfectamente.
La respuesta se la dejé con dos formas de hacerlo, una con IF y otra con SWITCH. En este caso, quizás lo más eficiente es el If ya que estamos trabajando con condiciones diferentes, mientras que SWITCH es más apropiado cuando podemos obtener varias coincidencias posibles.
En cualquier caso, os voy a dejar las UDF’s:

Y aquí en código:
ObtenerGeneracionSwitch(FechaNacimiento: Date): Text =
Switch(
true;
Year(FechaNacimiento) >= 1997; "Generación Z";
Year(FechaNacimiento) >= 1981; "Millennial";
Year(FechaNacimiento) >= 1965; "Generación X";
Year(FechaNacimiento) >= 1946; "Baby Boomer";
"Generación anterior"
)
;;
ObtenerGeneracionCondicion(FechaNacimiento: Date): Text =
If(
Year(FechaNacimiento) >= 1997; "Generación Z";
Year(FechaNacimiento) >= 1981; "Millennial";
Year(FechaNacimiento) >= 1965; "Generación X";
Year(FechaNacimiento) >= 1946; "Baby Boomer";
"Generación anterior"
)
;;
Una vez que tenemos la información en la pantalla App la Custom ya funciona.

El botón de fecha se llamará txtFecha y vamos a colorar en los label donde mostraremos la información o resultado:
Antes de mostrar resultado vamos a tener en cuenta, que sea fecha y que tenga10 posiciones:
En el primer label:
With(
{
varFecha:
IfError(
DateValue(
txtFecha.Text;
"es-ES"
);
Blank()
)
};
If(
Len(txtFecha.Text) = 10 &&
!IsBlank(varFecha);
ObtenerGeneracionSwitch(varFecha);
""
)
)
En el segundo label:
With(
{
varFecha:
IfError(
DateValue(
txtFecha.Text;
"es-ES"
);
Blank()
)
};
If(
Len(txtFecha.Text) = 10 &&
!IsBlank(varFecha);
ObtenerGeneracionCondicion(varFecha);
""
)
)
El resultado es el que podéis observar. Con la Custom, podemos invocar la función desde cualquier parte de la App y resulta muy sencilla de utilizar.
Pues eso, que soy generación X
