Excel e gli applicativi Microsoft Office Aiuto formula per profilare utenti in base a età e titolo studio

Login Registrati
Stai vedendo 6 articoli - dal 1 a 6 (di 6 totali)
  • Autore
    Articoli
  • #5995 Score: 0 | Risposta

    rarah
    Partecipante

      Buongiorno a tutti,
      seguo il forum da tempo ed ho trovato sempre molto utili i consigli,i tutorial e l'aiuto che viene fornito.
      Adesso mi sono imbattutto in un problema che non riesco a risolvere e per questo chiedo aiuto a voi.
      Ho una tabella contenente:
      - nome persona
      - Titolo di studio (1=lic elementare, 2=lic media, 3=lic superiore)
      - Età

      A questa tabella devo aggiungere una nuova colonna all'interno della quale deve comparire il numero del profilo secondo la seguente logica:

      profilo 1 se età >50 e titolo studio 1
      profilo 2 se età compresa tra 34 e 50 e titolo studio 1
      profilo 3 se età compresa tra 20 e 34 anni e titolo studio 1
      profilo 4 se età <20 e titolo studio 1

      profilo 5 se età >50 e titolo studio 2
      profilo 6 se età compresa tra 34 e 50 e titolo studio 2
      profilo 7 se età compresa tra 20 e 34 anni e titolo studio 2
      profilo 8 se età <20 e titolo studio 2

      profilo 9 se età >50 e titolo studio 3
      profilo 10 se età compresa tra 34 e 50 e titolo studio 3
      profilo 11 se età compresa tra 20 e 34 anni e titolo studio 3
      profilo 12 se età <20 e titolo studio 3

      Sono confuso, penso che dovrei applicare un cerca.vert innestato ad un se o qualcosa del genere.
      Potreste aiutarmi?
      Grazie

      R.

      #5996 Score: 0 | Risposta

      Luca73
      Partecipante
        56 pts

        Le soluzioni sono moteplici, con il file in mano sarebbe più facile

        Assumo che il titolo di studio sia un numero come hai scritto.

        1) puoi usare un scegli sul titoòlo di studio e all'interno di questo crearti dei se annidati

        2) crearti una serie di se annidati

        3) crearti una matrice in cui entrate con un cerca vert e il titolo di studio come indice di colonna.

        Provo a preparare un esempio e telo mando

         

        #5997 Score: 0 | Risposta

        rarah
        Partecipante

          Ciao,

          in allegato il file che ho creato.

          Grazie

          Allegati:
          You must be logged in to view attached files.
          #5999 Score: 0 | Risposta

          Luca73
          Partecipante
            56 pts

            Ciao Ho modificato il Tuo File Creando una matrice anzichè un elenco dei Profili (in riga il Titolo di studio in colonne le età e ho usato un Cerca vert + un confronta. Siccome il confronta (per i titoli di studio) funziona solo se la corrispondenza è esatta, ho inserito una convalida dati nella tabella. Ciao Fammi sapere. PS ho modificato una copia del foglio che ho rinominato Foglio1_LT

            Allegati:
            You must be logged in to view attached files.
            #6001 Score: 0 | Risposta

            albatros54
            Moderatore
              83 pts

              In vba a differenza di luca(saluto), inserisci il codice in nel modulo del foglio1,,è lanci la macro. Il codice si deve si implementare con gli altri valori. ciao

              Sub m()
              Dim wbs As Worksheet
              Dim lastrow As Integer
              Dim rng As Range
              Dim cl As Object
              
              
                  Set wbs = Sheets("foglio1")
                  With wbs
                      lastrow = .Cells(Rows.Count, 4).End(xlUp).Row
                      Set rng = .Range("d2:d" & lastrow)
                      For Each cl In rng
                          Select Case cl
                              Case Is > 50
                                  If cl.Offset(0, -1) = "Licenza elementare" Then
                                      cl.Offset(0, 1) = 1
                                  ElseIf cl.Offset(0, -1) = "Diploma di scuola media inferiore" Then
                                      cl.Offset(0, 1) = 5
                                  ElseIf cl.Offset(0, -1) = "Diploma scuola media superiore" Then
                                      cl.Offset(0, 1) = 9
                                  Else: cl.Offset(0, -1) = "Laurea"
                                      cl.Offset(0, 1) = 13
                                  End If
                              Case 35 To 50
                                  If cl.Offset(0, -1) = "Licenza elementare" Then
                                      cl.Offset(0, 1) = 2
                                  End If
              
                          End Select
                      Next
                  End With
              
              End Sub
              

               

               

              Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
              Sempre il mare, uomo libero, amerai!
              ( Charles Baudelaire )
              #6007 Score: 0 | Risposta

              Luca73
              Partecipante
                56 pts

                Ciao

                se non cambi il tuo file originario basta la seguente formula 

                =SE(D2>50;1;SE(D2>34;2;SE(D2>20;3;4)))+(SE(C2=$K$2;1;SE(C2=$K$6;2;SE(C2=$K$10;3;SE(C2=$K$14;4;"ERRORE"))))-1)*4

                da inserire in E2 e copiare in basso

                Ciao

                Luca

              Login Registrati
              Stai vedendo 6 articoli - dal 1 a 6 (di 6 totali)
              Rispondi a: Aiuto formula per profilare utenti in base a età e titolo studio
              Gli allegati sono permessi solo ad utenti REGISTRATI
              Le tue informazioni: