Condividi:        

Funzione su dati selezionati

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

Funzione su dati selezionati

Postdi shadowplay » 09/05/11 16:45

Ciao a tutti,
avrei bisogno di aiuto per il mio problema in excel:
ho una tabella con 2 colonne (A e B), nella prima ci sono dei codici che identificano un prodotto, nella seconda le quantità vendute.
I codici sono ordinati, nel senso che posso avere 5 righe dello stesso codice con le relative quantità vendute nella colonna B, poi 7 righe di un altro codice, 9 di un altro ancora (è un esempio, nella realtà ho circa 200 codici e 1500 righe), ma i codici sono già vicini tra loro, nel senso che quando nella riga successiva trovo un codice diverso, so per certo che il codice precedente non si ripresenterà più nel seguito della tabella.
Vorrei applicare una funzione di tipo statistico, tipo curtosi o asimmetria, sulle quantità vendute, per ogni codice. Il mio problema è come creare la funzione statistica sulle vendite del primo codice (5 voci), del secondo (7 voci) e del terzo (9), in modo quindi che la suddetta funzione agisca sulle vendite, separatamente, di ogni singolo codice prodotto.
In pratica non riesco a creare una funzione che selezioni gli argomenti (le vendite) su cui applicare la funzione, per ciascun codice nella colonna A.
Vi ringrazio per l'aiuto.
shadowplay
Newbie
 
Post: 7
Iscritto il: 07/05/11 21:45

Sponsor
 

Re: Funzione su dati selezionati

Postdi Avatar3 » 09/05/11 17:05

Hai provato con una tabella Pivot?
Selezioni le colonne e dal Munu Dati selezioni "Rapporto Tabella Pivot e grafico Pivot..."

Ciao
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: Funzione su dati selezionati

Postdi shadowplay » 10/05/11 13:25

In effetti con le tabelle pivot funziona, ma mi sarebbe ancora più utile una funzione che selezioni i codici.
Ciao
shadowplay
Newbie
 
Post: 7
Iscritto il: 07/05/11 21:45

Re: Funzione su dati selezionati

Postdi Anthony47 » 10/05/11 15:20

Ciao e benvenuto nel forum.
Quindi ti servirebbe un qualcosa che ti restituisca i valori di col B che appartengono a un codice che imposti di volta in volta.
-se i codici sono in col A e le quantita' in col B
-se in D2 scrivi un codice
-allora questa formula ti restituisce l' insieme dei valori di col B che corrispondono a quel codice:
SCARTO($A$1;CONFRONTA(D2;A:A;0)-1;1;CONTA.SE(A:A;D2);1)
Quindi la tua formula sara'
Codice: Seleziona tutto
=Curtosi(SCARTO($A$1;CONFRONTA(D2;A:A;0)-1;1;CONTA.SE(A:A;D2);1))

Se in D2 e sottostanti hai creato l' elenco dei codici (ad esempio tramite Filtro avanzato) dopo aver scritto la formula in D2 la copi verso il basso per avere il dato su tutti i codici.

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

Re: Funzione su dati selezionati

Postdi shadowplay » 11/05/11 15:51

Ciao e grazie per la risposta ma temo di non aver spiegato bene il problema, e forse nemmeno compiutamente.
Questo è il file che ho, come dicevo nel mio primo post i codici già ordinati (col. A), in col. B ci sono le vendite.

A B
cod1 1000
cod1 2100
cod2 1500
cod2 2100
cod2 1700
cod3 2800
cod3 1400

a me servirebbe, in un nuovo foglio di lavoro:

asimmetria (vendite di cod1)
asimmetria (vendite di cod2)
asimmetria (vendite di cod3)

Tu dirai di calcolarmi l'indice di asimmetria da solo, mettendo in una colonna C le formule =asimmetria(1000,2100) per il cod1, =asimmetria(1500,2100, 1700) per cod2 e così via, ma il fatto è che nella realtà i codici sono più di 200 e inoltre questo file excel è il risultato di un'importazione di un file .txt che mi viene mandato per email 3-4 volte a settimana, ogni volta dovrei starmi a calcolare manualmente l'asimmetria delle uscite di 200 prodotti, quindi cercavo una formula che le calcolasse in automatico ogni volta che importo i dati con la procedura "Aggiorna dati".
Ciao e grazie.

Francesco
shadowplay
Newbie
 
Post: 7
Iscritto il: 07/05/11 21:45

Re: Funzione su dati selezionati

Postdi ricky53 » 12/05/11 00:54

Ciao,
con una macro (sei n grado di produrla ?) scrivi, in un altro foglio, i dati con la seguente struttura (partendo dalla colonna "A", riga "2")

