Condividi:        

Excel o macro (solita 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

Excel o macro (solita formula)

Postdi Lucio Peruggini » 09/09/12 21:22

Ciao ed eccomi con una nuova richiesta che, come sempre, avete gentilmente esaudito.
Cercherò di spiegare con termini di Excel quanto segue:

range “I3:Q552”
…B3:B52…..1° STEP
…B53:B102 2° STEP
.B103:B152 3° STEP e così via fino a righe 60.0000

Ogni (step o ciclo) comprende un’estrazione di 50 righe e quindi avremo un passo 50 fino in fondo.
Le colonne interessate sono: riga “K52, N52, Q52” (primo step) e a seguire tutte le altre con passo 50.

Il “K52” deve verificare che “E52” (fine estrazione) contenga un solo attuale “at” e quindi inserire (l’asterisco o altro simbolo).

“N52” deve verificare che “E52” contenga solamente due attuali (E51;E52) e quindi inserire (l’asterisco o altro simbolo).

“Q52” deve verificare che “E52” contenga solamente tre attuali (E50; E51; E52 ) e quindi inserire (l’asterisco o altro simbolo).

Laddove si verifica la presenza di più attuali “at” l’asterisco, ovviamente, non va marcato.

Allego foglio per prove sperando di essere stato esaustivo nella spiegazione e ringrazio.

http://sharesend.com/6d2nm

Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Sponsor
 

Re: Excel o macro (solita formula)

Postdi Flash30005 » 09/09/12 23:59

In colonna K inserisci questa formula
Codice: Seleziona tutto
=SE(RESTO(A52;50)=0;SE(E52="at";"*";"");"")


In colonna N la stessa con un controllo in più
Codice: Seleziona tutto
=SE(E(RESTO(A52;50)=0;E52="at";E51="at");"*";"")


Stessa cosa in Colonna Q
Codice: Seleziona tutto
=SE(E(RESTO(A52;50)=0;E52="at";E51="at";E50="at");"*";"")


Avrai un solo asterisco alla riga (multipla di 50)
perché non credo occorra inserire gli asterischi per ogni "at" trovato
o no?

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: Excel o macro (solita formula)

Postdi Lucio Peruggini » 10/09/12 00:05

Ciao Flash, ti ringrazio come sempre per la disponibilità.

Mi servono tutti gli asterischi, da 1 a 3.
In questo modo e con i filtri, quando tolgo le vuote agli asterischi, posso verificare gli storici che m'interessano.
Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Flash30005 » 10/09/12 00:07

si ma filtri colonne diverse
sai che in K hai una ricorrenza
in N due
e in Q tre
quindi quando filtri Q sai che sono 3
vedrò comunque se riesco ad implementare la formula

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: Excel o macro (solita formula)

Postdi Anthony47 » 10/09/12 00:26

Ma gli "at" sono sempre in fondo al gruppo da 50 o sono distribuiti casualmente?
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 10/09/12 00:32

Ciao, ho provato e c'è un variabile o condizione da rispettare.
Quando in "Q" mi trova tre attuali, non deve marcare gli attuali anche nelle altre due colonne "N e K"; idem quando trova attuali 2 in "K", non deve marcare anche "N" altrimenti i dati si moltiplicano.

Comunque, quanto affermi non è sbagliato! Solamente, quando filtro la colonna "Q" non devo trovarmi gli asterischi anche in quelle precedenti.

Per Anthoni:
sono sempre in fondo.
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Flash30005 » 10/09/12 00:34

Infatti sembra che siano sempre in fondo
e, in questo caso è sufficiente un semplice SE in Q
Codice: Seleziona tutto
=SE(E3="at";"*";"")

e condizionare N rispetto a Q (se è vuota la condizione inserisce l'asterisco)
e quindi anche in K che se N è vuota inserisce l'asterisco

controindicazioni?
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: Excel o macro (solita formula)

Postdi Lucio Peruggini » 10/09/12 00:45

Penso che questa immagine possa esservi utile. Come si nota l'estrazione 8401 racchiude ben 15 attuali, essa non va affatto inclusa.
Quelle che servono sono esclusivamente tutte le estrazioni che al loro interno sono rimaste con un max tre attuali.
Avrei dovuto chiarirlo prima, chiedo scusa.
Ciao

http://s14.postimage.org/4sdjm7uox/Immagine_1.png
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Anthony47 » 10/09/12 00:49

Questa macro?
Codice: Seleziona tutto
Sub LPBoh()
'
myRes = "K"    'La prima colonna dei risultati
'
LastR = Cells(Rows.Count, 1).End(xlUp).Row
For I = 52 To LastR Step 50
    MyAts = Application.WorksheetFunction.CountIf(Range("E" & (I - 50 + 1)).Resize(50, 1), "at")
    For J = 1 To 3
        If MyAts = J Then Range(myRes & I).Offset(-(J - 1), (J - 1) * 3).Resize(J, 1) = "*"
    Next J
Next I
End Sub

Essa mette i risultati nelle celle che credo siano interessate.

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

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 10/09/12 00:54

Per Flash

La condizione "SE" mi trova tutti gli attuali, a me servono come detto prima solamente le estrazioni che al max contengano tre attuali.

Provo la macro di Anthony e vi farò sapere, grazie molte.
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 10/09/12 01:07

Essa mette i risultati nelle celle che credo siano interessate


GGGGGrande Anthony!

Credevi bene! La macro fa esattamente quanto desideravo. E' incredibile come quattro righe di codice risolano situazioni intrigate come queste.

Grazie ancora.
Notte
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Flash30005 » 10/09/12 01:10

Ma come? andava bene anche una macro? :diavolo:
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: Excel o macro (solita formula)

Postdi Anthony47 » 10/09/12 01:17

Eh, Flash, a volte la macro e' piu' conveniente di altre soluzioni :D :D
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 10/09/12 01:23

Flash30005 ha scritto:Ma come? andava bene anche una macro? :diavolo:


Intestazione del post!

Grazie amici
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Flash30005 » 10/09/12 02:13

Comunque, ormai...

In K4 inserisci questa formula (non K3) e trascina verso il basso
Codice: Seleziona tutto
=SE(RESTO(A4;50)=0;SE(CONTA.SE(E3:E4;"at")=(RIF.COLONNA()-8)/3;"*";"");"")


In N4 questa
Codice: Seleziona tutto
=SE(O(RESTO(A6;50)=2;RESTO(A6;50)=1;);SE(CONTA.SE(E1:E6;"at")=(RIF.COLONNA()-8)/3;"*";"");"")


e in Q4 questa
Codice: Seleziona tutto
=SE(O(RESTO(A6;50)=2;RESTO(A6;50)=1;RESTO(A6;50)=0);SE(CONTA.SE(E1:E6;"at")=(RIF.COLONNA()-8)/3;"*";"");"")


A me sembra che vadano

Ciao

P.s. avevo letto solo il contenuto tra le parentesi
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: Excel o macro (solita formula)

Postdi Lucio Peruggini » 10/09/12 09:08

Ciao Flash e grazie.
Funzionano perfettamente anche se, a questo punto, penso utilizzerò la macro perché pesa molto meno delle formule. Queste, alla fine posso copiarle come valori e quindi non averle più dentro.
Ma vi è anche un altro motivo: evito di trascinare le tre colonne.

Grazie molte e buona giornata
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 10/09/12 22:24

https://dl.dropbox.com/u/18220462/Snap_ ... 48_005.png

Solo per prova inserimento immagini

EDIT Flash30005: questo post sarà cancellato entro 24 ore dalla pubblicazione, dopo che l'utente avrà constatato che il link è errato
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 05/10/12 01:00

Ciao Anthony, non riesco a far funzionare questa macro che avevi fatto, dove sbaglio?

Codice: Seleziona tutto
Sub LPBoh()
'
myRes = "K"    'La prima colonna dei risultati
'
LastR = Cells(Rows.Count, 1).End(xlUp).Row
For I = 52 To LastR Step 50
    MyAts = Application.WorksheetFunction.CountIf(Range("E" & (I - 50 + 1)).Resize(50, 1), "at")
    For J = 1 To 3
        If MyAts = J Then Range(myRes & I).Offset(-(J - 1), (J - 1) * 3).Resize(J, 1) = "*"
    Next J
Next I
End Sub

viewtopic.php?f=26&t=96848&p=555654#p555654

Qui era riportata la discussione riguardo a questa macro che metteva gli asterischi a partire dalla colonna cappa e quindi, “K – N – Q”.
Il K un solo asterisco, la N due asterischi, la Q tre asterischi.

La stessa macro ora non mi funziona più; ho inserito un’ulteriore colonna la “I” cambiando i parametri non solo della colonna di partenza che è diventata “L” ma anche il (For e lo Step)) che sono diventati For 8 - Step 5 in questo modo, ma non mi funziona; è come se andasse in Loop.
Dove sbaglio?

Codice: Seleziona tutto
Sub LPBoh()
'
myRes = "L"    'La prima colonna dei risultati
'
LastR = Cells(Rows.Count, 1).End(xlUp).Row
For I = 8 To LastR Step 5
    MyAts = Application.WorksheetFunction.CountIf(Range("E" & (I - 5 + 1)).Resize(5, 1), "at")
    For J = 1 To 3
        If MyAts = J Then Range(myRes & I).Offset(-(J - 1), (J - 1) * 3).Resize(J, 1) = "*"
    Next J
Next I
End Sub


Dicevo che è come se andasse in tilt (avanti e indietro). E quando la fermo viene quanto di seguito:
http://s17.postimage.org/urii6fyu7/Cattura4.png

Questo, invece, è il foglio che sto adoperando il quale parte dalla riga 8
http://s12.postimage.org/ckk5zoj5p/Cattura5.png

Ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: Excel o macro (solita formula)

Postdi Anthony47 » 05/10/12 11:45

L' implementazione della modifica alla macro mi sembra corretta; quando vai in debug, se posizioni il cursore sopra le parole LastR e poi I (solo posizionamento del cursore, nessun click) che valore ti viene visualizzato dopo qualche secondo? Riprendi la macro, aspetta circa 10 secondi, ripeti il debug e il rilevamento di LastR e I.

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

Re: Excel o macro (solita formula)

Postdi Lucio Peruggini » 05/10/12 12:44

Ciao Anthony, ho fatto quanto suggeritomi mantenendo la macro in funzione per un minuto e ripetendo l'operazione due volte; risultati:

LastR = 57553
I = 15113 la prima volta, 15123 la seconda

Suppongo che: LastR è la quantità di righe; infatti è così.
(I) ma non sono sicuro, dovrebbe essere dove la macro trova difficoltà nel proseguire (boh)

ciao
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Excel o macro (solita formula)":


Chi c’è in linea

Visitano il forum: Nessuno e 57 ospiti