Excel e gli applicativi Microsoft Office spostamento macchinari

Login Registrati
Stai vedendo 21 articoli - dal 1 a 21 (di 21 totali)
  • Autore
    Articoli
  • #3058 Score: 0 | Risposta
    ---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à aiutarmi
    #3059 Score: 0 | Risposta

    albatros54
    Moderatore
      89 pts
      Ciao 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 aiutare

       

      Qual è 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 )
      #3062 Score: 0 | Risposta
      #3183 Score: 0 | Risposta
      Ciao Abatros54, hai avuto modo di vedere il file ?
      #3194 Score: 0 | Risposta

      albatros54
      Moderatore
        89 pts
        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 )
        #3226 Score: 0 | Risposta
        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 spostamenti
        Tutto qua 🙂
         
        Grazie !
        #3426 Score: 0 | Risposta
        Ciao Albatros54 (Ginuzzu), se non sono stato chiaro ti prego di dirmelo...
         
        Aspetto tue notizie 👍
        #3427 Score: 0 | Risposta

        albatros54
        Moderatore
          89 pts
          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 )
          #3429 Score: 0 | Risposta

          albatros54
          Moderatore
            89 pts
            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 momento
             
            Option 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 Sub
            
            
             
            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 )
            #3431 Score: 0 | Risposta

            D@nilo
            Partecipante
              12 pts
              Buonasera
              in 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));"")
               
              #3443 Score: 0 | Risposta
              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 ?
               
              Grazie
              #3456 Score: 0 | Risposta

              D@nilo
              Partecipante
                12 pts
                Ciao
                io 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 mano
                #3479 Score: 0 | Risposta
                Ciao 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.
                #3486 Score: 0 | Risposta

                D@nilo
                Partecipante
                  12 pts
                  Buonasera
                  ma 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));"")
                  #3514 Score: 0 | Risposta
                  è perfetto!!!!
                  Grazie!!!!!!
                  #3722 Score: 0 | Risposta
                  Ciao D@anilo, 
                  ho corretto l'ultima parte della formula
                  Da
                  ”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 😉
                  #3726 Score: 0 | Risposta

                  D@nilo
                  Partecipante
                    12 pts
                    buonasera 
                    allega un file con i risultati che ottieni e scritti a mano quelli che dovresti ottenere
                     
                    se hai corretto da -2 a -3 magari è che sul foglio dove lavori la matrice parte da una riga più in basso
                    #3794 Score: 0 | Risposta
                    ciao, in allegato il file con la situazione che vorrei ottenere (colonne P:S). vedi commento cella Q34
                     
                    Grazie
                    Allegati:
                    You must be logged in to view attached files.
                    #3822 Score: 0 | Risposta

                    D@nilo
                    Partecipante
                      12 pts
                      Buongiorno
                      ho 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 soluzione
                      allora 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 date
                      in 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 macchina
                       
                      Allegati:
                      You must be logged in to view attached files.
                      #3844 Score: 0 | Risposta
                      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'esempio
                       
                      grazie
                       
                      Allegati:
                      You must be logged in to view attached files.
                      #3852 Score: 0 | Risposta

                      D@nilo
                      Partecipante
                        12 pts
                        Ciao
                        con 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 M18
                        Allora 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
                      Login Registrati
                      Stai vedendo 21 articoli - dal 1 a 21 (di 21 totali)
                      Rispondi a: spostamento macchinari
                      Gli allegati sono permessi solo ad utenti REGISTRATI
                      Le tue informazioni: