Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Γενικά] Εύρεση τελευταίας καταχώρισης (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/3284-eiresi-teleytaias-kataxorisis.html)

jockey17 29-08-14 18:55

Εύρεση τελευταίας καταχώρισης
 
1 Συνημμένο(α)
Σε ένα φύλλο παρακολούθησης (τρόπον τινά πρωτόκολλο) των μετακινήσεων εγγράφων από ένα τμήμα σε ένα άλλο, ο στόχος μου είναι να γνωρίζω ποιος είναι ο τελευταίος παραλήπτης του εκάστοτε εγγράφου. Έτσι όπως το έστησα στο συνημμένο αρχείο, προϋπόθεση να μου δώσει ο συγκεντρωτικός πίνακας τη σωστή πληροφορία είναι ότι όλες οι καταχωρίσεις έχουν γίνει με σωστή χρονική σειρά. Εάν γίνει μία καταχώριση εκ των υστέρων (προγενέστερη ημερομηνία στο τέλος των καταχωρίσεων) θα λάβω λάθος πληροφορία για το ποιος έχει το έγγραφο. Έχει κανείς καμία άλλη ιδέα για την επίτευξη τέτοιου στόχου; Με κάποιες άλλες συναρτήσεις ίσως ή με διαφορετικό τρόπο στησίματος του τρόπου παρακολούθησης των μετακινήσεων των εγγράφων;
Ο λόγος που χρησιμοποιώ συγκεντρωτικό πίνακα αντί των φίλτρων μέσα στο ίδιο το φύλλο των καταχωρίσεων για να εντοπίσω ένα οποιοδήποτε έγγραφο είναι αφ’ ενός ότι πρόκειται για μεγάλο πλήθος καταχωρίσεων και μετακινήσεων μεταξύ τμημάτων, αλλά και αφ’ ετέρου για να έχω μια συνοπτική εικόνα για το συνολικό πλήθος των εγγράφων και που βρίσκονται αυτά μία δεδομένη χρονική στιγμή. Επίσης στοχεύω να βρω πως θα μπορούσα να έχω αυτή την εικόνα και για παρελθόντες χρονικές στιγμές (που βρισκόταν τα έγγραφα στην τάδε ημερομηνία).
Ευχαριστώ εκ των προτέρων για οποιαδήποτε βοήθεια και πρόταση.

Φιλικά
Δημήτρης

Spirosgr 29-08-14 21:35

Καλησπέρα
Κατ' αρχήν να ρωτήσω κάτι.
Στην γραμμή 10 το έγγραφο 105 πάει από το α στο β τμήμα
Στην γραμμή 16 το ίδιο έγγραφο εμφανίζεται αυθαίρετα στο τμήμα α και πάλι.
θα υπάρχουν και τέτοια λάθη στην διαδικασία ή ξέφυγε εκ παραδρομής

kapetang 29-08-14 22:33

1 Συνημμένο(α)
Καλησπέρα στην παρέα

Προκαταρτικά:

1) Επειδή την ίδια ημερομηνία μπορεί να έχουμε πολλές μετακινήσεις ενός εγγράφου, δεν αρκεί μόνο η ημερομηνία χρειάζεται και η ώρα.

2) Η στήλη From δε χρειάζεται. Αν ξέρουμε τη χρονική στιγμή που το έγγραφο μπήκε σε κάποιο τμήμα, ταξινομώντας κατά έγγραφο και ημερομηνία βλέπουμε αμέσως τη διαδρομή του.

Φιλικά/Γιώργος

jockey17 29-08-14 23:03

Καλησπέρα στην παρέα και ευχαριστώ για την ανταπόκριση.

