PDA

Visualizza versione completa : ordinare un dizionario in excel


qwerty2
09-10-2016, 14.21.35
Premetto che sono un novellino.
Dunque ho un file dizionario it-cn da 40MB, con decine di migliaia di voci e, vorrei sapere come ordinarli automaticamente in modo da avere parole italiane nella riga A e parole cinesi nella riga B
queste le regole da seguire :

1)eliminare righe vuote.

2)successivamente abbiamo 2 casi:
caso A:nella cella si trova un segmento di termini in ita e la sua traduzione si trova nella riga successiva:
2a)se si incontra celle con solo parole occidentali allora sposta il contenuto della riga successiva nella colonna a destra della riga precedente

caso b:nella cella si trova sia il segmento di termini in ita che la sua traduzione(in blue)
2b)se la cella contiene parole occidentali e cinesi allora sposta parole cinesi(in blue) nella colonna a destra.

3)se la cella contiene differenti parole cinesi(separati da una virgola o un 'punto e virgola') allora si sposta le parole eccedenti nelle colonne a destra.

4)eliminare righe che hanno stesso identico contenuto(doppioni).

esempi:

LoryOne
10-10-2016, 11.57.41
Interessante...Certo che di lavoro ce n'è e non poco.
Per eliminare le righe vuote, esegui un filtro automatico avendo prima selezionato tutte le righe.
Per quanto riguarda spostare il testo cinese su un'altra colonna, mi pare di notare che esso sia identificato da un separatore che molto probabilmente sembrano due spazi, ma non lo sono.
Cos'è quel separatore ?

qwerty2
10-10-2016, 12.50.27
in realta il file è piu incasinato di quanto ho descritto,ora, sono riuscito a ripulirlo parzialmente.
e i problemi attuali sono:
1) come eliminare TUTTI i caratteri(lettere ,simboli e numeri) non cinesi dalla seconda colonna in poi
2)le parole cinesi e ita sono appiccicati (senza spazio),come separarli tutti in una volta?
3)in un altro caso devo eliminare tutti e solo i caratteri cinese
alcuni mi hanno suggerito il regexp e udf,ma mi sembrano complicati
http://www.filedropper.com/dainviare3

LoryOne
10-10-2016, 17.14.45
Il consiglio di utilizzare regex è sicuramente valido.
Se tu cerchi on line ad esempio "extract chinese text with regex",trovi informazioni molto utili.
Noterai che il contenuto di una cella di Excel, comunemente chiamata stringa, contiene caratteri unicode (ideogrammi cinesi) mischiati ad altri di tipo arabico.
regex è in grado, attraverso un pattern specifico, di estrarre gli unicode dagli arabici e viceversa.

qwerty2
10-10-2016, 20.15.48
regex è fin troppo tecnico,a malapena capisco le teorie di base sulla pagina di wikipedia in italiano,figurati la roba scritta in inglese da programmatori o altri professionisti del settore.
non ce qualcosa di gia fatto?tipo della codice da copiare per usarlo in macro di excel??

Alexsandra
10-10-2016, 20.27.52
per capire meglio .....
prendiamo il file che hai allegato da questa situazione
https://lh3.googleusercontent.com/GHhiY7yUT-j0L5dHT9iQ5NDqdgIckZm-UVZ8kgazIiVOnJXdVlUQTVCh66gV4ZtG5zbuag5CVxc9IhDjK2 DPVTZ83mqmvzxqyiHSkaFHXOgGz8Fw3OTDoihJy45QvoVbRM1O i9g065yQK0r5w_aA5dzQmyFaDy-LZg9nRr6dCHy7rbhMB1Ap2ok9ZS9angUMPT8yO3P4wWSY9hegL-xOHwyZJWSFkFAaqvtwdPiXNM9V58WxpVZYGBWHTnqjYjm4_hil Y98pk532-cUrA45WUnhwrP3jk-yF2YA0jPBKPtDF9j0o18mWF7g5vaP7mCfJKzcg6QWw3eH3BG6J 556lDejx4erGya3giueIqjz9_s3dFHz9hr_lw1lhY6__dSsJoj FqKqx5CoBksfJwSujXOOMQIe7YnhbCmQO46SipN0TwE66ojhzK aTfR_cugX0CnCqkRtbwcZg6Wb1nlSkGMjjmGIfhcAEejtRiiHV 9tsbTXaITeJ6Ac28FiYLfYWLG2BKIwQ08nupScrEn9_3-fZWOdF_CcWT2zqSLxHq4wyDoo0mfuZZQB_cWqZJc9uourDz-_15xc4US9BYdnZduZUHwoS6O9n-XMa4q0-S5pHwoBeqEf=w499-h156-no

