Condividi:        

formula difficile

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

formula difficile

Postdi papiriof » 18/11/24 10:57

Unprimo passo per spiegare la mia difficoltà per inserire una formula controllo , poi spiego Immagine
Win 7+Office 2010
papiriof
Utente Senior
 
Post: 406
Iscritto il: 16/02/10 13:23

Sponsor
 

Re: formula difficile

Postdi papiriof » 18/11/24 11:45

in L6 del foglio parzialmente riprodotto ho questa formula =SE(N6 = N$4 - 1; SCARTO(INDICE(arch; CONFRONTA(C8; INDICE(arch;;1); 0); N$1); -15; 0); L5) tutti i riferimenti sono visibili in questa sopra tranne "Scarto(INDice ecc) che punta ad un foglio dal nome Archivio e più precisamente a una parte di esso nominato da me col nome di "arch" ( C3:BG2330) nella col C ci sono le date di tutte le estrazionie rappresenta la prima colonna appunto di arch mentre la col BG è l'ultima (57 di arch) in essa troviamo il numero di estrazione mensile. L formula esposta all'inizio si trova nel foglio chiamato Esame essa dovrebbe cambiare il num della col L ogni volta che in concomitanza che nella col N c'è il numero 2 e mantenere questo num fino a quando ne incontra un altro .La formula compierebbe il suo dovere se i mesi avessero tutti lo stesso numero di estrazioni per cui molto banalmente ho fatto finta che così fosse e ho messo 15 ho ragionato cosi le estrazioni sono 13 (all'epoca) se aggiungo 2 fanno 15 (2 si puoò dinamicizzare perchè è=a N$4-1) è andata bene per 3 mesi ma poichè il 4 mese aveva 14 estrazioni........ mi sfalsava il numero che doveva mettere . Se ci avete capito qualcosa...... :( :?:
Win 7+Office 2010
papiriof
Utente Senior
 
Post: 406
Iscritto il: 16/02/10 13:23

Re: formula difficile

Postdi Anthony47 » 18/11/24 17:46

