Excel Forum Per condividere esperienze su Microsoft Excel

sommare

  • Messaggi
  • OFFLINE
    GiacomoBastone
    Post: 1
    Registrato il: 13/04/2017
    Città: MILANO
    Età: 28
    Utente Junior
    2010
    00 13/04/2017 14:32
    Salve,

    espongo il problema,

    ho due colonne (entrambe contenenti valori testuali)

    nella prima ho celle i cui valori sono talvolta uguali
    nella seconda invece ho valori diversi tra di loro

    es.
    x1 x2
    1 Variabile
    1 testuale
    3 testuale
    3 vuota
    3 numero
    4 codice
    5 algoritmo
    5 ordinale


    ho bisogno di chiedere ad excel di svolgere la seguente operazione: se nella variabile x1 trovi celle col contenuto uguale sommane il valore corrispondente della variabile x2, in altre parole vorrei un risultato del genere....



    es.
    x1 x2
    1 Variabile testuale
    3 testuale vuota numero
    4 codice
    5 algoritmo ordinale



    Grazie mille per chi mi aiuterà!!!!
  • OFFLINE
    alfrimpa
    Post: 3.081
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 13/04/2017 14:47
    Ciao Giacomo

    Allega un file di esempio con i dati ed il risultato desiderato inserito a mano.

    Alfredo
  • OFFLINE
    GiacomoBastone
    Post: 1
    Registrato il: 13/04/2017
    Città: MILANO
    Età: 28
    Utente Junior
    2010
    00 13/04/2017 15:17
    Carissimo,

    grazie mille.

    Ti allego il file, nel primo foglio ci sono i dati "grezzi" nel secondo il modo in cui vorrei sistemarli.
  • OFFLINE
    alfrimpa
    Post: 3.082
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 13/04/2017 15:26
    Scusa ma sei sicuro di aver allegato il file giusto.

    Nel tuo file non vedo nessun nesso tra i due fogli presenti né con la tua iniziale domanda.

    Insomma non ho capito niente.

    Alfredo
  • OFFLINE
    GiacomoBastone
    Post: 2
    Registrato il: 13/04/2017
    Città: MILANO
    Età: 28
    Utente Junior
    2010
    00 13/04/2017 15:43
    ecco il file
    [Modificato da GiacomoBastone 13/04/2017 16:20]
  • OFFLINE
    alfrimpa
    Post: 3.087
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Master
    Excel 365
    00 13/04/2017 18:27
    Continuo a non capire assolutamente niente di quello che hai detto e scritto comunque ti allego un file dove ho cercato di interpretare (e non so se sono riuscito)

    Nel file è inserita questa funzione (scritta in VBA) che dovrebbe fare quello che chiedi:

    vb
    Function Raggruppa(rng As Range, a)
    Dim cel As Range
    For Each cel In rng
        If cel.Value = a Then
            Raggruppa = Raggruppa & cel.Offset(0, 1).Value & " "
        End If
    Next cel
    End Function
    


    Sul foglio se in A1 c'è la variabile da esaminare ed i dati sono in a10:b21 in una cella scrivi

    vb
    =Raggruppa(A10:B21;A1)


    E ti verranno restituite tutte le voci pertinenti alla voce in A1.

    Se la modifichi la funzione si adegua automaticamente come una qualsiasi funzione di Excel.

    P.S. E poi cosa c'entra il titolo che hai dato alla discussione "sommare" con il problema che hai esposto? Anche la spiegazione che hai dato nel primo posto mi sembra completamente diversa con tutto il resto (nel file che hai allegato non c'è nessun numero da sommare).

    Mi sembra che ti debba chiarire un po' le idee prima di fare domande sul forum.
    [Modificato da alfrimpa 13/04/2017 18:31]

    Alfredo
  • OFFLINE
    locatevaresino
    Post: 1.976
    Registrato il: 21/03/2008
    Città: LOCATE VARESINO
    Età: 76
    Utente Veteran
    2007 / 13
    00 14/04/2017 00:38
    ciao

    la richiesta giusta era Concatenare()
    intanto saluto Alfredo
    comunque ti posto una macro() o Sub() da inserire nel modulo foglio5
    questi riporta i tuoi dati in foglio2 iniziando da riga 20 per non modificare i tuoi
    PS attenzione a Testo a capo

    Sub ConcatenaA_B_inF2AB()
    Dim i As Long, prog As Variant
    Dim Nriga As Long
    Dim Stringa As String, Sh As String
    Sh = "Foglio2"
    prog = Cells(6, 1).Value
    Stringa = ""
    Nriga = 20
    For i = 6 To Cells(Rows.Count, 1).End(xlUp).Row
    Stringa = Stringa & " " & Cells(i, 2)
    If prog <> Cells(i + 1, 1) Then
    Sheets(Sh).Cells(Nriga, 1) = prog
    Sheets(Sh).Cells(Nriga, 2) = Trim(Stringa)
    prog = Cells(i + 1, 1)
    Nriga = Nriga + 1
    Stringa = ""
    End If
    Next i
    End Sub

    riallego il tuo file con inserita la sub()

    Ciao da locate
    excel 2007 / 13