Σπύρο η εμφάνιση του ίδιου εγγράφου ξέφυγε εκ παραδρομής από εμένα. Θεώρησε πως η γραμμή 10 δεν υπάρχει. Στη γραμμή 16 η καταχώριση μου θέλει να απεικονίσει πως το τμήμα Α που είναι υπεύθυνο για την συγγραφή συμβάσεων του έχει μεν ανατεθεί η εργασία, έχει ετοιμάσει το έγγραφο αλλά για κάποιο λόγο δεν μπορεί ακόμα να το προωθήσει στο τμήμα Β το οποίο θα κάνει τον έλεγχο της σύμβασης. Έτσι για να φαίνεται η εκκρεμότητα του (σκέφτηκα να) κάνει αυτή την καταχώριση ώστε να φαίνεται τόσο το πραγματικό πλήθος των εγγράφων στο σύνολο του καθώς και ότι αυτό βρίσκεται ακόμα στο τμήμα Α.
Οπότε Γιώργο για την παραπάνω απεικόνιση νομίζω πως χρειάζεται η στήλη From καθώς και εξ’ αιτίας του γεγονότος ότι η πορεία του εγγράφου δεν είναι απλά:
Τμήμα Α (συγγραφή) σε Τμήμα Β (έλεγχος) σε Τμήμα Γ (προϊστάμενος / υπογραφές) σε Τμήμα Δ (καταχώριση στο σύστημα και αποστολή) – Αυτό θα ήταν η τέλεια ροή
Μπορεί το έγγραφο να επιστρέψει στο Τμήμα Α λόγω λαθών όχι μόνο από Τμήμα Β που ελέγχει, αλλά είτε από αυτόν που θα πρέπει να το υπογράψει και εντοπίσει κάποιο λάθος (εδώ: Τμήμα Γ) είτε και από το τμήμα που θα κάνει την καταχώριση στο σύστημα και εκεί λόγω με εφικτής καταχώρισης θα διαπιστωθεί το λάθος. Οπότε θέλουμε να γνωρίζουμε ποιος το επιστρέφει πίσω για διορθώσεις (π.χ. κάνει σωστά τη δουλειά του το τμήμα ελέγχου;). Επίσης πράγματι χρειάζεται και η ώρα επειδή την ίδια μέρα πηγαίνει και έρχεται το έγγραφο (άλλος ένα δείκτης εάν με αντιλαμβάνεστε – γιατί πηγαίνει και έρχεται συνεχώς;). Στο παράδειγμα που ανέβασα δεν την συμπεριέλαβα σαν στήλη επειδή σκέφτομαι να γεμίζω μία βοηθητική στήλη με VBA την ώρα της καταχώρισης της εγγραφής. Αν και αυτό δεν είναι απόλυτα σωστό τώρα που το σκέφτομαι καλύτερα και ίσως είναι καλύτερα να την καταχωρεί και αυτή ο χρήστης.
Όντως με μία ταξινόμηση βλέπουμε αμέσως τη διαδρομή του, αλλά παράλληλα χρειάζεται και η πληροφορία του συνολικού πλήθους των συμβάσεων γι’ αυτό και ο συγκεντρωτικός πίνακας.

Φιλικά
Δημήτρης

Spirosgr 29-08-14 23:21

1 Συνημμένο(α)
Κατ' αρχήν, αν θεωρήσουμε ότι το έργο αυτό είναι μια «βάση δεδομένων»
δεν επιτρέπετε να έχουμε κενά κελιά, με μηδενική πληροφορία.
Σε περίπτωση εκκρεμότητας, θα πρέπει να βρεις κάποιο χαρακτηριστικό, ώστε να «φαίνεται»
η εκκρεμότητα αυτή, πχ In Progress και να γεμίζουν τα κελιά.
Τώρα το βασικό θέμα για μένα είναι να λυθούν κατ' αρχήν δύο σημαντικά προβλήματα.
Το πρώτο είναι, να μην είναι υποχρεωμένος ο χρήστης να έχει ταξινομημένες εγγραφές.
Να μπορεί απλά να καταχωρεί «χύμα» τις εγγραφές (μετακινήσεις) ώστε να διευκολύνει την
εργασία του αλλά να έχει και σωστό αποτέλεσμα όποτε χρειαστεί
και το δεύτερο είναι να ξέρει πότε κινήθηκε για τελευταία φορά κάποιο έγγραφο ώστε να
μπορεί μετά (με τύπο πιθανόν) να έχει και τον κάτοχο του εγγράφου σε δεδομένη χ ημερομηνία ή χρονική στιγμή.
Στο βιβλίο υπάρχει στην στήλη Ι μια formula με VBA (Last Transaction) που λύνει και τα δύο αυτά βασικά θέματα.

kapetang 29-08-14 23:25

Η ροή μπορεί να είναι οποιαδήποτε, όπως:

Τμήμα Α > Τμήμα Β > Τμήμα Α > Τμήμα Β > Τμήμα Γ> Τμήμα Α> κλπ, αρκεί να ξέρουμε την ημερομηνία και την ώρα που εισέρχεται το έγγραφο σε οποιοδήποτε τμήμα.

Η ημερομηνία και η ώρα καταχωρούνται στην ίδια στήλη.

kapetang 30-08-14 00:23

1 Συνημμένο(α)
Καλημέρα

Μια προσέγγιση, σύμφωνα με τις επισημάνσεις μου, με 2 συγκεντρωτικούς πίνακες.

Οι εγγραφές δε χρειάζεται να είναι ταξινομημένες.

Φιλικά/Γιώργος

Spirosgr 30-08-14 06:51

1 Συνημμένο(α)
Στο βιβλίο που ακολουθεί υπάρχει μια λύση στην οποία δεν χρειαζόμαστε κανένα άλλο φύλλο
για να πάρουμε αποτελέσματα.
Όλα όσα χρειαζόμαστε τα παίρνουμε από το ίδιο φύλλο των καταχωρήσεων.
Ο χρήστης εισάγει μια νέα γραμμή καταχωρεί μια κίνηση και αυτόματα έχει τις ημερομηνίες κίνησης εγγράφων με την νεώτερη επάνω - επάνω οπότε δεν χρειάζεται να ψάχνει στο τέλος του φύλλου αν υπάρχουν πολλές εγγραφές.

Τι μπορεί να πάρει ο χρήστης με αυτήν την μέθοδο:
1 Τελευταία κίνηση ανά έγγραφο
2 Τελευταία κίνηση γενικά και σε ποιο έγγραφο έγινε
3 Που βρίσκεται τώρα κάθε έγγραφο (σε ποιο τμήμα)
4 Διαδρομή επιλεγμένου εγγράφου από την δημιουργία του μέχρι σήμερα
5 Σε επιλεγμένο έγγραφο ποιο τμήμα το έστειλε στον τελευταίο παραλήπτη

Λεπτομέρειες στο βιβλίο

jockey17 30-08-14 10:56

Καλημέρα.
Σπύρο η δική σου πρόταση πιστεύω είναι ποιο κοντά σε αυτό που φανταζόμουν καθώς διευκολύνει κατά την καταχώριση η αυτόματη εισαγωγή της ημερομηνίας / ώρας και έχει και το πλεονέκτημα, ότι οι νεότερες εγγραφές είναι επάνω – επάνω.
Σας ευχαριστώ πολύ και τους δύο για τις προτεινόμενες λύσεις.
Να είστε καλά.
Φιλικά
Δημήτρης

kapetang 30-08-14 14:49

1 Συνημμένο(α)
Καλησπέρα στην παρέα

Η λύση του Σπύρου είναι λειτουργική και όμορφη και την προτιμώ.

Εκείνο που δεν καταλαβαίνω είναι γιατί να πληκτρολογούμε ή να επιλέγουμε περιττά στοιχεία.

Όταν καταχωρούμε τη χρονική στιγμή που ένα έγγραφο εισέρχεται (ή δημιουργείται) σε ένα τμήμα έχουμε όλα τα στοιχεία:

1) Άμεσα το τμήμα στο οποίο βρίσκεται (To).

2) Έμμεσα την προέλευσή του (From).

Αρκεί να βρούμε την προηγούμενη καταχώρηση (προηγούμενη χρονική στιγμή) για το έγγραφο και το αντίστοιχο τμήμα.

Αν δεν υπάρχει προηγούμενη καταχώρηση το έγγραφο εισήλθε πρώτη φορά στο τμήμα ή δημιουργήθηκε εκεί.

Η καταχώρηση και στις δύο στήλες (To και From) δημιουργεί επιπλέον δουλειά και μπορεί να βρεθούμε στην ακόλουθη κατάσταση:

Να μετακινείται ένα έγγραφο από το τμήμα Χ στο τμήμα Υ, αλλά στην προηγούμενη χρονική στιγμή αυτό δεν ήταν στο τμήμα Χ.

Τα παραπάνω τα γράφω για προβληματισμό.

Σε κάθε περίπτωση εσύ αποφασίζεις.

Στο επισυναπτόμενο βιβλίο εργασίας υπάρχει μια λύση σύμφωνα με τα παραπάνω στο πρότυπο του Σπύρου.

Φιλικά/Γιώργος

jockey17 30-08-14 19:04

Καλησπέρα Γιώργο.
Στο προτεινόμενο σου αρχείο εξυπηρετεί επίσης ο χρωματισμός της τελευταίας καταχώρισης εκάστου εγγράφου. Κατανοώ το σκεπτικό σου και σαφώς είναι καλύτερα να περιορίζεται όσο το δυνατό γίνεται η καταχώριση.
Για να καταλάβω όμως καλύτερα, σύμφωνα με το σκεπτικό σου ποιος είναι (ποιο τμήμα) είναι αυτό που θα κάνει την καταχώριση; Αυτό που δίνει θα επιλέξει στη μία και μόνη στήλη το τμήμα στο οποίο θα παραδώσει ή αυτό που λαμβάνει θα επιλέξει να καταχωρίσει το τμήμα από το οποίο το έλαβε;
Θα μου πεις αυτό είναι οργανωτικό θέμα. Όμως σε αυτό που παραθέτεις ως προβληματισμό να πω μόνο το εξής. Αποφανθήκαμε ότι την καταχώριση στο πρωτόκολλο θα πρέπει να την κάνει το τμήμα που παραδίδει για δύο λόγους:
Α) Επειδή καταχωρώντας «ξεχρεώνει» ας το πούμε έτσι τον εαυτό του, κι έτσι έχει ένα κίνητρο παραπάνω να μη ξεχάσει να προβεί στην καταχώριση της κίνησης αυτής, επειδή έως σήμερα πολλές καταχωρίσεις μας λείπουν αφού πολύ ανθρώπινα ξεχνιότανε.
Β) Αυτός που παραλαμβάνει και ειδικά το τμήμα ελέγχου, όταν του προσκομίζεται ένας πάκος με έγγραφα, εκείνη τη στιγμή δουλεύει πάνω στον έλεγχο κάποιου άλλου εγγράφου και δεν θέλει να διακόψει τη δουλειά του για να κάνει την καταχώριση, ενώ ο άλλος έχει ολοκληρώσει την εργασία του και επομένως μπορεί να προβεί και άμεσα στην καταχώριση της επικείμενης παράδοσης.
Οπότε σύμφωνα με τα παραπάνω και υποθέτοντας ότι έχουμε μόνο μία στήλη στην οποία καταχωρεί αυτός που παραδίδει, θα επιλέγει το τμήμα στο οποίο πρόκειται να παραδώσει. Αυτό που λες ότι βρίσκοντας χρονικά την αμέσως προηγούμενη καταχώριση έχουμε αυτόματα το αμέσως προηγούμενο τμήμα που το είχε, μου είναι κατανοητό, αλλά δυσκολεύομαι να το φανταστώ πως γίνεται στην πράξη αυτό. Δηλαδή πέρα από τη μέγιστη ή ελάχιστη ημερομηνία (χρησιμοποιώντας max / min) πως βρίσκεις την αμέσως προηγούμενη; Μήπως με χρήση σύνθετων συναρτήσεων «βαρύνει» το αρχείο;
Επίσης δεν κατάλαβα και πολύ καλά στους ορισμούς ονομάτων τα εξής:
=Protocoll!$B$3:INDEX(Protocoll!$B:$B;COUNTA(Proto coll!$A:$A))
=Protocoll!$A$3:INDEX(Protocoll!$A:$A;COUNTA(Proto coll!$A:$A))
(λέμε δηλαδή π.χ. Β3: έως ….τι επιστρέφει δηλ. η Index και γιατί όχι μόνο Counta, η οποία παρεμπιπτόντως της λείπει μία γραμμή για να καλύψει όλη την περιοχή)

