|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 | |
|
Member
Iscritto dal: Nov 2006
Città: Lecce
Messaggi: 208
|
Quote:
__________________
Ascoltate radio3 RAI |
|
|
|
|
|
|
#22 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 869
|
E se invece devo confrontare i valori della colonna C con la colonna D?
Mi spiego meglio. Supponiamo che io voglia sapere nell'intervallo C1:C100 quante volte la condizione Ci<Di si è verificata, come posso fare? Esiste una funzione excel oppure bisogna scrivere delle macro?
__________________
Notebook: MBP 15 i7 Retina, (Mid 2014) |
|
|
|
|
|
#23 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Codice:
Dim conta As Integer
conta = 0
Dim i As Integer
For i = 1 To 100
If Range("C" & i).Value < Range("D" & i).Value Then
conta = conta + 1
End If
Next i
MsgBox conta
|
|
|
|
|
|
|
#24 | |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 869
|
Quote:
Altra domanda. Date le colonne C e D di numeri, vorrei sapere quanti numeri di C non sono contenuti in D. Anche per questo ci vuole una macro?
__________________
Notebook: MBP 15 i7 Retina, (Mid 2014) |
|
|
|
|
|
|
#25 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Io preferisco VBA. Il mio codice precedente poteva essere ad esempio associato al Click di un pulsante ecc... Se invece vuoi usare una Function, la devi PRIMA creare in un modulo, come avevo spiegato più sopra a Wertherino... Poniamo tu voglia mettere il risultato del conteggio in A1 : Nel modulo : Codice:
Public Function FUNZIONE(arg As String) As Integer
Dim conta As Integer
conta = 0
Dim i As Integer
For i = 1 To 100
If Range("C" & i).Value < Range("D" & i).Value Then
conta = conta + 1
End If
Next i
FUNZIONE = conta
End Function
Si dovrebbe poter fare anche con le formule. Io lo farei con VBA... |
|
|
|
|
|
|
#26 | |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 869
|
Quote:
__________________
Notebook: MBP 15 i7 Retina, (Mid 2014) |
|
|
|
|
|
|
#27 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Comunque passare il range come argomento si può fare benissimo : Nel modulo : Codice:
Public Function FUNZIONEINT(intervallo As String) As Integer
Dim cella As Range
Dim conta As Integer
conta = 0
For Each cella In Range(intervallo)
If cella.Value < Cells(cella.Row, cella.Column + 1).Value Then
conta = conta + 1
End If
Next
FUNZIONEINT = conta
End Function
Se non ti funzia neanche questa hai seri problemi con il tuo Excel... ;) |
|
|
|
|
|
|
#28 | |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 869
|
Quote:
__________________
Notebook: MBP 15 i7 Retina, (Mid 2014) |
|
|
|
|
|
|
#29 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Per rispondere alla tua domanda, sì, metodi ce ne sono. Un metodo ad esempio è quello di creare un file .XLA che contiene tutte le funzioni desiderate e renderlo visibile a tutti i files Excel interessati... Ma bisogna rispettare certe condizioni "rigide" e comunque dovresti sempre modificare uno a uno i files che ne devono fare uso, specificando DOVE e COME reperire le funzioni esterne... Modifica per modifica, molto meglio e più sicuro che ogni Workbook contenga tutto il codice di cui ha bisogno. |
|
|
|
|
|
|
#30 | |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 869
|
Quote:
__________________
Notebook: MBP 15 i7 Retina, (Mid 2014) |
|
|
|
|
|
|
#31 | ||
|
Member
Iscritto dal: Aug 2008
Messaggi: 178
|
Quote:
quesito 1 =CONTA.SE(C8:C26;">=30")-CONTA.SE(C8:C26;">45") oppure =MATR.SOMMA.PRODOTTO((C8:C26>=30)*(C8:C26<=45)) quesito 2 =MATR.SOMMA.PRODOTTO(1*(C8:C26<D8: D26)) Quote:
=MATR.SOMMA.PRODOTTO(1*(CONTA.SE(D8: D26;C8:C26)=0)) N.B. ho dovuto inserire uno spazio tra : e D altrimenti sarebbe comparsa la faccina Spero di non aver scritto troppe fesserie, sono un po' arrugginito. Ciao |
||
|
|
|
|
|
#32 | |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 869
|
Quote:
Entrambe le funzioni eseguono egregiamente il loro compito. Nonostante l'help dell'excel sulla funzione MATR.SOMMA.PRODOTTO non mi è tanto chiaro come lavorano le tue funzioni: =MATR.SOMMA.PRODOTTO(1*(C8:C26<D8: D26)) e =MATR.SOMMA.PRODOTTO(1*(CONTA.SE(D8: D26;C8:C26)=0)) ma l'importante è che funzionino. Grazie mille ses4.
__________________
Notebook: MBP 15 i7 Retina, (Mid 2014) |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:05.




















