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)


Thoruno 23-12-2012 15:03

Quote:

Originariamente inviato da fabbio84 (Messaggio 38754940)
Thoruno il problema è risolto con le ore che tu hai inserito, ma se metti per esempio un orario che va dalle 21:59 alle 6:00, sulle ore diurne mi segna 0:1 minuti ma ne le ore notturne me le segna negative, nel caso segna -16:0

Naturalmente io ho solo creato la formula per quel periodo come esempio.
Adesso bisogna fare altrettanto per il resto della giornata, dalle 22 alle 6 del giorno dopo.
Ho cercato di farti capire come è sviluppata + o - la formula.

Mario

Peach1200 24-12-2012 13:53

Quote:

Originariamente inviato da dr.gazza (Messaggio 38742097)
se non è indiscreto che db è ? e che file excel usi ( xls o xlsx ) ?

Ciao!
Non sono direttamente io che sto realizzando la cosa, ma un amico con cui sto collaborando..
Il file di partenza è un ".xls". Per l'import ho bisogno però di un ".csv" utf-8.
Per il database, cosa vuoi sapere? Che tecnologia usa? Penso si parli di SQL.. per gestirlo stiamo utilizzando Liferay.. in ogni caso, chiederò più info!

Comunque, se solo riuscissi a creare un csv come si deve da Excel, sarei a posto.. qualche idea? :)

dr.gazza 24-12-2012 14:44

Quote:

Originariamente inviato da Peach1200 (Messaggio 38759293)
Ciao!
Non sono direttamente io che sto realizzando la cosa, ma un amico con cui sto collaborando..
Il file di partenza è un ".xls". Per l'import ho bisogno però di un ".csv" utf-8.
Per il database, cosa vuoi sapere? Che tecnologia usa? Penso si parli di SQL.. per gestirlo stiamo utilizzando Liferay.. in ogni caso, chiederò più info!

Comunque, se solo riuscissi a creare un csv come si deve da Excel, sarei a posto.. qualche idea? :)

Nel caso in cui si trattasse di M$$QL Sever con una openquery potevi
leggere i dati da excel e scriverli in una tabella del db, senza colpo ferire;

Googolando si trova qualcosa, sulla cui efficacia però, ci sono pareri discordanti sui risultati, cose tipo salvare in csv MsDOS o cambiare la codifica sempre in fase di salvataggio.

Raffaele53 25-12-2012 15:08

X Padre Maronno

Sub InserisciDato()
nome = InputBox("SCRIVI NOME DA INSERIRE")
If nome = "" Then Exit Sub
Set Intervallo = Range("A1:A5000")
If Application.CountIf(Intervallo, nome) = 0 Then
cellavuota = Range("A5").End(xlDown).Row + 1
Cells(cellavuota, 1) = nome
Else
MsgBox "Nominativo già Presente"
End If
End Sub

X fabbio84
Le date e anche le ore, per excel sono solo numeri.
Dovresti mettere anche il giorno, in modo tale da togliere il 6:00 al 21:59 però del giorno precedente. In poche parole in A1 e B1 devi mettere la data comprensiva dell'ora.
=B2-A2 formatto ore h;mm;ss
Poi con vari SE li fai apparire in diurni o notturni.

Lucen 29-12-2012 12:41

Problemi con menù a tendina
 
Buongiorno a tutti, sono nuovo del forum..vi chiedevo un aiuto da 'profanissimo'..
ho un file excel 2003 in cui nella prima colonna ho un menù a tendina con una serie di attività fisiche (nuoto,calcio,etc)e nella seconda colonna un secondo menù a tendina con una serie di numeri(= calorie spese per ogni singolo sport)che sono nell'ordine corrispondente al singolo sport della prima colonna(ovvero le voci dei 2 menù sono per così dire appaiate)..il mio problema è: è possibile, scegliendo uno sport dalla prima colonna, far comparire in automatico,senza doverle cioè selezionare,le calorie bruciate corrispondenti nella seconda colonna?considerato poi che sport diversi possono avere lo stessa quantità di calorie spese.
Grazie a chi saprà intanto districarsi da questa spiegazione (scusate ma non so come altro descrivere il problema)e drmi un aiuto... :)

Raffaele53 30-12-2012 19:38

Togli la convalida dati in colonna B e vai a mettere a fianco dei sport le calorie

esempio tabella:
G1--Nuoto--in H1--100
G2--pesi---in H2--50
G3--Corsa--in H3--150
Nota bene in colonna G non ci devono essere nomi doppi

Poi In B1 puoi metterai =SE(A1="";"";CERCA.VERT(A1;G$1:H$3;2;1))
Nota bene G$1:H$3 significa che la tabella è in G1:H3 se fossero cento sarà G$1:H$100 e devi mettere gli $
Alla fine selezioni la cella B1 e la trascini in basso.

Lucen 31-12-2012 15:08

1 Allegato(i)
Grazie raffaele53, intanto per aver risposto in questi giorni di relax..io ho tentato di applicare quanto mi hai detto ma evidentemente devo aver sbagliato qualcosa perchè le cose non mi tornano(niente di più facile,date le mie scarse capacità con excel..)..se possibile allegherei il fac-simile del foglio excel perchè non so come altrimenti spiegarmi..
Il foglio sarebbe strutturato così:
-in colonna A: elenco sports (che in realtà mi interessa solo per farne il menù di colonna C, per il resto nasconderei o sposterei la colonna A)
-in colonna B: kal corrispondenti a ciascuno sport (anche questa colonna mi servirebbe solo per costruire la formula da scrivere in colonna D, per il resto la nasconderei o sposterei)
-In colonna C ho messo il menù a tendina degli sports della colonna A
-in colonna D vorrei, se fosse tecnicamente possibile, che mi uscissero le kal corrispondenti al singolo sport, in base alla scelta operata dall'elenco di colonna C
Grazie ancora per l'aiuto possibile, auguro a te e a tutti una buona fine d'anno..

Lucen 31-12-2012 15:23

1 Allegato(i)
Che stupido, ho inviato l'immagine invece del file excel compresso..scusate tanto...
ancora tanti auguri....

Raffaele53 31-12-2012 18:05

Metti in D2 =SE(C2="";"";CERCA.VERT(C2;A$2:B$500;2;1)) e poi trascini....giù....Ti posizioni sulla cella D2 angolo destro in basso, appena vedi il mouse diventare come un + clicchl sul tasto sinistro sino in basso dopo rilascialo.

Ps. i Sport sono 127, ho messo 500 cosi puoi aggiungere ancora.

Lucen 31-12-2012 19:44

1 Allegato(i)
Intanto..grazie mille Raffaele53! fenomenale! non voglio abusare della pazienza e disponibilità tua e degli altri utenti, ma come tutti gli 'incapaci informatici' al primo inghippo non so rimediare: ho notato che quando scelgo determinati sport mi esce un valore non corrispondente allo sport scelto o il dato N/D..ma non ho idea del perchè..
sperando ancora nel tuo/vostro aiuto futuro, ora ti/vi lascio festeggiare il Capodanno come si deve..
Buon 2013 a tutti...!

Raffaele53 31-12-2012 22:28

Ho sbagliato metti lo zero finale al posto di 1

=SE(C2="";"";CERCA.VERT(C2;A$2:B$500;2;0)) oppure =SE(C2="";"";CERCA.VERT(C2;A$2:B$500;2;Falso))

Lucen 01-01-2013 12:36

Perfetto, funziona alla grande! grazie ancora Raffaele53, per la disponibilità e la velocità!
..ancora auguri per un buon 2013, e te e a tutti gli utenti del forum.. :)

+Benito+ 02-01-2013 20:14

Quote:

Originariamente inviato da dr.gazza (Messaggio 38699958)
scusa,
se il problema è cancellare la formattazione da una serie di celle
ti posizioni sulla prima cella che vuoi selezionare (BF1 O BH1)
tieni premuto CTRL + SHIFT e poi fai un click sulla sulla freccia in basso (sulla tastiera) e un click freccia dx (sempre da tastiera)
cosi in 2 click avrai selezionato tutte le righe e tutte le colonne a partire dalla cella sulla quale ti trovi
A questo punto cancelli bordi, formattazioni, colori etc!

una volta attivata la selezione CTRL + 1
così fai tutto da un'unica finestra;

:eek: non lo savavo.
Grazie e buon anno

Padre Maronno 04-01-2013 01:36

Quote:

Originariamente inviato da Raffaele53 (Messaggio 38763244)
X Padre Maronno

Sub InserisciDato()
nome = InputBox("SCRIVI NOME DA INSERIRE")
If nome = "" Then Exit Sub
Set Intervallo = Range("A1:A5000")
If Application.CountIf(Intervallo, nome) = 0 Then
cellavuota = Range("A5").End(xlDown).Row + 1
Cells(cellavuota, 1) = nome
Else
MsgBox "Nominativo già Presente"
End If
End Sub


...

Grazie mille, ma cosa è ? Perdonami ma sono una capra in materia, ste istruzioni dove e come vanno inserite ? Grazie.

Raffaele53 04-01-2013 23:54

Si chiama MACRO, premi ALT+F11 noterai sulla sinistra i tuoi fogli.
Ora inserisci la macro nel Tuo foglio oppure crei un MODULO1 e la inserisci.

Ora ci sono due modi ....
Il Worksheet_Change consigliato e sconsigliato
Worksheet_Change sarebbe in automatico, mà bisognerebbe capire il foglio come sia strutturato.
Suggerisco un semplice bottone al quale gli assegni questa macro.
Premi il bottone e...., lui verifica se nelle celle A1:A5000 esiste già.

Sub InserisciDato()
nome = InputBox("SCRIVI NOME DA INSERIRE")
If nome = "" Then Exit Sub
Set Intervallo = Sheets("Foglio1").Range("A1:A5000")
If Application.CountIf(Intervallo, nome) = 0 Then
cellavuota = Range("A1").End(xlDown).Row + 1
Sheets("Foglio1").Cells(cellavuota, 1) = nome
Else
MsgBox "Nominativo già Presente"
End If
End Sub

strathm 25-01-2013 10:58

excel "concatena se"?
 
Salve a tutti
avrei bisogno di una funzione che potremmo ribattezzare "concatena.se". Cerco di spiegarmi meglio: dovrei unire il testo di più celle della colonna B in base alla presenza di un determinato valore nella rispettiva cella nella colonna A.
A B
2011 blu, rosso
2010 giallo, arancio, rosso
2010 blu, verde, arancio
2009 bianco, blu
in modo da ottenere una colonna C così strutturata:

blu, rosso
giallo, arancio, rosso, blu, verde, arancio
bianco, blu

ho provato a scrivere così ma la sintassi non è corretta
se((a1:a100; "2011"); [concatena(b1;b100)]; [""])
se((a1:a100; "2010"); [concatena(b1;b100)]; [""])
se((a1:a100; "2009"); [concatena(b1;b100)]; [""])

vi ringrazio in anticipo per le risposte

Zino 26-01-2013 00:13

Mi sapete dire come posso gestire la formula che prenda in considerazione i dati a partire da una data certa, ad esempio inizio anno od inizio trimestre, sino all'ultimo giorno disponibile aggiornato.

Ho praticamente 2 colonne,
A -Data in ordine inverso (dalla più recente alla più vecchia)
B- valore numerico

con uno script effettuo l'aggiornamento del foglio e si crea una nuova riga A2 con la data odierna ed il nuovo valore.
La formula della Deviazione.Standard che uso dovrebbe includere tutti i valori a partire dalla data di partenza di oggi sino alla data fissa che imposto al 01/01/12.
Ora, con questa DEV.ST(B2:B276), ad ogni aggiornamento odierno la mia data di riferimento si sposta di una riga, mentre la mia formula resta fissa sulla B276 ... vorrei che invece si vada a riposizionare e leggere sempre il dato del 1/1/12 e quindi la B277 ..

Spero di essere stato chiaro, forse dilungandomi ho fatto più confusione :D

Lo stesso tipo di regola devo poterla applicare anche con formula della MEDIA(B2:B276) .... il problema è lo stesso ...

setterernga 26-01-2013 12:23

Oggi excel non mi fa selezionare le celle (ne con mouse, ne con tastiera). Avete idea del perché?

dr.gazza 26-01-2013 15:21

Quote:

Oggi excel non mi fa selezionare le celle (ne con mouse, ne con tastiera). Avete idea del perché?
hai per caso attivo il "BLOCCO SCORRIMENTO" o "BLOC SCORR"
se attivo excel dovrebbe indicartelo in basso a sx

dsforum 08-02-2013 02:13

=CERCA.VERT
 
Salve a tutti,
mi presento mi chiamo Salvatore e uso il computer da tantissimi anni, ma non ho mai partecipato a dei forum ed é un piacere partecipare per la prima volta con tutti voi.

Ho un problema con excel 2007 ho conosciuto la funzione:=CERCA.VERT
nella cella A2 ho inserito =CERCA.VERT(A1;H1:J3;2;0)mi funzione su foglio1

il problema nasce se voglio controllare più matrici es.
foglio 1 H1:J3
foglio 2 H1:J3
foglio 3 H1:J3
ed avere il risultato della ricerca in
foglio 1 cella A2
sperando di essere stato abbastanza chiaro vi chiedo un aiuto.

Cordiali Saluti
Salvatore

ienuzza 09-02-2013 15:44

dsforum
 
excel 2007?

Melchiade 12-02-2013 11:15

Conversione hh:mm:ss in minuti
 
1 Allegato(i)
Ciao a tutti,

ho un problema con una conversione di celle con dati aventi il formato hh:mm:ss.

I valori inseriti sono, da esempio, visualizzabili nel file che ho allegato.
Il totale degli orari, in formato hh:mm:ss, corrisponde a 02:41:44.

A quanti minuti esatti corrisponde quel totale? Mi chiedo quindi se esiste una formula che converta ore, minuti e secondi nell'equivalente in minuti.

Grazie a tutti per il riscontro :)

dr.gazza 12-02-2013 17:00

dato il totale in B18


estrai le ore in
B19 =ORA(B18)
C19 =MINUTO(B18)
D19 =SECONDO(B18)

metti in
E19 =CONCATENA(((B19*60)+C19);".";D19)

ottini cosi la somma dei minuti e la parte in secondi

Melchiade 13-02-2013 12:03

Conversione hh:mm:ss in minuti, RE:Dr.Gazza
 
Grazie Dr.Gazza per avermi risposto.

Non sono riuscito ad estrarre le ore perchè se digito la formula =ORE(B18) Excel mi dà "#NOME?".

Per caso per "estrai" intendi che io debba usare la formulta "stringa.estrai"?
Ho provato anche ad utilizzare questa formula ma mi dà un risultato in un formato differente dal formato hh:mm:ss. (dal totale 02:41:44 "stringa.estrai" mi dà il risultato "01" O_o).

Grazie ancora per il riscontro :)

dr.gazza 13-02-2013 12:27

B18, stando al tuo screenshot è il campo che contiene la somma
della colonna dei dati che hai inserito;

devi quindi inserire in B18 la formula =SOMMA(B2:B16)

estrai come voce del verbo estrarre e non come formula di excel;

Thoruno 13-02-2013 15:05

Quote:

Originariamente inviato da Melchiade (Messaggio 39023013)
Grazie Dr.Gazza per avermi risposto.

Non sono riuscito ad estrarre le ore perchè se digito la formula =ORE(B18) Excel mi dà "#NOME?".

Per caso per "estrai" intendi che io debba usare la formulta "stringa.estrai"?
Ho provato anche ad utilizzare questa formula ma mi dà un risultato in un formato differente dal formato hh:mm:ss. (dal totale 02:41:44 "stringa.estrai" mi dà il risultato "01" O_o).

Grazie ancora per il riscontro :)

La formula di Dr.Gazza è giusta, invece che ORE bisogna scrivere ORA.

Mario

dr.gazza 13-02-2013 15:18

Quote:

La formula di Dr.Gazza è giusta, invece che ORE bisogna scrivere ORA.
grazie..
non mi ero accorto! provvedo a sistemarla

BrAmBiLLa 13-02-2013 16:37

Un saluto a tutti.
Ho provato a spulciare su internet e qui nel forum ma non ho trovato la soluzione al mio problema. Ho Excel 2010.

Ho un file di EXCEL che uso come scadenziario, ho due fogli scadenziari che vorrei visualizzare anche uniti.

