Extracción de un campo de cada fila

La función que necesitamos deberá evaluar el contenido del campo Height para cada fila, y devolver true o false en función de que el valor de dicho campo supere el valor 180 o no.

Si aplicamos el mismo razonamiento que en los ejemplos anteriores, si hacemos uso de la palabra reservada each tendremos disponible en _ cada uno de los valores recibidos por la función como argumento. El matiz ahora es que la tabla se va a recorrer fila por fila, y lo que le llega a nuestra función como argumento de entrada es, precisamente, la fila siendo iterada en cada momento. Es decir, un registro.

Esto supone que deberíamos poder extraer el valor asociado a una clave (a una columna) con la nomenclatura registro[nombre-del-campo] que ya hemos visto. En nuestro caso queremos extraer el valor contenido en la columna Height y compararlo con 180, de manera que each _[Height] > 180 debería devolver los valores buscados:

let
    data = #table(
        type table[
            #"Name" = text,
            #"Height" = number,
            #"Birthday" = date
        ],
        {
            {"John", 184, #date(1970, 10, 28)},
            {"Susan", 176, #date(1976, 6, 15)},
            {"George", 195, #date(1982, 4, 2)}
        }
    )
in
    Table.AddColumn(
        data,
        "Tall",
        each _[Height] > 180,
        type logical
    )
Tabla resultante

Efectivamente, vemos que el código funciona perfectamente, conteniendo la nueva columna, Tall, los valores lógicos correctos (true para alturas mayores de 180, false para el resto).

El único matiz a añadir es que en la documentación de Microsoft se indica (copiado literalmente) que

"cada valor [CustomerID] es igual que cada valor _[CustomerID], que es lo mismo que (_) => _[CustomerID]"

Lo que nos está indicando Microsoft es que, cuando hagamos referencia a un campo de la tabla, no necesitamos añadir el símbolo _ antes del nombre del campo (como en _[Height]) sino que podemos directamente escribir [Height], de forma que nuestro código podría quedar de la siguiente forma:

let
    data = #table(
        type table[
            #"Name" = text,
            #"Height" = number,
            #"Birthday" = date
        ],
        {
            {"John", 184, #date(1970, 10, 28)},
            {"Susan", 176, #date(1976, 6, 15)},
            {"George", 195, #date(1982, 4, 2)}
        }
    )
in
    Table.AddColumn(
        data,
        "Tall",
        each [Height] > 180,
        type logical
    )

Tabla resultante