Risultati da 1 a 13 di 13

Discussione: Testo con dati in percentuale al suo interno



  1. #1
    L'avatar di tk71
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Svizzera
    Messaggi
    108
    Versione Office
    Excel 2007
    Likes ricevuti
    0
    Likes dati
    59

    Testo con dati in percentuale al suo interno

    Ciao a tutti,

    mi sono imbattuto su un articolo che parlava di IVA in Europa.
    Mi ha incuriosito al punto che…

    Chiedo troppo se esiste una procedura per mettere in ordine crescente o descrescente di %, estrappolando da un testo del genere? Oppure se potete indirizzarmi a domade gia`fatte in Forum.

    Mi scuso sin d`ora se non sono nel settore giusto, ma leggendo cifre in % ho messo in exel . Semmai avvisate che ripeto tutto in WORD.

    Ungheria con il suo 27%, Lussemburgo con il suo 15%, Svezia e la Danimarca con il suo 25%, Olanda con il suo 21%, Cipro, Germania con il suo 19%, Finlandia, Romania con il suo 24%, Grecia, Irlanda, Polonia, Portogallo con il loro 23%, Slovenia, Italia con il suo 22%, Belgio, Repubblica Ceca, Spagna, Lettonia, Lituania, Austria, Bulgaria, Estonia, Slovacchia, Regno Unito, Francia con il suo 20%, Malta con il suo 18%.

    Grazie 1000 a tutti a chi mi aiuta.

  2. #2
    L'avatar di Mikelius
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Acireale
    Messaggi
    10
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    2
    Non so se esiste un metodo più efficace, ma io ho fatto in questo modo:

    Con word ho sostituito le "," in "andata a capo" (cambia "," in "^l" ) , in questo modo ho in colonna i vari paesi e la loro I.V.A.
    Dopo ho copiato la colonna in excell (manualmente ho aggiunto le aliquote dove non c'erano ) , tramite:

    =DESTRA(A1;3)

    in una nuova colonna ho riportato la % (visto che sono gli ultimi 3 caratteri)

    Infine ordini le due colonne con l'ordinamento personalizzato facendo capo alla colonna con la sola percentuale.

  3. #3
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3207
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Salve a tutti
    Inserisci in A1 il testo e in un modulo standard la seguente macro da associare ad un pulsante Modulo
    Codice: 
    Option Explicit
    Sub estraz()
    Dim testo As String, lng As Integer, a As Integer, i As Integer
        testo = Cells(1, 1).Text
        lng = Len(testo)
        a = 3
        For i = 1 To lng
            If Asc(Mid(testo, i, 1)) = 37 Then
                Cells(a, 3) = Mid(testo, i - 2, 3)
                a = a + 1
            End If
        Next i
    End Sub
    Ti elencherà nella colonna C le percentuali

    Ciao,
    Mario

  4. #4

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7118
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2060
    Likes dati
    1298
    Visto che hai excel 2007 puoi usare questo metodo.
    Vai nel gruppo STRUMENTI in DATI e clicchi su TESTO IN COLONNE, scegli la conversione guidata e fai click su DELIMITATO e AVANTI scegliendo come criterio nella casella di controllo la percentuale %, vai AVANTI e scegli la destinazione e poi fine.
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  5. #5

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2807
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    978
    Propongo una soluzione simile a Marius(:43:)
    Codice: 
    Option Explicit
    
    
    Sub Estrai()
    Dim Lng As Integer
    Dim iRow As Integer
    Dim iCount As Integer
    Dim Inizio As Integer
    Dim Testo As String
    
    
        Testo = Range("a1")
        Lng = Len(Testo)
        Inizio = 1
        iRow = 2
        
        For iCount = 1 To Lng
            If Mid(Testo, iCount, 1) = "," Then
                Cells(iRow, 1) = Mid(Testo, Inizio, iCount - Inizio)
                iRow = iRow + 1
                Inizio = iCount + 2
            End If
        Next iCount
        
    End Sub
    in A1 il testo

  6. I seguenti utenti hanno dato un "Like"


  7. #6

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7118
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2060
    Likes dati
    1298
    Propongo un'ulteriore soluzione

    Codice: 
    Option Explicit
    Sub sringa_estrai()
    	Dim wks As Worksheet, frase As Range
    	Dim y As Integer, Testo As Variant, Riga As Integer
    	Set wks = Worksheets("Foglio1")
    	wks.Range("A2:A20").ClearContents
    	Set frase = wks.Range("A1")
    	Testo = Split(frase, "%,")
    	Riga = 2
    	For y = LBound(Testo) To UBound(Testo)
    		If Testo(y) <> "" Then
    			Cells(Riga, 1) = Testo(y) & "%"
    			Riga = Riga + 1
    		End If
    	Next
    	wks.Cells.Replace What:=".%", Replacement:=""
    End Sub
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  8. I seguenti utenti hanno dato un "Like"


  9. #7
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133
    Ciao tk71, spero d'aver capito bene, comunque sia cerco di dare un modesto contributo con le formule alla risoluzione del tuo problema, al fine di stimolare gli amici del forum a fare di meglio di ciò che sto per proporti.
    Supposto il testo da analizzare posto in B1, con l'aiuto di due colonne d'appoggio, (sempre se ho capito bene) la "A" e la "B", ottengo in colonna "O" il risultato sperato. (Sempre se ho capito bene).
    In altri termini utilizzo:

    In A3:
    =NUMERO.VALORE(DESTRA(ANNULLA.SPAZI(SE(RIGHE($B$3:$B3)=1;STRINGA.ESTRAI(SOSTITUISCI($B$1;"%,";RIPETI(" ";LUNGHEZZA($B$1)));1;LUNGHEZZA($B$1));STRINGA.ESTRAI(SOSTITUISCI(SOSTITUISCI($B$1;"%,";RIPETI(" ";LUNGHEZZA($B$1)));"%.";"");(RIGHE($B$3:$B3)-1)*(LUNGHEZZA($B$1));(LUNGHEZZA($B$1)+1))));2))

    In B3:
    =ANNULLA.SPAZI(SE(RIGHE($B$3:$B3)=1;STRINGA.ESTRAI(SOSTITUISCI($B$1;"%,";RIPETI(" ";LUNGHEZZA($B$1)));1;LUNGHEZZA($B$1));STRINGA.ESTRAI(SOSTITUISCI(SOSTITUISCI($B$1;"%,";RIPETI(" ";LUNGHEZZA($B$1)));"%.";"");(RIGHE($B$3:$B3)-1)*(LUNGHEZZA($B$1));(LUNGHEZZA($B$1)+1))))

    ed infine in O3:
    =INDICE($B$3:$B$12;GRANDE(SE(($A$3:$A$12=GRANDE($A$3:$A$12;RIGHE($B$3:B3)));(RIF.RIGA($B$3:$B$12)-RIF.RIGA($B$3)+1));1))&"%"

    Nella speranza di aver capito bene, rimango fiducioso in attesa di un tuo riscontro.
    Allego il file di prova.
    Ciao.
    File Allegati File Allegati

  10. I seguenti 2 utenti hanno dato un "Like" a pkrome59 per questo post:


  11. #8
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133
    Ciao, per un errore d'inserimento non tenere conto dell'allegato al post #7.
    Allego il file rivisto.
    ciao.

  12. #9
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133
    Ciao, per un errore d'inserimento non tenere conto dell'allegato al post #7.
    Allego il file rivisto.
    ciao.

    Chiedo scusa ma non riesco a capire perché non mi allega il file aggiornato.

  13. #10
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133
    Stavolta ci sono riuscito, ad inserire il file corretto.
    Ciao.
    File Allegati File Allegati

  14. #11

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1011
    Versione Office
    .
    Likes ricevuti
    365
    Likes dati
    0
    Ciao,

    non ho capito se il problema postato sia solo un esempio od il problema completo, comunque partecipo anch'io a questo "brain storming" con un codice che, tanto per cambiare, fa uso delle regex:
    Codice: 
    '----------------------------------------------------------------------------------------------------------------------------
    ' Procedure : Stat
    ' Author    : scossa
    ' Date      : 03/03/2016
    ' Purpose   : http://www.forumexcel.it/forum/6-domande-su-excel-in-generale/2396-testo-con-dati-in-percentuale-al-suo-interno
    '----------------------------------------------------------------------------------------------------------------------------
    '
    Sub Stat()
      
      Const sPattern As String = "((\w*,?\s?)*con il \w* )(\d{1,3}),*"
      Dim oRE As Object
      Dim oMatchColl As Object
      Dim nTokens As Long
      Dim rng As Range
      Dim sTesto As String
      Dim sDesc As String
      Dim j As Long
        
      On Error GoTo exitSubRe_
      Set rng = ActiveCell
      sTesto = rng.Value
      If sTesto = "" Then Err.Raise vbObjectError + 513, Description:="Nessun testo nella cella attiva!"
      Set oRE = CreateObject("vbscript.regexp")
      With oRE
        .Global = True
        .IgnoreCase = True
        .Pattern = sPattern
        Set oMatchColl = .Execute(" ," & sTesto)
        nTokens = oMatchColl.Count
        If nTokens = 0 Then Err.Raise vbObjectError + 513, Description:="pattern non presente nella cella attiva!"
        For j = 0 To nTokens - 1
          sDesc = Trim(Mid(oMatchColl.Item(j).submatches(0), 3, 999))
          sDesc = Replace(sDesc, " con il suo", "")
          sDesc = Replace(sDesc, " con il suo", "")
          rng.Offset(j + 2, 0).Value = sDesc
          rng.Offset(j + 2, 1).Value = oMatchColl.Item(j).submatches(2) / 100
        Next
      End With
      
      'ordino l'output dalla percentuale maggiore alla minore
      Set rng = rng.Offset(2, 0).Resize(nTokens, 2)
      rng.Columns(1).HorizontalAlignment = xlRight
      rng.Columns(2).NumberFormat = "#%"
      With rng.Parent.Sort
        .SortFields.Clear
        .SortFields.Add Key:=rng.Columns(2) _
            , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
        .SetRange rng
        .Apply
      End With
      
    exitSubRe_:
      Set oRE = Nothing
      Set oMatchColl = Nothing
      Set rng = Nothing
      If Err.Number <> 0 Then
        MsgBox Err.Description, vbCritical, "Errore"
      End If
      
    End Sub
    Certo che se l'esempio rappresenta il problema completo si faceva prima a farlo manualmente in un text editor.
    Ultima modifica fatta da:scossa; 05/03/16 alle 00:04
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  15. I seguenti 4 utenti hanno dato un "Like" a scossa per questo post:


  16. #12
    L'avatar di tk71
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Svizzera
    Messaggi
    108
    Versione Office
    Excel 2007
    Likes ricevuti
    0
    Likes dati
    59
    Ciao Scossa, grazie x il tuo intervento.

    Si il testo di post 1 e`cosi come trovato nel WEB e copiato.

    Certo che se l'esempio rappresenta il problema completo si faceva prima a farlo manualmente in un text editor.

    Ma qui la tua affermazione, mi incuriosisce non poco.
    Infatti del text editor non so cosa sia e dove si trova nel mio XP “ 2007”.

    Ho 2 domande da farti,…

    Avresti la gentilezza di segnalarmi, o LINK o parti gia`trattate nel FORUM per capirci un attimo?
    Il testo post 1, con “text editor” si puo`applicare sia word che exel, oppure ce qualche limitazione?


    Garzie 1000 ancora. Qui ci sono compiti a go-go!

  17. #13
    L'avatar di tk71
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Svizzera
    Messaggi
    108
    Versione Office
    Excel 2007
    Likes ricevuti
    0
    Likes dati
    59
    Ciao PKrome59,...
    Nella speranza di aver capito bene, rimango fiducioso in attesa di un tuo riscontro.


    Tra tutto il tuo intervento grazie "eccome" per i stimoli ad altri, oltre a dirti che debbo vederci meglio alle tue soluzioni! Sono un po lento.

    Certo che hai capito bene ! Solo che io sono indietro qualche anno luce sui vs. suggerimenti.

    Grazie 1000 per il tuo intervento¨!

Discussioni Simili

  1. [Risolto] Testo interno di una "Shape" preso da una cella
    Di atievoli nel forum Domande su Excel VBA e MACRO
    Risposte: 2
    Ultimo Messaggio: 11/02/17, 10:51
  2. Risposte: 2
    Ultimo Messaggio: 15/12/16, 11:00
  3. [Risolto] estrarre parte di testo all'interno di una frase ogni volta diversa
    Di Samuela nel forum Domande su Excel in generale
    Risposte: 19
    Ultimo Messaggio: 02/10/16, 09:44
  4. Risposte: 2
    Ultimo Messaggio: 14/03/16, 06:09
  5. Ricerca testo all'interno di una tabella
    Di Tomelc64 nel forum Domande su Excel in generale
    Risposte: 5
    Ultimo Messaggio: 02/07/15, 13:40

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •