Confrontare due campi di una tabella attributi in QGIS

Determinare i valori uguali presenti in due campi diversi di una tabella degli attributi usando le espressioni di QGIS.

A cura di Totò Fiandaca  | issue #190 | guida/e Totò Fiandaca Andrea Borruso


Caso d’uso

Ho una tabella con due campi che raccolgono una lista di numeri di fogli catastali, come confrontarle e estrarre solo i numeri fogli uguali?

Espressioni di QGIS

Importo la tabella in QGIS come testo delimitato, creo una colonna testo output e la popolo con la seguente espressione:

array_to_string(
    array_majority( array_cat(
      string_to_array(replace("fogli1",'-',',')),
      string_to_array(replace("fogli2",'-',','))
)))

Tradotto in linguaggio umano:
Trasforma i valori dei due campi in array (string_to_array(replace("fogli1",'|',','))) e poi concatena (array_cat), cioè crea unico array, successivamente estrae l’array dei valori che maggiormente sono presenti (array_majority), infine converte l’array in stringa.

download

qui file di esempio

Riferimenti utili

  1. QGIS
  2. HfcQGIS
  3. Array in QGIS
  4. esempio in #HfcQGIS
Ultima modifica 02/10/2021: update (1bfee0c)