› Excel e gli applicativi Microsoft Office › spostamento macchinari
Stai vedendo 21 articoli - dal 1 a 21 (di 21 totali)
-
AutoreArticoli
-
---ricreo il post perchè l'allegato non era stato caricato----Buongiorno a tutti,mi potreste aiutare a risolvere un grosso problema con matrici e confronti (suppongo) ?Ho creato un file per tenere traccia degli spostamenti di alcuni macchinari tra postazioni p1, p2, p3, ecc…Avrei bisogno che le celle evidenziate in giallo nel file allegato, siano compilate “automaticamente” (senza VBA) avendo come dati di input le celle evidenziate in erde.E’ possibile ? …per me è un po’ complicato 🙁Grazie a chi vorrà/saprà aiutarmiCiao lucahetto55ff,per il momento abbimo dei problemi per quanto riguarda gli allegati, se puoi postare il file su Dropbox è ci comunichi il link , in modo da poterlo scaricare, perchè non avendo l'allegato mi sembra difficile poterti aiutareQual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, chepensiamo diversamente?
( Alan Turing)
Sempre il mare, uomo libero, amerai!
( Charles Baudelaire )eccolo. grazie mille!Ciao Abatros54, hai avuto modo di vedere il file ?Capito poco, comunque, se tu vuoi formattare le celle in giallo del range "Spostamenti effettuati" variando i valori delle celle verdi manualmente, basta inserire la formula che ti posto nella cella "E3" e la copi in basso, se pero entrano in gioco le altre celle degli altri range, non ho capito il ragionamento=SE(H3="ok";G3;F3)Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
Sempre il mare, uomo libero, amerai! ( Charles Baudelaire )purtroppo non è così semplice... 🙁Ho bisogno di tenere traccia degli spostamenti dei macchinari. Per farlo, compilo le colonne C, D, F, G, H dove scrivo che , ad esempio, per il macchinario M1 è stato previsto lo spostamento da "Magazzino a p54" in data 21/3. La conferma è data con "ok" nella cella H3.Questo si riscontra nella cella E3, K3 e K12 che devono essere compilate in automatico.In pratica, i dati di input sono quelli delle colonne C, D, F , G, K mentre nelle celle colorate in giallo, con qualche formula, dovranno apparire i risultati degli spostamentiTutto qua 🙂Grazie !Ciao Albatros54 (Ginuzzu), se non sono stato chiaro ti prego di dirmelo...Aspetto tue notizie 👍Avrei bisogno che le celle evidenziate in giallo nel file allegato, siano compilate “automaticamente” (senza VBA) avendo come dati di input le celle evidenziate in erde.Non riesco a capire i tuoi paletti(senza VBA),con qualche formula,perche con le formule non sono ferrato, possiamo tentare un primo approncio col VBA(forse)Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing) Sempre il mare, uomo libero, amerai! ( Charles Baudelaire )Ho buttato giu due righe di codice VBA.incolla il codice nel modulo del foglio1 del file che hai postato,il codice funziona con la struttura del file postato, per il momento effettua le variazioni nel range delle "postazioni Occupata",prova a variare i valori delle colonne "C,D,H",nel range delle "postazioni Occupate"vedrai i valori della colonna "E". Piu di questo per il momentoOption Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim RngMacchina As Range, rngDa As Range, rngA As Range Dim rngConferma As Range, rngdata As Range, DataPoccupata As Range Dim MacPoccupata As Range Dim d As Variant, M As Variant Dim indiD As Integer, indiM As Integer Set RngMacchina = Range("c3:c9") Set rngDa = Range("f3:f9") Set rngA = Range("g3:g9") Set rngConferma = Range("h3:h9") Set rngdata = Range("d3:d9") Set DataPoccupata = Range("k2:o2") Set MacPoccupata = Range("j3:j7") If Not Intersect(Target, RngMacchina) Is Nothing Then For Each d In MacPoccupata If d = Target Then indiD = d.Row End If Next For Each M In DataPoccupata If M = Target.Offset(0, 1) Then indiM = M.Column End If Next Cells(indiD, indiM) = Target.Offset(0, 2) End If If Not Intersect(Target, rngdata) Is Nothing Then For Each d In DataPoccupata If d = Target Then indiD = d.Column End If Next For Each M In MacPoccupata If M = Target.Offset(0, -1) Then indiM = M.Row End If Next Cells(indiM, indiD) = Target.Offset(0, 1) End If If Not Intersect(Target, rngConferma) Is Nothing Then For Each d In DataPoccupata If d = Target.Offset(0, -4) Then indiD = d.Column End If Next For Each M In MacPoccupata If M = Target.Offset(0, -5) Then indiM = M.Row End If Next Cells(indiM, indiD) = Target.Offset(0, -3) End If End SubQual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
Sempre il mare, uomo libero, amerai!
( Charles Baudelaire )Buonaserain E3 da trascinare in basso=SE(H3="ok";G3;F3)in K3 da trascinare a destra e poi in basso=SE.ERRORE(SE(CONTA.SE($J3:J3;SCEGLI(SE(MATR.SOMMA.PRODOTTO(($C$3:$C$9=$J3)*($D$3:$D$9=K$2)*($H$3:$H$9="ok"))>0;1;2);INDICE($E$3:$E$9;AGGREGA(15;6;(RIF.RIGA($A$3:$A$9)/(($C$3:$C$9=$J3)*($D$3:$D$9=K$2)*($H$3:$H$9="ok")))-RIF.RIGA($A$3)+1;1));INDICE($F$3:$F$9;AGGREGA(15;6;(RIF.RIGA($A$3:$A$9)/(($C$3:$C$9=$J3)*($D$3:$D$9=K$2)*($H$3:$H$9<>"ok")))-RIF.RIGA($A$3)+1;1))))>0;"";SCEGLI(SE(MATR.SOMMA.PRODOTTO(($C$3:$C$9=$J3)*($D$3:$D$9=K$2)*($H$3:$H$9="ok"))>0;1;2);INDICE($E$3:$E$9;AGGREGA(15;6;(RIF.RIGA($A$3:$A$9)/(($C$3:$C$9=$J3)*($D$3:$D$9=K$2)*($H$3:$H$9="ok")))-RIF.RIGA($A$3)+1;1));INDICE($F$3:$F$9;AGGREGA(15;6;(RIF.RIGA($A$3:$A$9)/(($C$3:$C$9=$J3)*($D$3:$D$9=K$2)*($H$3:$H$9<>"ok")))-RIF.RIGA($A$3)+1;1))));"")in K12 da trascinare a destra e poi in basso=SE.ERRORE(INDICE($C$3:$C$9;AGGREGA(15;6;(RIF.RIGA($B$3:$B$9)/(($E$3:$E$9=$J12)*($D$3:$D$9=K$10)>0))-2;1));"")Grazie Danilo e grazie Albatros per la disponibilità!!!la soluzione di Danilo a preferisco perchè trovo più semplice adattare le formule per modifiche successive...Vorrei chiedere a Danilo, approfittando della sua disponibilità, di correggere un piccolo "bug".In pratica, quando si verifica lo spostamento dello stesso macchinario, 2 o più volte nello stesso giorno, la tabella "Postazione occupata" registra il primo spostamento anzichè l'ultimo.E' possibile ovviare ?GrazieCiaoio ho fatto la formula in base al risultato che intendevi ottenere non è che abbia capito molto come gestisci questi spostamenti.....prova a sostituire in tutte le funzioni AGGREGA il 15 con 14 in maniera che in caso di doppi va a pescare l'ultimo....se non dovesse andare allega un file con le varie casistiche e il risultato da ottenere scritto a manoCiao Danilo,con AGGREGA 14 ottengo il risultato sperato.Mi sono accorto però che c'è un altro problema rispetto alla colonna E.Per come è fatta ora, riporta, se confermata con "ok", la postazione di arrivo e se non confermata la presunta posizione di partenza. Questo non va bene.Dovrebbe essere riporta solo l'ultima posizione confermata altrimenti avremmo come risultato (vedi celle rosse) che la macchina M2 (nell'esempio allegato) si trova contemporaneamente in 2 posti diversi....Allegati:
You must be logged in to view attached files.Buonaserama il problema è solo sulla tabella di sotto??....a patto di avere bene interpretato aggiungi la condizione dell'"ok" quindi in K12 da trascinare a destra e poi in basso=SE.ERRORE(INDICE($C$3:$C$9;AGGREGA(14;6;(RIF.RIGA($B$3:$B$9)/(($E$3:$E$9=$J12)*($D$3:$D$9=K$10)>0)*($H$3:$H$9="ok"))-2;1));"")è perfetto!!!!Grazie!!!!!!Ciao D@anilo,ho corretto l'ultima parte della formulaDa”ok”))-2;1));””)a”ok”))-3;1));””)perché non visualizzava il valore corretro ma quello della riga successiva.Ora, però, ti chiederei la grande cortesia di rivederla perché anche in questo caso (tabella di sotto) in caso di 2 spostamenti nello stesso giorno dovrebbe scrivere solo l'ultimo (e non entrambi)grazie infinite 😉buonaseraallega un file con i risultati che ottieni e scritti a mano quelli che dovresti ottenerese hai corretto da -2 a -3 magari è che sul foglio dove lavori la matrice parte da una riga più in bassociao, in allegato il file con la situazione che vorrei ottenere (colonne P:S). vedi commento cella Q34GrazieAllegati:
You must be logged in to view attached files.Buongiornoho provato in tutte le maniere ma restituisce sempre il doppio risultato in quanto le condizioni di data postazione e OK vengono soddisfatte quindi credo che con la tabella impostata in questo modo non ci sia soluzioneallora ho invertito la costruzione della tabella nel file che allego da X4 a X26 ho messo l'elenco delle macchine da Y3 a AA3 le datein Y4 da trascinare a destra e poi in basso=SE.ERRORE(CERCA(2;1/(($D$4:$D$28=Y$3)*($H$4:$H$28="ok")*($C$4:$C$28=$X4));$E$4:$E$28);"")praticamente invece di avere dall'elenco di postazioni in base alla data la macchina abbiamo la postazione in base alla macchinaAllegati:
You must be logged in to view attached files.Ciao Danilo,in realtà il tipo di soluzione individuata ora me l'avevi già proposta ma con una "logica" differente (la formula è molto più complicata 🙂 )Non si può raggiungere il risultato desiderato partendo da questa formula da adattare per avere l'elenco delle postazioni per data?=SE.ERRORE(SE(CONTA.SE($M4:M4;SCEGLI(SE(MATR.SOMMA.PRODOTTO(($C$4:$C$1000=$M4)*($D$4:$D$1000=N$3)*($H$4:$H$1000="ok"))>0;1;2);INDICE($E$4:$E$1000;AGGREGA(14;6;(RIF.RIGA($A$4:$A$1000)/(($C$4:$C$10=$M4)*($D$4:$D$1000=N$3)*($H$4:$H$1000="ok")))-RIF.RIGA($A$4)+1;1));INDICE($F$4:$F$1000;AGGREGA(14;6;(RIF.RIGA($A$4:$A$1000)/(($C$4:$C$1000=$M4)*($D$4:$D$1000=N$3)*($H$4:$H$1000<>"ok")))-RIF.RIGA($A$4)+1;1))))>0;"";SCEGLI(SE(MATR.SOMMA.PRODOTTO(($C$4:$C$1000=$M4)*($D$4:$D$1000=N$3)*($H$4:$H$1000="ok"))>0;1;2);INDICE($E$4:$E$1000;AGGREGA(14;6;(RIF.RIGA($A$4:$A$1000)/(($C$4:$C$1000=$M4)*($D$4:$D$1000=N$3)*($H$4:$H$1000="ok")))-RIF.RIGA($A$4)+1;1));INDICE($F$4:$F$1000;AGGREGA(14;6;(RIF.RIGA($A$4:$A$1000)/(($C$4:$C$1000=$M4)*($D$4:$D$1000=N$3)*($H$4:$H$1000<>"ok")))-RIF.RIGA($A$4)+1;1))));"")allego l'esempiograzieAllegati:
You must be logged in to view attached files.Ciaocon excel si può fare quasi tutto ma i miracoli no per come vuoi impostata la tabella di output se con la stessa data ci sono due o più spostamenti li riporta per forza tutti in quanto il cuore di ogni formula che si può usare o con AGGREGA o con CERCA($E$4:$E$1000=$K5)*($D$4:$D$1000=L$3)*($H$4:$H$1000="ok")in pratica sono le tre condizioni per estrarre un dato dalla colonna delle macchine quindi verifica che in colonna E ci sia la macchina che in colonna D ci sia la data e che in colonna H ci sia OK...se le tre condizioni vengono soddisfatte il dato in colonna C viene estratto quindi nell'esempio postato in riga 25 e 26 troviamo M18 in colonna D riga 25 e 26 troviamo 21/03/2018 e in colonna H abbiamo i due Ok di verifica qualsiasi formula di estrazione dei dati ti riporterà entrambi gli M18Allora non serve allegare ogni volta un nuovo file con sempre più tabelle inserite se vuoi ottenere quello che chiedi ti dico che cosi è impossibile se fai come ti ho già suggerito e cioè mettere come criterio di ricerca le macchine e come output le postazioni come da file che ti ho allegato ottieni i risultati corretti altrimenti un grosso in bocca al lupo.....Detto questo chiudo qui il mio contributo augurandoti magari che qualcuno più preparato ti possa aiutare meglio -
AutoreArticoli
Stai vedendo 21 articoli - dal 1 a 21 (di 21 totali)
