Discussione:
Microsoft Query : Farsi restituire una parte di stinga
(troppo vecchio per rispondere)
X.
2011-01-22 09:05:24 UTC
Permalink
Utilizzando Microsoft Query, volevo sapere se era possibile farsi
restituire solo una parte di una stringa.

Esempio :

Campo
V123
H262
R564
X927

Volevo che mi desse come risultato :

Campo
12
26
56
92

che sarebbe l'equivalente di =STRINGA.ESTRAI(stringa;2;2)

Finora mi sono fatto restituire tutto il campo e poi a fianco ho messo
la formula =STRINGA.ESTRAI... ma siccome lavoro con campi che contengono
migliaia di righe, la procedura diventa molto "pesante".

Grazie
Mauro Gamberini
2011-01-22 10:57:17 UTC
Permalink
"X." ha scritto nel messaggio news:o5x_o.5687$***@twister1.libero.it...

Utilizzando Microsoft Query, volevo sapere se era possibile farsi
restituire solo una parte di una stringa.

Esempio :

Campo
V123
H262
R564
X927

Volevo che mi desse come risultato :

Campo
12
26
56
92

che sarebbe l'equivalente di =STRINGA.ESTRAI(stringa;2;2)

Finora mi sono fatto restituire tutto il campo e poi a fianco ho messo
la formula =STRINGA.ESTRAI... ma siccome lavoro con campi che contengono
migliaia di righe, la procedura diventa molto "pesante".

Grazie
**********************************

Cosa interroghi con la query?

Un db(quale?)?
Un altro file di Excel?
Altro?
Puoi postare la query?
Grazie.

---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
http://www.maurogsc.eu/
X.
2011-01-22 12:54:03 UTC
Permalink
Interrogo un file excel.
A volte un altro file excel e a volte lo stesso file excel, mettendo
l'origine sul Foglio1 e la query nel Foglio2.
Dipende che lavoro devo fare.
Ho sempre risolto il problema utilizzando la formula
=STRINGA.ESTRAI(stringa;2;2) messa a fianco della query, ma se uscissero
direttamente i "pezzi" di stringa dalla query senza dover utilizzare
formule in un secondo tempo, verrebbe tutto in modo più veloce.
I files dove utilizzerei, sempre che esista, questo sistema, si trovano
nel PC che ho in ufficio e quindi non posso postare, ma mi basterebbe un
semplice esempio per capire la procedura e poi applicarlo nel posto di
lavoro.

Volevo inoltre sapere se in internet ci sono esempi di come poter fare
altre operazioni all'interno delle query, che magari normalmente se ne
ignora l'esistenza ma che potrebbero tornare utili.

Grazie.
Post by Mauro Gamberini
Cosa interroghi con la query?
Un db(quale?)?
Un altro file di Excel?
Altro?
Puoi postare la query?
Grazie.
---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
http://www.maurogsc.eu/
Mauro Gamberini
2011-01-22 17:04:03 UTC
Permalink
Post by X.
A volte un altro file excel e a volte lo stesso file excel, mettendo
l'origine sul Foglio1 e la query nel Foglio2.
Dipende che lavoro devo fare.
<cut>

Io automatizzerei quanto fai con
una semplice macro.
Recupero i dati popolando la colonna A,
scrivo la formula che divide la stringa di A
nella prima cella di B e la espando fino alla fine
di A. Elimino A. Se importi in A,B,C,ecc.,
è banale inserire una colonna a dx(o a sx)
della colonna di tuo interese, fare come spiegato,
eliminare la colonna originale.

E adesso una domanda banale: ma fare una colonna
come quella di tuo interesse nella fonte dati e importare quella?
--
---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
http://www.maurogsc.eu/



__________ Informazioni da ESET NOD32 Antivirus, versione del database delle firme digitali 5808 (20110122) __________

Il messaggio è stato controllato da ESET NOD32 Antivirus.

www.nod32.it
X.
2011-01-22 22:11:38 UTC
Permalink
Post by Mauro Gamberini
E adesso una domanda banale: ma fare una colonna
come quella di tuo interesse nella fonte dati e importare quella?
Con le formule so già come fare, volevo sapere solo se era possibile
mettere delle condizioni all'interno della query anzichè utilizzare
formule e macro.
r
2011-01-22 23:19:42 UTC
Permalink
Post by X.
Post by Mauro Gamberini
E adesso una domanda banale: ma fare una colonna
come quella di tuo interesse nella fonte dati e importare quella?
Con le formule so già come fare, volevo sapere solo se era possibile
mettere delle condizioni all'interno della query anzichè utilizzare
formule e macro.
è un problema di SQL non di excel.