Il primo è uno scadenziario "automatico" (in un altro foglio chiamato "config" inserisco alcune date e sulla base di quelle date lui si ricalcola tutte le altre).
Il secondo è uno scadenziario "manuale" dove inserisco scadenze che non sono cicliche annuali ma sono degli unatantum.

Per entrambi i fogli vi sono le stesse 8 colonne (DATA,Descrizione,Ufficio,etc.).
Vorrei avere un foglio in cui visualizzo le date del foglio automatico e quelle del foglio manuale automaticamente e si possano mettere in ordine di scadenza e così generare il PDF da far circolare, etc.

Mi serve tenere 2 fogli separati in quanto quello manuale ci può mettere le mani chiunque ed a fine anno lo pulisco, mentre quello automatico deve rimanere protetto ed al cambio di anno sostituisco solo i parametri del foglio config per ritrovarmelo corretto.

Se il file funzionasse anche su Linux/LibreOffice sarebbe preferibile.

Tjherg 18-02-2013 10:24

Problema riorganizzazione dati da righe a colonne
 
Ragazzi ho bisogno di un aiuto mi trovo un bel problema da risolvere, ho una tabella con 10000 righe da rieditare vi spiego come

tabella come è ora


riga 1 |Nome e cognome |specializzazione| città residenza |

riga 2 | data di nacita |data specializ. | indirizzo ed email |

riga 3 come riga 1 e così via per 10000 righe

ovviamente la seconda riga riporta i dati relativi al nominativo della prima

Tabella come deve diventare


riga 1 |Nome e cognome|specializzazione|città |indirizzo | email

riga 2 come riga 1 e così via

le righe si dimezzaranno in quanto metà dei dati passeranno alle colonne

come posso fare?

dr.gazza 18-02-2013 16:36

Quote:

Originariamente inviato da Tjherg (Messaggio 39047665)
Ragazzi ho bisogno di un aiuto mi trovo un bel problema da risolvere, ho una tabella con 10000 righe da rieditare vi spiego come

tabella come è ora


riga 1 |Nome e cognome |specializzazione| città residenza |

riga 2 | data di nacita |data specializ. | indirizzo ed email |

riga 3 come riga 1 e così via per 10000 righe

una domanda: l'alternanza di righe è sicura?
o meglio sei sicuro che tutti dati "nascita" "specializzazione" "indirizzo"
siano su righe pari?

Tjherg 18-02-2013 22:18

Si è sicura ho controllato rispetto ai dati originali su piu' livelli della lista,
Ho riscontrato piu' cosse da fare dovrei estrapolare le email togliendole dall'indirizzo poi bisognerebbe eliminare tutte le righe dispari con uno script Vb..

dr.gazza 19-02-2013 09:51

ok
io l'avrei pensata così:
in primis aggiungo una colonna (A) dove mi creo un ID che equivale alla riga;

poi verificando se la riga è pari o dispari procedo a mettere tutto su una riga
come da screenshot

ottenuto il risultato di avere tutti i dati necessari su una riga unica,
mi sposto su un nuovo foglio dove imposto in cella A1 il valore di F1 e cosi via;

nel foglio 2 avro quindi i dati ma a righe alternate;

sul foglio 2 o con una macro o con una formattazione condizionale
elimino le righe vuote;


la macro seppur semplice (ma testata e funzionante) potrebbe essere
il valore To 100 va modificato una volta verificato il num di righe su cui operare;



Sub elimina()
ic = 1
ir = 1
For x = 1 To 100
If Cells(ir, ic) = Empty Then
Cells(ir, ic).EntireRow.Delete
ir = ir - 1
End If
ir = ir + 1
x = x + 1
Next
End Sub







per quanto riguarda lo split della mail / indirizzo
si può operare sulle stringhe ma in un secondo momento, ovvero dopo che hai sistemato la tabella sulla quale lavorare;

Tjherg 19-02-2013 15:25

Ragazzi ho risolto!!

Cerco di spiegare come ho fatto così posso aiutare qualcun'altro che abbia un caso simile

allora l'unico script in Vb che ho usato è stato solo per estrapolare la mail incollata nello stesso campo dell'indirizzo. Lo posto qui
Codice:

Public Function f(ByVal v As Variant) As String
    Dim s() As String
    Dim lng As Long
    f = ""
    s = Split(v, " ")
    For lng = 0 To UBound(s)
        If InStr(s(lng), "@") Then
            f = s(lng)
            Exit For
        End If
    Next
End Function

Sub Macro1

End Sub

E' grandioso praticamente estrapola solo i caratteri compresi fra @ fino agli spazi liberi

Poi mi sono ritrovato le celle dell'indirizzo che avevano le email incollate e le celle con solo le email allora ho creato questa espressione per eliminare esclusivamente i caratteri che c'erano nella cella delle email.

ecco l'espressione dove d2 è la cella che contiene indirizzo+email e e2 solo email come vedete vengono estratti solo i caratteri che saltano fuori dalla differenza delle stringhe contenute in d2-e2 partendo da sinistra.

Codice:

=STRINGA.ESTRAI(D2;1;LUNGHEZZA(D2)-LUNGHEZZA(E2))
infine per eliminare solo le righe pari ho creato in un altra colonna questa espressione


Codice:

=VAL.DISPARI(RIF.RIGA(A1))
Viene assegnato un valore vero se la riga è dispari altrimenti falso basta poi applicare un filtro automatico e selezionare esclusivamente il valore desiderato.

Ho fatto tutto con calc, beh non essendo un esperto di fogli di calcolo penso di aver fatto un buon lavoro!

dr.gazza 19-02-2013 20:37

ottimo lavoro, direi!

edit

gio_gio 09-03-2013 09:54

esportare in csv
 
salve, ho l'esigenza di importare in excel dei file csv per poi salvarli come tali.

la prima operazione riesco ad eseguirla senza problema, ma la seconda mi sta dando qualche rogna.

Il file csv è di questo tipo:

"dato","dato2","dato3" ecc ecc

quando però lo salvo, excel mi mette il ; ed elimina le "

utilizzo windows 7 e nell pannello di controllo in paese e lingua -> impost. aggiuntive o inserito la , come separatore di elenco ma nulla..

dove sbaglio?


grazie

Vincenzoflaminio 16-03-2013 12:30

Salve ,
chiedo il vostro parere : volevo sapere se avendo una matrice dove io controllo i miei orari lavorativi fatta in questo modo in excel


se è possibile fare in modo inserendo una data andare alla cella corrispondente.
Se fate caso la matrice ha solo una settimana di marzo e quindi io manualmente devo calcolarmi i giorni da quella data (partendo dal mio ciclo 12) per sapere il mio turno lavorativo.
C'è modo di fare qualcosa in excel che dato il mio input(la data) mi da l'orario corrispondente o è un idea complessa?

Raffaele53 20-03-2013 17:21

>>>Se fate caso la matrice ha solo una settimana di marzo
Non ci vedo, almeno non riesco a distinguere la data.

Mà i turni sono sempre alternati, significa che metti 3/4/5/6 e ricomincia d'accappo.
Excel lo fa benissimo.

fbcyborg 21-03-2013 15:30

Ciao!
Nella prima colonna ho dei valori, uno per riga, e nella seconda ne ho degli altri.
Come posso fare per sapere quali valori della seconda colonna sono presenti nella prima?
Ho provato con cerca verticale ma non ci riesco. Qualcuno può aiutarmi?

dr.gazza 21-03-2013 19:28

Quote:

Originariamente inviato da fbcyborg (Messaggio 39222411)
Ciao!
Nella prima colonna ho dei valori, uno per riga, e nella seconda ne ho degli altri.
Come posso fare per sapere quali valori della seconda colonna sono presenti nella prima?
Ho provato con cerca verticale ma non ci riesco. Qualcuno può aiutarmi?

potresti usare la formattazione condizionale > mostra valori duplicati.

fbcyborg 22-03-2013 07:53

Quote:

Originariamente inviato da dr.gazza (Messaggio 39223858)
potresti usare la formattazione condizionale > mostra valori duplicati.

Grazie, sembra una cosa abbastanza efficace. :cincin:


Tutti gli orari sono GMT +1. Ora sono le: 22:42.

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