Modifica dell’ombreggiatura quando cambia il valore di una colonna (Microsoft Excel)
Doug ha una tabella dati che include una colonna di numeri di parte. Questi dati vengono ordinati in base alla colonna dei numeri di parte. I numeri di parte non sono univoci; ad esempio, alcuni numeri di parte vengono visualizzati tre volte nella tabella e altri cinque volte. Doug vorrebbe formattare la tabella in modo che le righe della tabella abbiano un effetto “barra verde”.
Ad esempio, le prime cinque righe possono avere lo stesso numero di parte, quindi Doug vuole che quelle righe siano ombreggiate in verde. Le due righe successive hanno un numero di parte diverso, quindi desidera che quelle non abbiano ombreggiature verdi. Le tre righe successive hanno il numero di parte successivo, quindi dovrebbero essere di nuovo verdi e così via. Ogni volta che il numero di parte cambia, l’ombreggiatura della riga (verde o non verde) dovrebbe cambiare.
Un modo semplice per eseguire questa operazione è creare una colonna helper che visualizzi uno 0 o un 1 a seconda del numero di parte nella colonna A.
Ad esempio, supponiamo che tu voglia mettere la tua colonna helper nella colonna Z. Potresti inserire la seguente formula nella cella Z2:
=IF(A2=A1,Z1,1-Z1)
Copia la formula nella colonna Z per ogni riga nella tabella dei dati. Al termine, la colonna Z conterrà 1 o 0, cambiando solo quando il numero di parte nella colonna A cambia. È quindi possibile utilizzare il valore nella colonna Z come valore di controllo per la formattazione condizionale. Tutto quello che devi fare è impostare la formula nel formato in modo che se la colonna Z contiene 1, le tue celle sono verdi.
Si noti che una volta che la formattazione condizionale è stata impostata e funziona correttamente, è possibile nascondere la colonna Z in modo che non sia una distrazione per chiunque utilizzi la tabella dei dati.
Se non puoi utilizzare una colonna helper per qualche motivo, allora c’è una formula piuttosto interessante che puoi usare nel formato condizionale stesso. Assicurati solo che la tabella dei dati sia ordinata per colonna A (i numeri di parte) e quindi seleziona tutte le celle nella tabella, ad eccezione di eventuali intestazioni di colonna. Quindi definisci un formato condizionale che utilizzi questa formula:
=MOD(SUMPRODUCT(--(($A$1:INDIRECT(ADDRESS(ROW()-1,1,3,1)) =$A$2:INDIRECT(ADDRESS(ROW(),1,3,1)))=FALSE)),2)
Ricorda che questa è un’unica formula, inserita nella regola di formattazione condizionale, tutta su una riga. Questa formula presuppone che i numeri di parte siano nella colonna A e che la tabella dei dati inizi nella cella A2.
Inoltre, se elimini qualsiasi riga nella tabella dati, ti consigliamo di riapplicare il formato condizionale a tutte le celle nella tabella dati.
Infine, ci sono un numero qualsiasi di macro che potresti scrivere per applicare la formattazione. Tutto quello che devi fare è fare in modo che il macro passi attraverso le celle nella colonna A, determinando se il numero di parte cambia, quindi applicare la formattazione corretta in base a ciò che trova. Ecco un esempio:
Sub ShadeRows() Dim ThisOrder As Long Dim PrvOrder As Long Dim LastRow As Long Dim Clr As Integer Dim R As Long LastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row ' Enter desired color codes here ' (24 is Lavender, 35 is Light Green) RwColor = Array(24, 35) Clr = 0 ' Used to toggle between the two colors For R = 2 To LastRow ThisOrder = Cells(R, 1).Value PrvOrder = Cells(R - 1, 1).Value If ThisOrder <> PrvOrder Then Clr = 1 - Clr ' Select only the columns that are used Range("A" & R & ":M" & R).Select Selection.Interior.ColorIndex = RwColor(Clr) Next R End Sub
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (10517) si applica a Microsoft Excel 97, 2000, 2002 e 2003.
Puoi trovare una versione di questo suggerimento per l’interfaccia a barra multifunzione di Excel (Excel 2007 e versioni successive) qui: