Vai al contenuto

Come cercare un valore in funzione di un altro

Introduzione

Alcune volte nasce l'esigenza di cercare un valore in una tabella in funzione di un altro valore presente nella stessa tabella, un po' come fa la funzione cerca verticale di Excel, e utilizzarlo in un altro layer.

Funzione

La funzione che permette di fare questa magia è la funzione get_feature

Per capire meglio come usare la funzione, facciamo un esempio pratico derivante da un caso concreto che mi è stato chiesto di risolvere qualche settimana fa, per ovvi motivi, generalizzerò il problema.

Supponiamo di avere una griglia regolare:

nella tabella degli attributi il campo quadrante indica il nome del quadrato.

Un file matrice.csv rappresenta una matrice di valori che legano l'attributo specie con un valore per ogni quadrante.

Tracciando un punto all'interno del reticolo e selezionando la specie, popolare automaticamente l'attributo cella presente nello shapefile puntuale e l'attributo quadrante:

  • per popolare automaticamente la specie è stata usata la seguente espressione nelle proprietà del layer, in particolare nel widget Predefiniti:
attribute(get_feature('matrice', 'specie', "specie" ), "quadrante")

  • per popolare automaticamente il quadrante è stata utilizzata la seguente espressione nelle proprietà del layer puntuale, in particolare nel widget Predefiniti:
overlay_within('Reticolo',"quadrante")[0]

Demo

RIFERIMENTI