Buongiorno Davide ????
devi fare tutto in tre step (anche in un singolo calcolo).
1) separi ogni ingrediente con un a capo – nel tuo esempio:
cercaesost(cit – mit – urea; ” – “; “¶”)
2) fai la stessa cosa con l’ingrediente inserito
3) usi una funzione personalizzata per filtrare le due liste in maniera tale che restituisca solo i valori della prima lista che non sono nella seconda. e la applichi in maniera incrociata (così da vedere se gli ingredienti sono i medesimi in entrambe le lista). Se entrambe le applicazioni della funzione personalizzata (ingredienti presenti su nuovo inserimento e nuovo inserimento su ingredienti precedenti) restituiscono vuoto, vuol dire che gli ingredienti sono gli stessi e quindi non vanno inseriti.
una cf adatta potrebbe essere:
FilterListItems_Filtrate.cf(MyList;FilterList)
Dichiara([
§Length = ConteggioValore(MyList ) ;
§ThisValue = RicavaValore( MyList ; 1 );
// aggiungi il valore, se applicabile
$$TEMPFILTERITEMLIST =
If(
not ContaRicorrenze ( ¶ & FilterList & ¶ ; ¶ & §ThisValue & ¶ ) ; $$TEMPFILTERITEMLIST & §ThisValue & ¶;
$$TEMPFILTERITEMLIST
);
// scorcia la lista
§NewList =
If(
§Length > 1 ; ValoriaDestra ( MyList; §Length – 1) ;
“”);
result =
If(
// Se ci sono ancora valori
ConteggioValore ( §NewList ) > 0 ; FilterListItems_Filtrate.cf( §NewList ; FilterList );
// invece ¶
Sinistra( $$TEMPFILTERITEMLIST ; Lunghezza( $$TEMPFILTERITEMLIST ) – 1 )
);
// tidy up
$$TEMPFILTERITEMLIST = “”
];
result
)
.g.