Σε ευχαριστώ για το χρόνο σου.

Φιλικά
Δημήτρης

kapetang 30-08-14 20:06

Καλησπέρα

Δημήτρη:

1) Καταχωρείται πάντα το Τμήμα που παραλαμβάνει το έγγραφο και η χρονική στιγμή της παραλαβής.

Το καλύτερο είναι η καταχώρηση να γίνεται τη στιγμή της παράδοσης και από τα δύο μέλη.

2) Μπορούμε εύκολα να βρούμε την προηγούμενη μιας ημερομηνίας, αν ταξινομήσουμε τις ημερομηνίες.

Υπάρχουν όμως και συναρτήσεις, όπως για παράδειγμα η LARGE()

3) Όταν γράφουμε A1:C10 ορίζουμε μια ορθογώνια περιοχή με πάνω αριστερά κορυφή το κελί A1 και κάτω δεξιά το κελί C10.

Αυτό κάνουν και οι τύποι που ορίζουν τα ονόματα. Η INDEX ορίζει το κάτω δεξιό κελί.

Έχεις δίκιο ότι δεν καλύπτεται η τελευταία γραμμή. Το λάθος προήλθε από τη μετακίνηση της λίστας προς τα κάτω για να μπει το κουμπί.

Διόρθωσε τους τύπους προσθέτοντας μετά την CAUNTA το 1

=Protocoll!$A$3:INDEX(Protocoll!$A:$A;COUNTA(Proto coll!$A:$A)+1)

4) Πιθανόν θα το ξέρεις. Η λίστα μπορεί να φιλτραριστεί και ως προς το χρώμα.

Αν επιλέξουμε το κόκκινο θα πάρουμε όλα τα έγγραφα και τα τμήματα που τα έχουν

Φιλικά/Γιώργος

jockey17 30-08-14 20:31

Γιώργο, σου είναι εύκολο να δώσεις ένα παράδειγμα χωρίς να χρειάζεται ταξινόμηση πως με τη Large θα εντόπιζες την αμέσως προηγούμενη καταχώριση εκάστου εγγράφου;


Σχετικά με την Index
INDEX(array, row_num, [column_num])

Κι έτσι όπως τη χρησιμοποιείς είναι εάν κατάλαβα σωστά ότι παρέλειψες τον ορισμό για το [column_num] και έτσι λαμβάνει εξ’ ορισμού ότι αφορά μόνο μία στήλη;
=Protocoll!$A$3: [ INDEX(Protocoll!$A:$A;COUNTA(Proto coll!$A:$A)+1) ]

Δηλαδή θα μπορούσε να καταχωρηθεί κι έτσι;
=Protocoll!$A$3: [ INDEX(Protocoll!$A:$A;COUNTA(Proto coll!$A:$A)+1 ; 1 ) ]

Φιλικά
Δημήτρης

kapetang 30-08-14 21:24

Καλησπέρα

Νομίζω κάνεις τη ζωή σου δύσκολη.

Η ταξινόμησε στο Excel και εύκολη είναι και ταχύτατη.

Για τη LARGE:

1) Βάλε στο J3, ένα έγγραφο πχ 101

2) Στο κελί K3 τον τύπο:

=LARGE(tblData[Date]*(tblData[Document Nr]=$J$3);ROWS($J$3:$J3))

Και πάτησε Control, Shift και Enter για να γίνει τύπος πίνακα (εγκλειστεί σε αγκύλες).

3) Αντίγραψε τον τύπο προς τα κάτω όσο χρειάζεται (εμφανίζονται μηδενικά).

4) Μορφοποίησε τους αριθμούς σε ημερομηνία και ώρα (η/μ/εεεε ωω:λλ).

Για την INDEX συμφωνώ.

Φιλικά/Γιώργος

jockey17 30-08-14 22:44

Ευχαριστώ για την πολύτιμη βοήθεια.
Να είσαι καλά

Φιλικά
Δημήτρης


Η ώρα είναι 19:35.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2