dobbiamo arrivare a questa?
https://lh3.googleusercontent.com/SWExOiy69LdPUG58Oc7QtFLp1Jq4_eIzFIkRlwfqKMoS5TNAaa QZG1kEt_hlPVTAV7jdR85lwA7runjVlkCxGyYPlkuFXIfR_CnF 2mffbrrNgMd-JTnofrpGQj-jjqNYWmiSJU0y7u5OgMFlBI4u16LqzNhcxMpFNiEcHlbc6qDcJ sspji6JT3DfBkH97AAYV_OgFPoyFrt4tGA-0h5iO_nIqajkPL9s03N2t2YGzrgBtdpnxepNp2snXHXIsDV0iV 3XhJCVLY7x-hVRvwZINKW3up7bmekjYLy20KxBsUZQ_bd74Qa0D4sMntjupdR jX-SouvlfwmzQvxcCdfQWO9eV9v0IWE1gXXQFdvpy7BcRBYiAHokh 1BjP7KHbP0eXQdvMYOAcHgu5l5cx0AAOlod2s-FrV4jKazdHkW-I1hOFWo7o9lalOYunM7PO1TWGTP-nPGBw_YIf3KOK03fx0uXlKbHxR207e8ZF1b9Qof9-TY3RJMLqz24XxLc-wWR0mhNfaWK3sNhk2MY7s483aoD55jYvjkMZAH2K3JVc5od3uP 3P91cNC3q2HxQyyD21IH54gCk3VJf7xF6F8pijoTK0zgejrukV A9kqJhf-HMhcJtQ4=w277-h169-no

in pratica le altre informazioni le scartiamo?

qwerty2
11-10-2016, 00.47.51
SI,tranne la prima colonna e il resto deve avere solo il cinese incolonnati

Alexsandra
11-10-2016, 11.01.58
se guardi la 1° immagine (caso 1) nelle colonne C,D,E,F ci sono dei caratteri Italiani, poi nella G c'è il cinese.
in questo caso cosa si deve fare?

qwerty2
11-10-2016, 14.07.05
i caratteri italiani vanno eliminati ,compreso il '\n' nella G
Per il solo il '\n' è facile ,basta fare 'sostituisci tutto'.

In breve:nella prima colonna l'espressione in ita,nelle successive ,le corrispondenti traduzioni in cinese(non deve esserci nessun altro tipo di carattere,a parte la parola in cinese).
Possono esserci piu di una traduzione e vanno posti nella colonna successiva(sono 2 o piu parole cinesi se sono separati da una virgola o un punto e virgola).

Alexsandra
11-10-2016, 23.34.04
Ma ....... proprio il cinese dovevi pescare :crying:

sto facendo delle prove e mi sembra che sia possibile fare delle 'esclusioni' sui caratteri convertendo il cinese in un numero Esadecimale Unicode.

ora per poter verificare di ricavare dei numeri esadecimali univoci e compresi in un range completamente diverso dagli altri caratteri per poter inserire delle condizioni, mi servirebbe un file, oppure anche un elenco in un nuovo post, di vari caratteri cinesi.

LoryOne
12-10-2016, 09.40.53
Ma ....... proprio il cinese dovevi pescare :crying:

sto facendo delle prove e mi sembra che sia possibile fare delle 'esclusioni' sui caratteri convertendo il cinese in un numero Esadecimale Unicode.

ora per poter verificare di ricavare dei numeri esadecimali univoci e compresi in un range completamente diverso dagli altri caratteri per poter inserire delle condizioni, mi servirebbe un file, oppure anche un elenco in un nuovo post, di vari caratteri cinesi.

E' esattamente questa la funzione che regex è in grado di espletare con una certa facilità ed in automatico.
Ad esempio, qui https://msdn.microsoft.com/en-us/library/20bw873z(v=vs.110).aspx leggi
Unicode Category or Unicode Block: \p{}
Gran parte dei codici Unicode che identificano il cinese, sembra essere definito come Han, quindi \p{Han}
Se come pattern specifichi 'Han', regex effettuerà le sue operazioni considerando il set di caratteri Unicode appartenenti a quel gruppo: In una stringa di caratteri eterogenea, regex identificherà ogni singolo carattere confrontandolo con quelli inclusi nel gruppo, quindi sarai in grado di includerli o escluderli tutti insieme in un sol colpo per tutta la lunghezza della stringa.
Ad esempio qui: http://www.regular-expressions.info/unicode.html leggi
Unicode Scripts ed Unicode Blocks

Alexsandra
13-10-2016, 08.38.16
Avevi già suggerito l'uso di regex in un post precedente ed è senza dubbio un metodo molto evoluto per svolgere il compito di estrapolazione di un set di caratteri, devo solo vedere come inserirlo nel codice vba.