Cercare in un elenco



  • Cercare in un elenco
    di Ing.francesco (utente non iscritto) data: 15/11/2010

    Buonasera a tutti,
    vi espongo il mio problema:

    ho una tabella (3x2) in cui a delle righe di testo sono associati dei valori, ad esempio:

    francesco 001
    antonio 007
    cristian 004

    vorrei inserire in una seconda tabella così strutturata:

    francesco __
    antonio __
    antonio __
    cristian __
    francesco __
    (dove l' underscore è la seconda colonna in cui dovrei inserire la formula)

    la possibilità di scrivere nella casella accanto al nome il codice numerico corrispondente previsto nella prima tabella.
    per ottenere questo risultato:

    francesco 001
    antonio 007
    antonio 007
    cristian 004
    francesco 001


    credo che sia la funzione cerca.vert a potermi aiutare ma non riesco a capire come. ci sarà qualcosa che mi sfugge.
    vi ringrazio in anticipo per l'aiuto.

    e complimenti per l'utilità del sito



  • di Franco_44 (utente non iscritto) data: 15/11/2010

    Ciao
    diciamo che i nomi devono essere univoci e che sono in a2:a10 e i codici in b2:b10. in c2 digiti
    il codice di cui sotto e trascini fino a c10
    ( il range lo devi adattare alle tue esigenze)
     
    =CERCA.VERT($A2;$A$2:$B$10;2;FALSO)



  • di Ing. francesco (utente non iscritto) data: 16/11/2010

    Esattamente...grazie mille!!ci ero arrivato ieri ma la tua spiegazione è stata perfetta.
    adesso però si pone un altro problema.
    attraverso calcoli che non ti sto a dire ottengo una tabella 2xn di questo tipo:

    120; 1280
    11; 1356
    134; 135
    0; 0
    166; 1780
    180; 1435
    0;0

    con i valori diversi da zero variabili e senza nesso di casualità tra loro. avrei bisogno di trovare una formula che mi somma tutti i numeri della seconda colonna compresi tra due valori nulli.
    in pratica avrei bisogno del subtotale dei numeri compresi tra i due zeri.
    grazie in anticipo per la collaborazione.



  • di Ing. francesco (utente non iscritto) data: 16/11/2010

    Esattamente...grazie mille!!ci ero arrivato ieri ma la tua spiegazione è stata perfetta.
    adesso però si pone un altro problema.
    attraverso calcoli che non ti sto a dire ottengo una tabella 2xn di questo tipo:

    120; 1280
    11; 1356
    134; 135
    0; 0
    166; 1780
    180; 1435
    0;0

    con i valori diversi da zero variabili e senza nesso di casualità tra loro. avrei bisogno di trovare una formula che mi somma tutti i numeri della seconda colonna compresi tra due valori nulli.
    in pratica avrei bisogno del subtotale dei numeri compresi tra i due zeri.
    grazie in anticipo per la collaborazione.


  • Somma valori fra zeri
    di Canapone (utente non iscritto) data: 16/11/2010


    ciao, la formula dovrebbe sommare tutti i valori fra il primo zero e l'ultimo (secondo nell'esempio)

    =somma(indiretto("b"&confronta(0;b2:b11;0)+1&":b"&max(se((b2:b11)=0;rif.riga(b2:b11)))))

    matriciale da confermare con control+maiusc+enter

    nell'esempio b2:b11 è l'intervallo di numeri (non spazi vuoti) preso a riferimento.

    saluti



  • di Franco_44 (utente non iscritto) data: 16/11/2010

    Ciao canapone
    la tua soluzione, giusta, rende il totale di tutti i valori diversi da zero; allora potrebbe utilizzare la funzione somma che da lo stesso risultato.
    io credo che francesco voglia le somme parziali di ogni range tra 2 zeri, per cui, per le mie conoscenze, si può ottenere con una colonna di appoggio e una macro. sentiamo cosa dice francesco


  • Valori fra due zeri
    di Canapone (utente non iscritto) data: 16/11/2010


    ciao franco,

    ho prima pensato di sommare le cifre a partire da quella dopo il primo zero sino alla cifra prima del secondo zero. poi ho pensato che forse voleva la somma di tutte le cifre che cadevano fra due zeri

    nella serie

    1;4;0;2;2;2;0;2;0;3

    la formula dovrebbe (incrociando le dita) restituire solo 8, ignorando tutti i numeri non confinati fra due zero.

    provo ad allegare un esempio: la somma riconosce solo i numeri gialli.





  • di Locate (utente non iscritto) data: 16/11/2010

    Ciao
    intanto saluto canapone
    prova a vedere anche il file di canapone a cui ho allegato una macro che fa i calcoli solo a zone precise sommando solo quelli che trova tro uno zero di inizio e intermediario saltando poi al prossimo tralasciando quelli non facente parte del gruppo
    ciao da locate
     
    Sub zona_zero()
    Dim somma, flag
    somma = 0
    flag = 0
    For i = 2 To 100
    If Cells(i, 2) = 0 Then
    Select Case flag
    Case 0
    flag = 1
    Case 1
    flag = 0
    End Select
    End If
    If flag = 1 Then
    somma = somma + Cells(i, 2)
    End If
    Next i
    Range("E2") = somma
    End Sub



  • di Franco_44 (utente non iscritto) data: 16/11/2010

    Cia silvano
    ho allegato un file con degli appunti dentro perche mi sembra che ci sia qualcosa che non torna. vuoi provare a dare un'occhiata e dirmi dove è l'errore
    un saluto a te e a canapone



  • di Locate (utente non iscritto) data: 16/11/2010

    Ciao franco
    la mia macro inizia il conteggio alla riga 2 perche e stata creata su dati del file di canapone i quali partivano dalla riga 2
    -------
    for i = 2 to 100
    if cells(i, 2) = 0 then
    ---- nel tuo file devi sostituire il ciclo for con 1 to 100 perche tu parti da riga 1,
    -----
    for i = 1 to 100
    if cells(i, 2) = 0 then
    ---
    l'unico problema e che bisognerebbe far calcolare a vb dove e posto l'ultimo zero perche' in caso che gli zeri sono dispari e il ciclo for e' impostato per un numero questi non si ferma ma calcola anche quelli che vengono dopo lo zero ma non fanno parte di un inizio zero e fine zero, comunque vedro di risolvere anche questo se questo sara il problema
    ciao da locate



  • di Locate (utente non iscritto) data: 17/11/2010

    Ciao franco ciao canapone
    intanto che aspettiamo francesco ho elaborato ora la macro che fa il lavoro che ho preposto, quello di cercare l'ultimo zero e di calcolare il tutto escludendo quello che non viene compreso tra due zeri
    ciao da locate
     
    Sub zona_zero()
    Dim X, somma, flag
    X = 0 ''posizione ultimo 0
    somma = 0
    flag = 0
    
    For z = Range("B" & Rows.Count).End(xlUp).Row To 1 Step -1
      X = z
      If Cells(z, 2) = 0 Then Exit For
    Next z
    
    For i = 1 To X
      If Cells(i, 2) = 0 Then
       Select Case flag
        Case 0
         flag = 1
        Case 1
         flag = 0
       End Select
      End If
      If flag = 1 Then
        If IsNumeric(Cells(i, 2)) Then somma = somma + Cells(i, 2)
      End If
    Next i
    Range("D2") = somma
    End Sub