Excel Forum Per condividere esperienze su Microsoft Excel

Trovare numeri all'interno di stringhe di caratteri e associarne un testo

  • Messaggi
  • OFFLINE
    nickloas
    Post: 15
    Registrato il: 10/04/2018
    Utente Junior
    Excel 2010
    00 26/04/2020 12:54
    Ciao a tutti,
    in base ai numeri contenuti nelle stringhe di caratteri della colonna H, vorrei riportare i seguenti testi nella colonna M:

    1. Se la colonna H contiene i numeri 21, 28, non contiene nessun numero, oppure è vuota, scrivi "Monthly" nella colonna M
    2. Se la colonna H contiene i numeri 5,6, oppure 7 scrivi "Weekly" nella colonna M
    3. Se la colonna H contiene il numero 3 scrivi "Biweekly" nella colonna M
    4. Se la colonna H contiene il numero 2 scrivi "Triweekly" nella colonna M
    5. Se la colonna H contiene il numero 1 scrivi "Daily" nella colonna M

    Come si può fare utilizzando delle formule?

    Grazie
  • OFFLINE
    DANILOFIORINI
    Post: 713
    Registrato il: 15/01/2016
    Città: ROMA
    Età: 51
    Utente Senior
    2016
    00 26/04/2020 13:58
    E se c'è IL numero 14 deve uscire Bimonthly??

    Perchè non l'hai specificato
  • OFFLINE
    DANILOFIORINI
    Post: 714
    Registrato il: 15/01/2016
    Città: ROMA
    Età: 51
    Utente Senior
    2016
    00 26/04/2020 14:19
    Ciao
    in AK2 da trascinare in basso

    =SE.ERRORE(SE(CERCA(1E+100;--STRINGA.ESTRAI(G2;PICCOLO(TROVA({0\1\2\3\4\5\6\7\8\9};G2&"0123456789");1);RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(G2)))))=3;"Triweekly";SE(CERCA(1E+100;--STRINGA.ESTRAI(G2;PICCOLO(TROVA({0\1\2\3\4\5\6\7\8\9};G2&"0123456789");1);RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(G2)))))=2;"Triweekly";SE(CERCA(1E+100;--STRINGA.ESTRAI(G2;PICCOLO(TROVA({0\1\2\3\4\5\6\7\8\9};G2&"0123456789");1);RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(G2)))))=1;"Daily";SE(E(CERCA(1E+100;--STRINGA.ESTRAI(G2;PICCOLO(TROVA({0\1\2\3\4\5\6\7\8\9};G2&"0123456789");1);RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(G2)))))>=5;CERCA(1E+100;--STRINGA.ESTRAI(G2;PICCOLO(TROVA({0\1\2\3\4\5\6\7\8\9};G2&"0123456789");1);RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(G2)))))<=7);"Weekly";SE(O(CERCA(1E+100;--STRINGA.ESTRAI(G2;PICCOLO(TROVA({0\1\2\3\4\5\6\7\8\9};G2&"0123456789");1);RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(G2)))))=21;CERCA(1E+100;--STRINGA.ESTRAI(G2;PICCOLO(TROVA({0\1\2\3\4\5\6\7\8\9};G2&"0123456789");1);RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(G2)))))=28);"Monthly";SE(CERCA(1E+100;--STRINGA.ESTRAI(G2;PICCOLO(TROVA({0\1\2\3\4\5\6\7\8\9};G2&"0123456789");1);RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(G2)))))=14;"Bimonthly"))))));"Monthly")
  • OFFLINE
    DANILOFIORINI
    Post: 715
    Registrato il: 15/01/2016
    Città: ROMA
    Età: 51
    Utente Senior
    2016
    00 26/04/2020 14:50
    Se non vuoi usare una formula cosi lunga

    vai in GESTIONI NOMI->NUOVO-> si apre una finestra nel campo NOME scrivi form nel campo nel campo ambito selezioni Foglio1
    e in fondo nel campo riferito a scrivi

    =CERCA(1E+100;--STRINGA.ESTRAI($G2;PICCOLO(TROVA({0\1\2\3\4\5\6\7\8\9};$G2&"0123456789");1);RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA($G2)))))

    infine in AK2 da trascinare in basso

    =SE.ERRORE(SE(form=3;"Triweekly";SE(form=2;"Triweekly";SE(form=1;"Daily";SE(E(form>=5;form<=7);"Weekly";SE(O(form=21;form=28);"Monthly";SE(form=14;"Bimonthly"))))));"Monthly")
  • ABCDEF@Excel
    00 26/04/2020 14:57
    Complimenti DANILOFIORINI

    L'ho fatto e lo sposto. Dato che 1 è presente in 14 e 21
    Il 2 è presente in 21, suggerisco in AL2 =SE(G3="";"";1*STRINGA.ESTRAI(G3;CONFRONTA(VERO;VAL.NUMERO(1*STRINGA.ESTRAI(G3;RIF.RIGA($1:$9);1));0);CONTA.NUMERI(1*STRINGA.ESTRAI(G3;RIF.RIGA($1:$9);1))))
    Formula matriciale CTRL+SHIFT+INVIO

    In AK2 =SE(O(AL2="";AL2=21;AL2=28);"Monthly";SE(AL2=1;"Daily";SE(AL2=2;"Triweekly";SE(AL2=3;"Biweekly";SE(O(AL2=5;AL2=6;AL2=7);"Weekly";"")))))
    Alla fine della formula tra "", metti quello che desideri per il 14
  • OFFLINE
    nickloas
    Post: 15
    Registrato il: 10/04/2018
    Utente Junior
    Excel 2010
    00 26/04/2020 15:11
    Re:
    Ok, grazie


    DANILOFIORINI, 26/04/2020 14:50:

    Se non vuoi usare una formula cosi lunga

    vai in GESTIONI NOMI->NUOVO-> si apre una finestra nel campo NOME scrivi form nel campo nel campo ambito selezioni Foglio1
    e in fondo nel campo riferito a scrivi

    =CERCA(1E+100;--STRINGA.ESTRAI($G2;PICCOLO(TROVA({0\1\2\3\4\5\6\7\8\9};$G2&"0123456789");1);RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA($G2)))))

    infine in AK2 da trascinare in basso

    =SE.ERRORE(SE(form=3;"Triweekly";SE(form=2;"Triweekly";SE(form=1;"Daily";SE(E(form>=5;form<=7);"Weekly";SE(O(form=21;form=28);"Monthly";SE(form=14;"Bimonthly"))))));"Monthly")