Celle colorate basate su più condizioniHo scritto il seguente codice per colorare le celle in base alla condizione. Devo aggiungere un'altra condizione:
se il peso è compreso tra -2% e Target, è necessario colorare le celle di giallo. Come si fa?
dt << New Column("color cells",
Formula(If(:Target> :weight, :weight << color cells("Red", Row()); .,
:weight << color cells("Green", Row()); .)),
Hide(1)
);
Grazie
Ri: Colora le celle in base a più condizioni1. Se lavorerai in JSL, devi dedicare del tempo alla lettura della Guida allo scripting: Aiuto==>Libri==>Guida allo scripting
2. Di seguito è riportato un semplice script che genera la colorazione come descritto
Names Default To Here( 1 );
dt = Current Data Table();
colNamesList = dt << get column names( string );
For( theRow = 1, theRow <= N Rows( dt ), theRow++,
For( theCol = 2, theCol <= N Items( colNamesList ), theCol++,
If(
:Target[theRow] > Column( dt, colNamesList[theCol] )[theRow],
Column( dt, colNamesList[theCol] ) << color cells( "Red", theRow );
.;,
Column( dt, colNamesList[theCol] )[theRow] < :Target[theRow] + (.02 *
Abs( :Target[theRow] )) & Column( dt, colNamesList[theCol] )[theRow] >
:Target[theRow] - (.02 * Abs( :Target[theRow] )),
Column( dt, colNamesList[theCol] ) << color cells( "Yellow", theRow );
.;,
Column( dt, colNamesList[theCol] ) << color cells( "Green", theRow );
.;
)
)
);Ri: Colora le celle in base a più condizioniÈ necessario scrivere una variazione di questa logica. Ho dati in 4 colonne e devo confrontare il valore in ogni cella con il valore Target. Inoltre non saprei prima i nomi delle colonne. Come fare questo? In parole semplici, è necessario confrontare i valori nella colonna A, B, C e D con il valore corrispondente nella colonna Target e il codice colore (verde, giallo o rosso) di conseguenza.
| Obbiettivo | UN | B | C | D |
| 99% | 1% | 8% | 93% | 10% |
| 52% | 55% | 62% | 22% | 19% |
| 39% | 89% | 18% | 33% | 25,50% |
| 16% | 11% | 92% | 10% | 2% |
Ri: Colora le celle in base a più condizioniSe(
:Obiettivo > :peso,
:peso << color cells( "Red", Row() );
.;,
:peso < :Obiettivo + (.02 * Abs( :Obiettivo )) & :peso > :Obiettivo - (.02 *
Addominali( :Target )),
:peso << color cells( "Yellow", Row() );
.;,
:peso << color cells( "Verde", Riga() );
.;
);