Condividi:        

Ordinare le celle e mantenere la formula

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Ordinare le celle e mantenere la formula

Postdi Summer_g » 16/08/12 00:02

Ciao a tutti!

Ho questo problema che purtroppo a cause della numerosità dei dati non posso risolvere manualmente con F4.

Mi spiego: ho 3 colonne

A: email
B: numero transazioni
C:valore di ogni transazione

Nella colonne C e B ho usa la funzione "countifs" e il "criteria1" si riferisce alla cella in A. Ad esempio:

B2=countifs($M:$M,$A2)

Ovviamente non ho potuto bloccare con $ (come diversamente ho fatto per il il "criteria_range") anche A2 perchè poi trascinaldo, copiando e incollando la formula sarebbe rimasta invariata per le caselle successive.

Ora, il problema è questo: quando ordino la colonna B dal valore più grande e al più piccolo le formule si muovono!
Se prima ho:

Riga 1: A2=email B2=countifs($M:$M,$A2) C2=countifs($O:$O,$A2)

Dopo l'ordinamento (e F9) mi ritrovo:

Riga 1: A2=email B2=countifs($M:$M,$A249) C2=countifs($O:$O,$A249)

Come faccio a far si che anche dopo l'ordinamento il criteria1 sia sempre $A2?

Spero di aver spiagato il problema in modo comprensibile.

Sto realizzando una macro quindi anche un dritta con VBA è ben accetta ;)

Grazie a tutti!
Summer_g
Newbie
 
Post: 1
Iscritto il: 15/08/12 23:39

Sponsor
 

Re: Ordinare le celle e mantenere la formula

Postdi Flash30005 » 16/08/12 01:05

Ciao Summer_g e benvenuto nel Forum

Non capisco perché non ordini prima di inserire le formule a meno che non effettui l'ordinamento spesso...

comunque una macro che conta i valori da inserire nella colonna B e C e poi, se vuoi, ordina la colonna A (ordinamento crescente) potrebbe essere questa
Codice: Seleziona tutto
Sub ContaEOrd()
Worksheets("Foglio1").Select
URA = Range("A" & Rows.Count).End(xlUp).Row
URM = Range("M" & Rows.Count).End(xlUp).Row
URO = Range("O" & Rows.Count).End(xlUp).Row
Columns("B:C").ClearContents
For RRa = 2 To URA
ContaB = 0
ValA = Range("A" & RRa).Value
    For RRm = 2 To URM
        ValM = Range("M" & RRm).Value
        If ValA = ValM Then ContaB = ContaB + 1
    Next RRm
    Range("B" & RRa).Value = ContaB
Next RRa
For RRa = 2 To URA
ContaC = 0
ValA = Range("A" & RRa).Value
    For RRo = 2 To URO
        ValO = Range("O" & RRo).Value
        If ValA = ValO Then ContaC = ContaC + 1
    Next RRo
    Range("C" & RRa).Value = ContaC
Next RRa
'Call Ordina '<<<<< togliere commento se vuoi ordinare automaticamente dopo esecuzione conteggio
End Sub
Sub Ordina()
URA = Range("A" & Rows.Count).End(xlUp).Row
    Range("A2:C" & URA).Select
    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub


Ho separato le macro (conteggio e ordinamento) ma togliendo il commento dove indicato ottieni l'ordinamento automaticamente

Inoltre non hai specificato se le righe nelle colonne in M e O sono identiche alle righe nella colonna A pertanto ho dovuto calcolarle separatamente e creare due cicli for next invece di uno.

Fai sapere
ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Ordinare le celle e mantenere la formula

Postdi Anthony47 » 16/08/12 22:32

Non so se con la macro di Flash (vedi sopra) hai risolto; se No allora vorrei sapere quali colonne (o quale area) risulta selezionata nel momento in cui dai il comando Ordina.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Ordinare le celle e mantenere la formula":


Chi c’è in linea

Visitano il forum: Nessuno e 38 ospiti