Hardware Upgrade Forum

Hardware Upgrade Forum (https://www.hwupgrade.it/forum/index.php)
-   Programmi e Utility (https://www.hwupgrade.it/forum/forumdisplay.php?f=37)
-   -   Excel: problematiche e soluzioni (https://www.hwupgrade.it/forum/showthread.php?t=2102242)


ses4 29-12-2010 16:16

Quote:

Originariamente inviato da Balbuzie News (Messaggio 34038218)
Ciao.
Anche io avevo lo stesso problema, e l'ho risolto in un modo un po' grezzo, ma funziona.
....

Ti consiglio di leggere la soluzione proposta da zuper.
Ciao

Balbuzie News 29-12-2010 16:44

nn avevo letto la risposta e non sapevo nemmeno che trascinando verso il basso la regola venisse applicata alla cella a fianco, credevo che funzionasse sempre in riferimento alla prima cella selezionata. Wow, grazie, così risparmi un sacco di tempo!
Per complicarmi la vita ho anche fatto un'altra prova. visto che la mia colonna A1 da modificare contiene in ogni cella stringhe da 5 caratteri
aaaaa
abcde
aswup
amzqp
.....

ho usato la funzione RIMPIAZZA, così in B1 ho scritto:
=RIMPIAZZA(A1;6;3;"-SI")
e trascinando verso il basso ho ottenuto

aaaaa-SI
abcde-SI
aswup-SI
amzqp-SI
.....

Che emozione! :D

ses4 29-12-2010 18:22

Quote:

Originariamente inviato da Balbuzie News (Messaggio 34044402)
nn avevo letto la risposta e non sapevo nemmeno che trascinando verso il basso la regola venisse applicata alla cella a fianco, credevo che funzionasse sempre in riferimento alla prima cella selezionata. Wow, grazie, così risparmi un sacco di tempo!
Per complicarmi la vita ho anche fatto un'altra prova. visto che la mia colonna A1 da modificare contiene in ogni cella stringhe da 5 caratteri
aaaaa
abcde
aswup
amzqp
.....

ho usato la funzione RIMPIAZZA, così in B1 ho scritto:
=RIMPIAZZA(A1;6;3;"-SI")
e trascinando verso il basso ho ottenuto

aaaaa-SI
abcde-SI
aswup-SI
amzqp-SI
.....

Che emozione! :D

Bene!
Continua a provare, vedrai quante soddisfazioni.
In questo caso, visto che devi aggiungere -SI a quanto hai scritto in colonna A, potresti usare, più semplicemente, la formula:
=A1&"-SI"
e trascinare in basso.
La funzione RIMPIAZZA() serve per sostituire o aggiungere caratteri all'interno di una stringa, per es.
=RIMPIAZZA(A1;3;0;"-SI")
dà come risultato
aa-SIaaa
ab-SIcde
as-SIwup
am-SIzqp
oppure:
=RIMPIAZZA(A1;3;2;"-SI")
dà:
aa-SIa
ab-SIe
as-SIp
am-SIp

Ciao.

vvvenlo 10-01-2011 13:55

Funzione Excel
 
Salve a tutti....
Mi sono appena inscritto al vostro forum e devo farvi i complimenti per tutte le sezioni presenti.....siete molto di aiuto a noi "umani del pc".
Ho una piccola domanda da porvi riguardo un funzione che mi servirebbe da inserire in un foglio excel.
Vi spiego:
Ho creato un piccolo calcolatore su excel per la mia attività di lavoro che fra le tante cose mi obbliga a registrare i codice a barre dei prodotti che escono dal magazzino.
Con una pistola per codice a barre sparo tutti i prodotti e questo codice mi viene riportato in sequenza sul foglio elettronico nella colonna A.
Vorrei sapere se in contemporanea all inserimento di ciascun codice a barre in automatico la colonna b mi indicasse la data e l'ora in cui è stato sparato il codice a barre.
Cioè in parole povere:
nella cella A1 sparo il codice e di consequenza b1 mi riporta data e ora e cosi via dicendo.
In modo tale che la sera a chiusura del magazzino so l'orario esatto in cui è uscito ciascun prodotto.
Penso sia stato molto confusionale però confido nella vostra esperienza qualora ci siano possibilita di realizzare questa formula.
Grazie anticipatamente:help:

ses4 12-01-2011 18:55

Quote:

Originariamente inviato da vvvenlo (Messaggio 34141906)
Salve a tutti....
...
Con una pistola per codice a barre sparo tutti i prodotti e questo codice mi viene riportato in sequenza sul foglio elettronico nella colonna A.
Vorrei sapere se in contemporanea all inserimento di ciascun codice a barre in automatico la colonna b mi indicasse la data e l'ora in cui è stato sparato il codice a barre.
Cioè in parole povere:
nella cella A1 sparo il codice e di consequenza b1 mi riporta data e ora e cosi via dicendo.
In modo tale che la sera a chiusura del magazzino so l'orario esatto in cui è uscito ciascun prodotto.
Penso sia stato molto confusionale però confido nella vostra esperienza qualora ci siano possibilita di realizzare questa formula.
Grazie anticipatamente:help:

Prova così:
- clicca con il tasto destro del mouse sulla linguetta con il nome del foglio di lavoro su cui vengono inseriti i codici
- dal menù contestuale selezione l'opzione "Visualizza codice"
- nell'editor VB, aperto con le precedenti azioni, incolla il seguente codice:
Codice:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A:A")) Is Nothing Then Target.Offset(0, 1).Value = Now
End Sub

Non posso provarla, ma credo che funzioni.
Fammi sapere.
Ciao

Thoruno 14-01-2011 17:52

Quote:

Originariamente inviato da ses4 (Messaggio 34165146)
Prova così:
- clicca con il tasto destro del mouse sulla linguetta con il nome del foglio di lavoro su cui vengono inseriti i codici
- dal menù contestuale selezione l'opzione "Visualizza codice"
- nell'editor VB, aperto con le precedenti azioni, incolla il seguente codice:
Codice:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A:A")) Is Nothing Then Target.Offset(0, 1).Value = Now
End Sub

Non posso provarla, ma credo che funzioni.
Fammi sapere.
Ciao

Non sono il diretto interessato, ma ho provato il tuo codice e funziona.
Anche perchè cercavo anch'io una cosa del genere.
2 domande:
1) Esiste la possibilità di avere lo stesso risultato con le formule data-ora?
2) potresti spiagarmi come si legge il tuo codice (il significato delle istruzioni usate)? Non conosco VB.

Ciao Grazie

ses4 14-01-2011 18:53

Quote:

Originariamente inviato da Thoruno (Messaggio 34184278)
Non sono il diretto interessato, ma ho provato il tuo codice e funziona.
Anche perchè cercavo anch'io una cosa del genere.
2 domande:
1) Esiste la possibilità di avere lo stesso risultato con le formule data-ora?
2) potresti spiagarmi come si legge il tuo codice (il significato delle istruzioni usate)? Non conosco VB.

Ciao Grazie

Con i codici a barre?
No, non mi pare sia possibile fare qualcosa del genere con le funzioni di data e ora totalmente in automatico, l'unica è utilizzare il VBA.
Il funzionamento è abbastanza semplice.
Sto utilizzando una routine di intercettazione degli eventi, in questo caso Worksheet_Change, ogni volta che si modifica una qualsiasi cella di quel foglio di lavoro viene eseguita la routine.
"If Not Intersect(Target, Range("A:A")) Is Nothing then" controlla se la variazione è avvenuta nella colonna A e, se vero, "Target.Offset(0, 1).Value = Now" inserisce data e ora nella cella affianco a quella che ha subito il cambiamento, altrimenti non viene eseguita nessuna azione.
Ciao

wittelsbach 14-01-2011 18:57

excel: cerca vert concatenata
 
Dovrei utilizzare la funzione cerca.vert ripetuta nella stessa cella. Vi spiego con un esempio cosa dovrei fare:

Mario 15 12 11 (CELLA E1)
Luigi 10 17 3 (CELLA E2)
Vincenzo 6 7 22 (CELLA E3)

Supponendo che i dati sopra descritti siano collocati in una matrice di excel, se dovessi inserire in un'altra cella un controllo che preveda la somma dei numeri di ogni riga se al check alfabetico corrispondesse uno dei tre nomi, come dovrei impostare la funzione?
Ad esempio nella CELLA E1: SE(cerca.vert("mario";a1d4;1));a2+a3+a4;"")+SE(cerca.vert("luigi";a1d4;1));a2+a3+a4;"")
Ovvero: se cerca.vert trova "mario" mi deve sommare i numeri alla sua destra, se trova luigi i numeri corrispondenti alla destra di "luigi", e così via per vincenzo. Il fatto è che la formula non sembra funzionare.