saluti
r
draleo
2011-01-23 11:14:01 UTC
Permalink
Post by r
Post by X.
Post by Mauro Gamberini
E adesso una domanda banale: ma fare una colonna
come quella di tuo interesse nella fonte dati e importare quella?
Con le formule so già come fare, volevo sapere solo se era possibile
mettere delle condizioni all'interno della query anzichè utilizzare
formule e macro.
è un problema di SQL non di excel.
saluti
r
non so se ho capito ma
In SQL per estrarre una parte di stringa io userei
SUBSTRING(stringa,posizione,lunghezza)
Restituisce una stringa estratta a partire dalla posizione indicata
per il numero di caratteri espresso da lunghezza
e se non ho capito...scusate

draleo
X.
2011-01-23 15:14:02 UTC
Permalink
Post by draleo
non so se ho capito ma
In SQL per estrarre una parte di stringa io userei
SUBSTRING(stringa,posizione,lunghezza)
Restituisce una stringa estratta a partire dalla posizione indicata
per il numero di caratteri espresso da lunghezza
e se non ho capito...scusate
draleo
Ho fatto delle prove scrivendo nei criteri
substring(nome_campo;1;3)
ma esce il messaggio : Funzione 'substring' non definita nell'espressione.
Non so se è perchè sbaglio qualcosa oppure se non è previsto che si
possa fare una cosa del genere.
draleo
2011-01-23 16:28:14 UTC
Permalink
Post by X.
Post by draleo
non so se ho capito ma
In SQL per estrarre una parte di stringa io userei
SUBSTRING(stringa,posizione,lunghezza)
Restituisce una stringa estratta a partire dalla posizione indicata
per il numero di caratteri espresso da lunghezza
e se non ho capito...scusate
draleo
Ho fatto delle prove scrivendo nei criteri
substring(nome_campo;1;3)
ma esce il messaggio : Funzione 'substring' non definita nell'espressione.
Non so se è perchè sbaglio qualcosa oppure se non è previsto che si
possa fare una cosa del genere.
leggendo il tuo esempio dovrebbe essere
substring(nome_campo,2,2)
con le virgole separatrici (non punto e virgola)
Se non funziona neanche così
allora significa che la tua versione di SQL non supporta la funzione
substring
(ma mi sembra molto improbabile)
draleo
X.
2011-01-23 21:07:19 UTC
Permalink
Post by draleo
leggendo il tuo esempio dovrebbe essere
substring(nome_campo,2,2)
con le virgole separatrici (non punto e virgola)
Ho provato anche con le virgole, ma esce sempre il messaggio di errore.
Qualcuno di voi è riuscito ad inserire questa istruzione nell'sql di
Excel 2007 ?
Se sì, mi potete incollare l'istruzione esatta, così poi la copio nel
mio sql e vedo se viene accettata ?
r
2011-01-24 22:29:23 UTC
Permalink
Post by X.
Post by draleo
leggendo il tuo esempio dovrebbe essere
substring(nome_campo,2,2)
con le virgole separatrici (non punto e virgola)
Ho provato anche con le virgole, ma esce sempre il messaggio di errore.
Qualcuno di voi è riuscito ad inserire questa istruzione nell'sql di
Excel 2007 ?
Se sì, mi potete incollare l'istruzione esatta, così poi la copio nel
mio sql e vedo se viene accettata ?
hai letto il mio suggerimento?
substring non è supportato ma puoi utilizzare Mid(string, start,
[length]).
eventualmente posta la tua query.
saluti
r

r
2011-01-23 20:48:28 UTC
Permalink
SELECT mid(Nome_tabella.Nome_campo,2,2)
FROM Nome_tabella

qualcosa del genere ... nella query, puoi modificare l'SQL direttamente quando crei la Query all'ultimo passaggio della creazione guidata, oppure a query già realizzata da strumnenti->modifica query ... però ripeto che qui si discute di excel e vba non di SQL
saluti
r
r
2011-01-23 21:33:05 UTC
Permalink
On 23 Gen, 21:48, r <***@gmail.com> wrote:
oppure a query già realizzata da strumnenti->modifica query ...

ops ...
da Dati->Importa dati esterni->modifica query nel 2003
per il 2007 visto che ti crea una tabella puoi dalla scheda
progettazione tabella modificare direttamente la query da proprietà
intervallo dati->proprietà connessione scheda definizione
saluti
r
Loading...