cod1 - 1000 - 2100
cod2 - 1500 - 2100 - 1700
cod3 - 2800 - 1400
... - ... - ... - ... - ... - ...
... - ... - ... - ... - ... - ...

poi in "AA2" scrivi
Codice: Seleziona tutto
=ASIMMETRIA(B2:Z2)

copi questa formula verso il basso fino a che esistono codici nella colonna "A"
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Funzione su dati selezionati

Postdi shadowplay » 12/05/11 05:54

Purtroppo non conosco le macro, per questo cercavo in pratica una funzione che selezionasse gli argomenti per la funzione "asimmetria".
Ciao
shadowplay
Newbie
 
Post: 7
Iscritto il: 07/05/11 21:45

Re: Funzione su dati selezionati

Postdi ricky53 » 12/05/11 11:53

Ciao,
se la trasposizione che ti ho proposto e la formula vanno bene alla macro ci posso pensare io.

Fai Sapere.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Funzione su dati selezionati

Postdi shadowplay » 12/05/11 15:00

Ciao,
si, vanno bene. A quel punto infatti gli argomenti della funz. asimmetria sarebbero raggruppati per ciascun singolo codice.
Grazie 1000

Francesco
shadowplay
Newbie
 
Post: 7
Iscritto il: 07/05/11 21:45

Re: Funzione su dati selezionati

Postdi ricky53 » 12/05/11 17:29

Ciao,
questa sera vedo di inviarti una macro che traspone i dati.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Funzione su dati selezionati

Postdi ricky53 » 12/05/11 23:27

Ciao,
come promesso ecco il codice che traspone i dati.
Codice: Seleziona tutto
Option Explicit

Sub Trasponi_Dati()
    Dim Ws1 As Worksheet, Ws2 As Worksheet
    Dim UR1 As Integer, UR2 As Integer, UC2 As Integer, RR As Integer
   
    Application.ScreenUpdating = False
    Application.Calculation = xlManual
   
    UR2 = 1: UC2 = 1
    Set Ws1 = Sheets("Foglio1"): Set Ws2 = Sheets("Foglio2")
    Ws2.Cells.ClearContents
    UR1 = Ws1.Range("A" & Rows.Count).End(xlUp).Row
   
    For RR = 2 To UR1

        If Ws1.Cells(RR, 1) = Ws1.Cells(RR - 1, 1) Then
            UC2 = UC2 + 1
            Ws2.Cells(UR2, UC2).Value = Ws1.Cells(RR, 2).Value
        Else
            UR2 = UR2 + 1: UC2 = 2
            Ws2.Cells(UR2, 1).Value = Ws1.Cells(RR, 1).Value
            Ws2.Cells(UR2, 2).Value = Ws1.Cells(RR, 2).Value '
        End If
    Next RR
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
   
    Set Ws1 = Nothing: Set Ws2 = Nothing
End Sub


Se le righe da elaborare fossero molte sarebbe meglio utilizzare una versione del codice che lavora con delle matrici ed alla fine scrivere i dati sul "Foglio2"
invece di utilizzare le celle del "Foglio2" anche per le elaborazioni come fa questo codice che ti ho inviato.

Fammi sapere.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Funzione su dati selezionati

Postdi shadowplay » 14/05/11 03:36

Ciao Ricky
oggi non ho avuto tempo di provare il codice VBA, lo faccio questo finesettimana e ti faccio senz'altro sapere.
Grazie 1000 già da subito per il tempo che ci hai dedicato.

Francesco
shadowplay
Newbie
 
Post: 7
Iscritto il: 07/05/11 21:45

Re: Funzione su dati selezionati

Postdi Anthony47 » 16/05/11 23:31

Pero' non ho capito in che cosa quanto avevo suggerito (viewtopic.php?f=26&t=91573&p=522658#p522410) non e' idoneo.

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

Re: Funzione su dati selezionati

Postdi shadowplay » 17/05/11 04:17

Ciao Ricky
la trasposizione funziona alla perfezione.
Ti ringrazio moltissimo
Mi sa che mi devo decidere a studiarmi almeno le basi di VBA.
Grazie ancora

Francesco

X Anthony: forse nulla, l'avevo provato frettolosamente, il tuo codice. Adesso riprovo e ti so dire.
Grazie anche a te
shadowplay
Newbie
 
Post: 7
Iscritto il: 07/05/11 21:45

Re: Funzione su dati selezionati

Postdi ricky53 » 17/05/11 17:14

Ciao,
come si dice in questi casi: è stato un piacere.
Alla prossima.

Le prove di quanto ti ha suggerito Anthony come stanno andando ?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia


Torna a Applicazioni Office Windows


Topic correlati a "Funzione su dati selezionati":


Chi c’è in linea

Visitano il forum: Nessuno e 137 ospiti