Se ci avete capito qualcosa...... :( :?:
Poco in verità

Qualcosa in piu' probabilmente si potrebbe ottenere se:
-condividi un file di esempio su cui lavorare (potrei usare uno dei file che hai condiviso in precedenza per simulare l'intervallo ARCH, ma non mi tornano le colonne C:BG)
-soprattutto spieghi che cosa vuoi calcolare!
Avatar utente
Anthony47
Moderatore
 
Post: 19429
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: formula difficile

Postdi papiriof » 18/11/24 21:25

Hai ragione Anthony ti fornisco alcuni indizi sperando siano utili per capire .Primo non so se ricordi questa function ideata da te, ho cambiato solo il nome "pip" Function pip(ByVal val As Long, Optional ByVal limite As Long = 90) '
If val < 0 Then val = val + limite
pip = val Mod limite
If pip = 0 Then pip = limite
End Function

In L5 questa formula =SCARTO(INDICE(arch; CONFRONTA(C5; INDICE(arch;;1); 0); N$1); -15; 0)
in K6 l'utilizzo della funzione pip = pip(L5 + R$2; 90) trascinata fino a K904
in N$1 abbiamo un numero che rappresenta la colonna da ricercare in " arch " qui 42 cioè la 42esima colonna in arch
in N$4 abbiamo il num 3 significa voglio iniziare a giocare a partire dalla terza estrazione del mese cononoscendo però il num dell'estraz precedente la 2^ e mantenerla per tutto un mese cambiandola il mese successivo quando nella stessa riga e alla col 57 BG di arch compare il 2
in J1 abbiamo la somma della col J dove abbiamo in J5:J904 =SE(CONTA.SE(D5:H5;K5)=1;1;0)
Infine con la macro sotto trovo tutti le migliore performans delle 55 colonne di arch dalla col 2 alla 56 (la prima ci sono date la 57 cisono inum dell'estraz mensili)con i relativi sommatori
Sub CopyBestIntervalss()
Dim wsExame As Worksheet, wsBestInter As Worksheet
Dim i As Long, j As Long, col As Long

' Imposta i fogli di lavoro
Set wsExame = ThisWorkbook.Worksheets("Esame")
Set wsBestInter = ThisWorkbook.Worksheets("BestInter")

' Pulisci il foglio BestInter
wsBestInter.Cells.Clear

col = 14 ' Inizia dalla colonna N (14)

' Ciclo attraverso i valori di N1 (2 a 56)
For i = 2 To 56
wsExame.Range("N1").Value = i

' Ciclo attraverso i valori di R2 (1 a 90)
For j = 1 To 90
wsExame.Range("R2").Value = j

' Controlla se il valore in T1 è maggiore di 69
If wsExame.Range("T1").Value > 65 Then
' Copia l'intervallo T1:T904 nel foglio BestInter
wsExame.Range("T1:T904").Copy
wsBestInter.Cells(1, col).PasteSpecial Paste:=xlPasteValues

' Passa alla prossima colonna
col = col + 1

' Controlla se abbiamo raggiunto l'ultima colonna di Excel
If col > 16384 Then
MsgBox "Attenzione: raggiunto il limite di colonne in Excel. L'operazione verrà interrotta."
Exit Sub
End If
End If
Next j
Next i

' Pulisci gli appunti e deseleziona
Application.CutCopyMode = False
wsExame.Activate

MsgBox "Operazione completata. Gli intervalli migliori sono stati copiati nel foglio 'BestInter'."
End Sub
Win 7+Office 2010
papiriof
Utente Senior
 
Post: 406
Iscritto il: 16/02/10 13:23

Re: formula difficile

Postdi papiriof » 19/11/24 09:12

Anthony47 ha scritto:
Se ci avete capito qualcosa...... :( :?:[/quote=SE(N6 = N$4 - 1; SCARTO(INDICE(arch; CONFRONTA(C8; INDICE(arch;;1); 0); N$1); -15; 0); L5)]Poco in verità

Qualcosa in piu' probabilmente si potrebbe ottenere se:
-condividi un file di esempio su cui lavorare (potrei usare uno dei file che hai condiviso in precedenza per simulare l'intervallo ARCH, ma non mi tornano le colonne C:BG)
-soprattutto spieghi che cosa vuoi calcolare!

non tornano le colonne C:BG) del foglio archivio perchè la colonna BG è stata aggiunta da me che aveva una formula per ricavare il numero di estrazione mensile che poi trasformata in valoriper non appesantire il foglio.Ial foglio Archivio ha 2 colonne in più (quindi 59 col A e B )dell' arch che parte da C (date di estraz) a BG (num di estraz. mensili)
Voglio dinamicizzare questa formula posta in L6 e seguenti del foglio Esame =SE(N6 = N$4 - 1; SCARTO(INDICE(arch; CONFRONTA(C8; INDICE(arch;;1); 0); N$1); -15; 0); L5) quel " - 15 " è posto da me in modo empirico che visualmente ho visto il numero delle estrazioni mensili dei primi mesi di osservazione ma cosi non è il num cambia.
Win 7+Office 2010
papiriof
Utente Senior
 
Post: 406
Iscritto il: 16/02/10 13:23

Re: formula difficile

Postdi Anthony47 » 19/11/24 23:34

Perdona, ma allargando la discussione a cosa vorresti fare complessivamente invece di chiarirmi mi hai "sconfuso" vieppiù...
Io avrei voluto capire che cosa deve calcolare la formula messa in L6, in particolare la parte SCARTO(INDICE(arch; CONFRONTA(C8; INDICE(arch;;1); 0); N$1); -15; 0)

Dal discorso che fai mi pare di capire che bisognerebbe (per calcolare bene la cosa che non ho capito) rendere "dinamico" quel "-15", che sembra essere il numero di estrazioni presenti in archivio in un certo mese.
Se questo e' vero (cioe' se il contributo che serve e' per calcolare quante estrazioni ci sono nel mese della data indicata in colonna C di foglio Esame), allora per quel calcolo si potrebbe usare questa formula (provala in una colonna libera di riga 5 per vedere cosa ti restituisce):
Codice: Seleziona tutto
=CONTA.SE(Archivio!$C$3:$C$3000;">="&DATA(ANNO(C5);MESE(C5);1))-CONTA.SE(Archivio!$C$3:$C$3000;">="&DATA(ANNO(C5);MESE(C5)+1;1))
e quindi si potrebbe sostituire il "-15" con
Codice: Seleziona tutto
CONTA.SE(Archivio!$C$3:$C$3000;">="&DATA(ANNO(C5);MESE(C5)+1;1))-CONTA.SE(Archivio!$C$3:$C$3000;">="&DATA(ANNO(C5);MESE(C5);1))


Se invece ti servisse identificare la riga su ARCH dove cominciano le estrazioni del mese la cui data e' in C5 (di Esame) allora quel "-15" andrebbe sostituito da
Codice: Seleziona tutto
 CONTA.SE(Archivio!$C$5:$C$3000;">="&C5)-CONTA.SE(Archivio!$C$5:$C$3000;">="&DATA(ANNO(C5);MESE(C5);1))


Spero ci sia qualche spunto utile alla tua causa; altrimenti concentriamoci sulla formula di L6 (e indirettamente di L5) e spiega che cosa vorresti che la formula calcolasse
Avatar utente
Anthony47
Moderatore
 
Post: 19429
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: formula difficile

Postdi papiriof » 20/11/24 13:25

Perdonami Anthony avevo già detto il precedenza che In L5 c'era la formula
=SCARTO(INDICE(arch; CONFRONTA(C5; INDICE(arch;;1); 0); N$1); -15; 0)
ma in L6 la formula cambiava (ed era quella che veniva estesa fino ad L904) ed è :
=SE(N6 = N$4 - 1; SCARTO(INDICE(arch; CONFRONTA(C8; INDICE(arch;;1); 0); N$1); -(P6+2); 0); L5) propabile che questo incidain qualche modo . ho messo nella colonna P che si vede nel primo post il tuo primo suggerimento nell'intento di crearmi una colonna appoggio per sostituire quel -15 con (P5+2) in P5 con la tua formula viene 13 una serie di 13 seguita nel mese 7 con un'altra seerie di 13 formula giusta ma i numeri in L6 e seguenti vengono giusti(lasciando la formula orig messa da me fino al mese 8 ) in qualche modo giocano N$4-1 ..... che casino :roll: :eeh:
Win 7+Office 2010
papiriof
Utente Senior
 
Post: 406
Iscritto il: 16/02/10 13:23

Re: formula difficile

Postdi Anthony47 » 20/11/24 19:41

Quindi in colonna P, da P5 in giù, hai inserito la formula:
Codice: Seleziona tutto
=CONTA.SE(Archivio!$C$3:$C$3000;">="&DATA(ANNO(C5);MESE(C5);1))-CONTA.SE(Archivio!$C$3:$C$3000;">="&DATA(ANNO(C5);MESE(C5)+1;1))

Il numero così calcolato dice quante estrazioni sono presenti in Archivio relativamente alla data di colonna C.

I risultati in colonna P sono coerenti con le estrazioni presenti in Archivio? Ma soprattutto, questo dato e' quello che ti serve? Perchè io non ho ancora capito l'obiettivo della formula in L6 e sottostanti...
Avatar utente
Anthony47
Moderatore
 
Post: 19429
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: formula difficile

Postdi papiriof » 20/11/24 22:42

accidenti un ora per fornire la risposta ma mi sono dimenticato di schiacciare invia , comme si può recuperare? esiste un modo ? o era passato troppo tempo
Win 7+Office 2010
papiriof
Utente Senior
 
Post: 406
Iscritto il: 16/02/10 13:23


Torna a Applicazioni Office Windows


Topic correlati a "formula difficile":


Chi c’è in linea

Visitano il forum: Nessuno e 19 ospiti