Impossibile colorare le celle in più colonne tramite l'elencoSto cercando di formattare più colonne per cambiare il colore in base al valore della cella utilizzando un elenco di nomi di colonna specifici, ma il mio codice formatta solo la prima colonna dell'elenco.
Come posso formattare anche il resto delle colonne dell'elenco?
Names Default to Here( 1 );
Test_DT = New Table( "Test",
New Column( "No Color", set values( {2,2,2,2,2,2} ) ),
New Column( "1-1", set values( {0,1,0,0} ) ),
New Column( "2-1", set values( {0,0,0,1} ) ),
New Column( "3-1", set values( {0,0,0,0,4} ) )
);
Col_List = Test_DT << Get Column Names( string );
For( i = Nitems( Col_List ), i > 0, i--,
If( !Contains( Col_List[i], "-"),
Remove from( Col_List, i )
)
);
For( i = 1, i <= N Row( Test_DT ), i++,
If( Column( Col_List )[i] >= 1,
Column( Col_List ) << Color Cells( light orange, {i} )
)
);
Ri: Impossibile colorare le celle in più colonne tramite l'elencoDevi scorrere anche su col_list.
Names Default to Here( 1 );
Test_DT = New Table( "Test",
New Column( "No Color", set values( {2,2,2,2,2,2} ) ),
New Column( "1-1", set values( {0,1,0,0} ) ),
New Column( "2-1", set values( {0,0,0,1} ) ),
New Column( "3-1", set values( {0,0,0,0,4} ) )
);
Col_List = Test_DT << Get Column Names( string );
For( i = Nitems( Col_List ), i > 0, i--,
If( !Contains( Col_List[i], "-"),
Remove from( Col_List, i )
)
);
For( i = 1, i <= N Row( Test_DT ), i++,
for (k = 1, k <= nitems(col_list), k++,
If ( Column( Col_List[k] )[i] >= 1,
Column( Col_List[k] ) << Color Cells( light orange, {i} )
);
);
);Ri: Impossibile colorare le celle in più colonne tramite l'elencoHai fatto qualcosa che ho fatto troppe volte. Stai tentando di fare riferimento a un valore di cella, ma non stai indicando quale riga. Dai un'occhiata al codice qui sotto, che funziona. Inoltre, stavi confrontando se fossi gt 1, e per i risultati desiderati, dovrebbe essere> =.
Names Default To Here( 1 );
Test_DT = New Table( "Test",
New Column( "No Color", set values( {2, 2, 2, 2, 2, 2} ) ),
New Column( "1-1", set values( {0, 1, 0, 0} ) ),
New Column( "2-1", set values( {0, 0, 0, 1} ) ),
New Column( "3-1", set values( {0, 0, 0, 0, 4} ) )
);
Col_List = Test_DT << Get Column Names( string );
For( i = N Items( Col_List ), i > 0, i--,
If( !Contains( Col_List[i], "-" ),
Remove From( Col_List, i )
)
);
For( ColNum = 1, ColNum <= N Items( Col_List ), ColNum++,
For( i = 1, i <= N Row( Test_DT ), i++,
If( (Column( Col_List[colNum] )[i]) >= 1,
As Column( Col_List[ColNum] ) << Color Cells( light orange, {i} )
);
)
);Ri: Impossibile colorare le celle in più colonne tramite l'elencoNon ho potuto resistere a un leggero miglioramento. Raccoglie tutte le righe in una matrice per una colonna e imposta i colori contemporaneamente. Più efficiente di una riga alla volta. Ho dovuto usare come colonna nel ottenere righe dove clausola.
Names Default to Here( 1 );
Test_DT = New Table( "Test",
New Column( "No Color", set values( {2,2,2,2,2,2} ) ),
New Column( "1-1", set values( {0,1,0,0} ) ),
New Column( "2-1", set values( {0,0,0,1} ) ),
New Column( "3-1", set values( {0,0,0,0,4} ) )
);
Col_List = Test_DT << Get Column Names( string );
For( i = Nitems( Col_List ), i > 0, i--,
If( !Contains( Col_List[i], "-"),
Remove from( Col_List, i )
)
);
for (k = 1, k <= nitems(col_list), k++,
one_col = Col_List[k];
orange_rows = test_dt << get rows where(as column(test_dt, one_col) >= 1);
if (nrows(orange_rows) > 0,
Column(test_dt, one_col) << Color Cells( light orange, orange_rows );
);
);Ri: Impossibile colorare le celle in più colonne tramite l'elencoHa funzionato meravigliosamente. Grazie!