Qualcuno può darmi una mano?

ses4 14-01-2011 19:54

Quote:

Originariamente inviato da wittelsbach (Messaggio 34184932)
Dovrei utilizzare la funzione cerca.vert ripetuta nella stessa cella. Vi spiego con un esempio cosa dovrei fare:

Mario 15 12 11 (CELLA E1)
Luigi 10 17 3 (CELLA E2)
Vincenzo 6 7 22 (CELLA E3)

Supponendo che i dati sopra descritti siano collocati in una matrice di excel, se dovessi inserire in un'altra cella un controllo che preveda la somma dei numeri di ogni riga se al check alfabetico corrispondesse uno dei tre nomi, come dovrei impostare la funzione?
Ad esempio nella CELLA E1: SE(cerca.vert("mario";a1d4;1));a2+a3+a4;"")+SE(cerca.vert("luigi";a1d4;1));a2+a3+a4;"")
Ovvero: se cerca.vert trova "mario" mi deve sommare i numeri alla sua destra, se trova luigi i numeri corrispondenti alla destra di "luigi", e così via per vincenzo. Il fatto è che la formula non sembra funzionare.

Qualcuno può darmi una mano?

Credo tu abbia fatto un po' di confusione, così non può funzionare, hai sbagliato anche la sintassi.
Se ho ben capito cosa vuoi realizzare, dovresti utilizzare un formula matriciale, come questa:
Codice:

=MATR.SOMMA.PRODOTTO(B1:D3*((A1:A3="Mario")+(A1:A3="Luigi")))
che somma i valori a destra di Mario e di Luigi.
Ciao

wittelsbach 14-01-2011 21:03

1 Allegato(i)
Quote:

Originariamente inviato da ses4 (Messaggio 34185491)
Credo tu abbia fatto un po' di confusione, così non può funzionare, hai sbagliato anche la sintassi.
Se ho ben capito cosa vuoi realizzare, dovresti utilizzare un formula matriciale, come questa:
Codice:

=MATR.SOMMA.PRODOTTO(B1:D3*((A1:A3="Mario")+(A1:A3="Luigi")))
che somma i valori a destra di Mario e di Luigi.
Ciao

Grazie per l'aiuto però non credo che sia quello che cerco. In allegato un prospetto che forse tu può aiutare a capirmi meglio:
facciamo conto che abbia un foglio come quello che vedi in allegato ed io abbia bisogno di calcolare la somma dei dati alla destra di ciascuno dei 3 nomi in base ad un controllo effettuato preventivamente su un altro documento. Ad esempio, posizionandomi su H5, vorrei creare una formula che chieda: se controllando una matrice X su un altro foglio (dunque credo con cerca.vert) il valore risulti uguale a mario allora fai la somma dei dati alla destra di mario nel foglio allegato, se uguale a luigi fai la somma dei dati alla destra di luigi nel foglio in allegato, ecc. Allo stesso modo trascinerei la stessa formula in H6 e H7. Spero di essermi fatto capire.

Un'altra cosa: in che senso risultava sbagliata la sintassi? Non posso sommare più condizioni nella stessa formula?

Grazie mille!

Thoruno 14-01-2011 22:26

Quote:

Originariamente inviato da wittelsbach (Messaggio 34186055)
Grazie per l'aiuto però non credo che sia quello che cerco. In allegato un prospetto che forse tu può aiutare a capirmi meglio:
facciamo conto che abbia un foglio come quello che vedi in allegato ed io abbia bisogno di calcolare la somma dei dati alla destra di ciascuno dei 3 nomi in base ad un controllo effettuato preventivamente su un altro documento. Ad esempio, posizionandomi su H5, vorrei creare una formula che chieda: se controllando una matrice X su un altro foglio (dunque credo con cerca.vert) il valore risulti uguale a mario allora fai la somma dei dati alla destra di mario nel foglio allegato, se uguale a luigi fai la somma dei dati alla destra di luigi nel foglio in allegato, ecc. Allo stesso modo trascinerei la stessa formula in H6 e H7. Spero di essermi fatto capire.

