La función Table.ContainsAll evalúa si todos los registros indicados aparecen incluidos en una o varias filas de una tabla, devolviendo el valor lógico True en caso positivo y False en caso contrario.
Table.ContainsAll(
table as table,
rows as list,
optional equationCriteria as any
) as logical
- table: tabla a evaluar
- rows: lista de registros conteniendo los campos cuya existencia en la tabla se desea comprobar
- equationCriteria: (opcional) parámetro no documentado. Supuestamente controla el método de comparación de filas en la tabla.
La función devuelve el valor lógico True solo si todos los registros aparecen incluidos en una o más filas de la tabla.
En este ejemplo buscamos los nombres "Alfonso" y "Jorge" en el campo "name" de la tabla. Como el segundo nombre no aparece, la función devuelve el valor lógico False:
let
table = Table.FromRecords(
{
[id = 1, name = "John", country = "Uruguay"],
[id = 2, name = "Alfonso", country = "Chile"],
[id = 3, name = "Anacelia", country = "Argentina"],
[id = 2, name = "Luis", country = "España"]
}
)
in
Table.ContainsAll(
table,
{
[name = "Alfonso"],
[name = "Jorge"]
}
)
Ahora repetimos la búsqueda con los textos "Alfonso" y "Anacelia", ambos presentes en la tabla:
let
table = Table.FromRecords(
{
[id = 1, name = "John", country = "Uruguay"],
[id = 2, name = "Alfonso", country = "Chile"],
[id = 3, name = "Anacelia", country = "Argentina"],
[id = 2, name = "Luis", country = "España"]
}
)
in
Table.ContainsAll(
table,
{
[name = "Alfonso"],
[name = "Anacelia"]
}
)
TRUE
Por supuesto, podemos buscar diferentes campos en diferentes registros:
let
table = Table.FromRecords(
{
[id = 1, name = "John", country = "Uruguay"],
[id = 2, name = "Alfonso", country = "Chile"],
[id = 3, name = "Anacelia", country = "Argentina"],
[id = 2, name = "Luis", country = "España"]
}
)
in
Table.ContainsAll(
table,
{
[name = "Alfonso"],
[country = "España"]
}
)
TRUE
De hecho, podría ocurrir que todos (o algunos) de los registros buscados estuviesen incluidos en la misma fila de la tabla:
let
table = Table.FromRecords(
{
[id = 1, name = "John", country = "Uruguay"],
[id = 2, name = "Alfonso", country = "Chile"],
[id = 3, name = "Anacelia", country = "Argentina"],
[id = 2, name = "Luis", country = "España"]
}
)
in
Table.ContainsAll(
table,
{
[name = "Alfonso"],
[country = "Chile"]
}
)
TRUE