Un'altra cosa: in che senso risultava sbagliata la sintassi? Non posso sommare più condizioni nella stessa formula?

Grazie mille!


Prova questo: =SE(A$1:A$5=A1;SOMMA(B1 : D1))
Da A$1 a A$5 o più ci sono i nomi A1 si aggiorna quando trascini e somma le celle alla destra dei nomi.

Ciao

joden 14-01-2011 22:27

salve gente

io devo fare una cosa in teoria banale ma non sono riuscito a trovare il modo per farlo su excel 2010...

vi spiego subito di cosa si tratta..

allora vorrei inserire, in un grafico a linee, delle strisce di colore diverso (con trasparenza però per poter vedere anche l'andamento dei grafici) per delimitare vari valori sull'asse delle ordinate.. qui sotto un esempio osceno fatto ora in 2 secondi con paint per farvi capire ciò che vorrei fare..


ses4 14-01-2011 22:50

Quote:

Originariamente inviato da wittelsbach (Messaggio 34186055)
Grazie per l'aiuto però non credo che sia quello che cerco. In allegato un prospetto che forse tu può aiutare a capirmi meglio:
facciamo conto che abbia un foglio come quello che vedi in allegato ed io abbia bisogno di calcolare la somma dei dati alla destra di ciascuno dei 3 nomi in base ad un controllo effettuato preventivamente su un altro documento. Ad esempio, posizionandomi su H5, vorrei creare una formula che chieda: se controllando una matrice X su un altro foglio (dunque credo con cerca.vert) il valore risulti uguale a mario allora fai la somma dei dati alla destra di mario nel foglio allegato, se uguale a luigi fai la somma dei dati alla destra di luigi nel foglio in allegato, ecc. Allo stesso modo trascinerei la stessa formula in H6 e H7. Spero di essermi fatto capire.

Un'altra cosa: in che senso risultava sbagliata la sintassi? Non posso sommare più condizioni nella stessa formula?

Grazie mille!

Spiacente, ma non capisco cosa devi fare.
Forse vuoi dire che devi verificare l'esistenza di ciascun nome su un elenco presente in un altro foglio e nel caso esista effettuare la somma delle celle affianco al nome esistente?
E' sbagliata la sintassi di cerca.vert() per lo scopo per cui intendi utilizzare la funzione.
Come l'hai scritta tu, omettendo il quarto argomento, trova qualcosa anche se il nome "mario" non è presente nell'elenco, inoltre la funzione SE() esige un valore logico o un numero come primo argomento, non una stringa.
Anche il secondo argomento della funzione SE() va male, stai sommando A2+A3+A4 e le celle A2 e A3 contengono nomi e infine perchè utilizzare una stringa vuota nel terzo argomento? dovresti sommare dei numeri e quindi utilizzare lo zero.
Ciao

Thoruno 14-01-2011 23:11

1 Allegato(i)
Quote:

Originariamente inviato da ses4 (Messaggio 34186836)
Spiacente, ma non capisco cosa devi fare.
Forse vuoi dire che devi verificare l'esistenza di ciascun nome su un elenco presente in un altro foglio e nel caso esista effettuare la somma delle celle affianco al nome esistente?
E' sbagliata la sintassi di cerca.vert() per lo scopo per cui intendi utilizzare la funzione.
Come l'hai scritta tu, omettendo il quarto argomento, trova qualcosa anche se il nome "mario" non è presente nell'elenco, inoltre la funzione SE() esige un valore logico o un numero come primo argomento, non una stringa.
Anche il secondo argomento della funzione SE() va male, stai sommando A2+A3+A4 e le celle A2 e A3 contengono nomi e infine perchè utilizzare una stringa vuota nel terzo argomento? dovresti sommare dei numeri e quindi utilizzare lo zero.
Ciao

L'esempio che ho fatto funziona, vedi l'allegato "Excel 2007"

wittelsbach 15-01-2011 10:36

convalida dati con formato su ORA(h.mm)
 
Possiedo una riga di celle formattate come ORA (h.mm). Vorrei utilizzare un elenco a discesa come quello da convalida dati, in modo da poter selezionare più rapidamente più intervalli orari preventivamente inseriti. Il problema è che l'unica possibilità è gestire un elenco (da convalida dati) che però ovviamente non coincide con la formattazione oraria delle celle e dunque non può funzionare. Sapete come posso ovviare al problema?

ciao

ps. appena possibile vi fornisco un feedback sull'altro problema già postato....

ses4 15-01-2011 14:20

Quote:

Originariamente inviato da Thoruno (Messaggio 34186989)
L'esempio che ho fatto funziona, vedi l'allegato "Excel 2007"

Ciao Thoruno,
stai praticamente verificando se ogni nome corrisponda a se stesso, il SE() è quindi del tutto inutile, tanto vale fare direttamente la somma.
Ciao

ses4 15-01-2011 14:30

Quote:

Originariamente inviato da wittelsbach (Messaggio 34188600)
Possiedo una riga di celle formattate come ORA (h.mm). Vorrei utilizzare un elenco a discesa come quello da convalida dati, in modo da poter selezionare più rapidamente più intervalli orari preventivamente inseriti. Il problema è che l'unica possibilità è gestire un elenco (da convalida dati) che però ovviamente non coincide con la formattazione oraria delle celle e dunque non può funzionare. Sapete come posso ovviare al problema?

ciao

ps. appena possibile vi fornisco un feedback sull'altro problema già postato....

Perchè "ovviamente non coincide con la formattazione oraria delle celle"?
Scrivi il tuo elenco utilizzando una parte dello stesso foglio con lo stesso formato delle celle di destinazione e fai riferimento a quell'elenco e vedrai che funziona.
Ciao

Thoruno 15-01-2011 23:52

Quote:

Originariamente inviato da ses4 (Messaggio 34190804)
Ciao Thoruno,
stai praticamente verificando se ogni nome corrisponda a se stesso, il SE() è quindi del tutto inutile, tanto vale fare direttamente la somma.
Ciao

Hai ragione, ho provato ad eliminare un nome ma la somma la fa lo stesso.
Chiedo venia.

Ciao

wittelsbach 16-01-2011 11:21

1 Allegato(i)
Quote:

Originariamente inviato da ses4 (Messaggio 34186836)
Spiacente, ma non capisco cosa devi fare.
Forse vuoi dire che devi verificare l'esistenza di ciascun nome su un elenco presente in un altro foglio e nel caso esista effettuare la somma delle celle affianco al nome esistente?
E' sbagliata la sintassi di cerca.vert() per lo scopo per cui intendi utilizzare la funzione.
Come l'hai scritta tu, omettendo il quarto argomento, trova qualcosa anche se il nome "mario" non è presente nell'elenco, inoltre la funzione SE() esige un valore logico o un numero come primo argomento, non una stringa.
Anche il secondo argomento della funzione SE() va male, stai sommando A2+A3+A4 e le celle A2 e A3 contengono nomi e infine perchè utilizzare una stringa vuota nel terzo argomento? dovresti sommare dei numeri e quindi utilizzare lo zero.
Ciao

Nel nuovo allegato vedi che la lista di destra produce la somma dei valori di quelli di sinistra. In questo modo apparentemente otterrei ciò che cerco, ma nel caso in cui, sempre all'interno della stessa matrice, i valori della prima o della seconda lista venissero riordinati o spostati, i rispettivi riferimenti non potrebbero più trovare alcuna corrispondenza. Dunque, in sintesi, vorrei trovare il modo di ottenere ciò che si ottiene con la formula in allegato anche nell'eventualità che i dati cambino di posizione.
Grazie per tutte le altre dritte sugli errori di sintassi.

wittelsbach 16-01-2011 11:35

Quote:

Originariamente inviato da ses4 (Messaggio 34190913)
Perchè "ovviamente non coincide con la formattazione oraria delle celle"?
Scrivi il tuo elenco utilizzando una parte dello stesso foglio con lo stesso formato delle celle di destinazione e fai riferimento a quell'elenco e vedrai che funziona.
Ciao

Giusto, mi sono incasinato con il fatto che modificando il formato in "ORA" delle celle in questione, impostate come numeri interi, la modifica annulla il valore precedente. Cioè, se prima c'era un "1", il cambio di formattazione non lo fa diventare "1.00", bensì "0.00". Non credo esista un modo per aggirare questo inconveniente, vero? Per non dover riscrivere qualche centinaio di dati.....


Tutti gli orari sono GMT +1. Ora sono le: 04:32.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.