![]() |
Εύρεση Διπλοεγγραφών σε συγχωνευμένα κελιά 1 Συνημμένο(α) καλημέρα στο Forum, εύχομαι να είστε καλά. Αντιμετωπίζω το εξής θέμα (επισυνάπτω σχετικό αρχείο TEST): Θέλω να βρίσκω τις διπλοεγγραφές των ΑΦΜ στο αρχείο TEST. Τα αφμ τις B στήλης όμως μου έρχονται χωρίς το μηδενικό (0) μπροστά ((κάποια τουλάχιστον, δηλαδή είναι είτε 8 είτε 9 ψηφία) Επιπλέον είναι και συγχωνευμένα αναλόγως της υποκατηγορίας (στήλη F). Τα αφμ στα οποία θα βασιστώ για να βρω τις διπλοεγγραφές έχουν όλα το μηδέν μπροστά (ουσιαστικά έχουν 9 ψηφία). Τα έχω επικολλήσει στην στήλη C από άλλο αρχείο από την 34 γραμμή και κάτω (την οποία στήλη την εισήγαγα εγώ, δεν υπήρχε στο αρχικό αρχείο). Στην στήλη C αντέγραψα την συνάρτηση (που βρήκα από το Forum) για να προσθέσω το μηδέν μπροστά από τα αφμ που λείπει (ώστε να συγκρίνω 9ψήφια αφμ). Επιπλέον, ενεργοποίησα και την εντολή για τις διπλοεγγραφές. Το πρόβλημα είναι με την συγχώνευση των κελιών καθώς δεν μπορώ σέρνοντας τον κέρσορα στη στήλη C να επαναλάβω αυτόματα την συνάρτηση (αφού πρώτα συγχωνεύσω τα κελιά στη στήλη C) και αφετέρου όταν το κάνω αυτό χωρίς να συγχωνεύσω τα κελιά, το αποτελέσματα που μου δίνει είναι λάθος. Θα εκτιμούσα αν με βοηθούσατε να βρω τις μοναδικές τιμές των αφμ στη στήλη Β (που είναι συγχωνευμένο και χωρίς το μηδέν μπροστά) με σχετικά γρήγορο τρόπο (καθώς οι εγγραφές στη στήλη B ξεπερνούν τις 700) Ευχαριστώ εκ των προτέρων Δημήτρης |
1 Συνημμένο(α) Καλημέρα Δημήτρη, δες στο συνημμένο, μια πρόταση με συγκεντρωτικό πίνακα. |
2 Συνημμένο(α) Παράθεση:
σ' ευχαριστώ (για άλλη μια φορά) για την απάντηση. Δυσκολεύτηκα να καταλάβω (αν κατάλαβα) πως λειτουργεί (λυπάμαι αλλά είμαι γεωπόνος). Παρόλα αυτά θα με βοηθούσε περισσότερο αν η στήλη Ι (Count of ΑΦΜ) μου έδινε πληροφορία για τον αριθμό των διπλοεγγραφών υπό τη προϋπόθεση ότι τα αφμ στη στήλη H (Row Labels) είναι όλα 9ψήφια. Γενικά τα αφμ των προσώπων είναι πάντα 9φήφια. Δυστυχώς πρέπει να βρω τις διπλοεγγραφές των αφμ, τα οποία (αφμ) προέρχονται από 2 πηγές (αρχεία) και επικολλώ τα αφμ από το ένα αρχείο (αρχείο 1) στο άλλο (αρχείο 2). Στο ένα αρχείο (αρχείο 2) τα αφμ είναι είτε 9ψήφια (οπότε δεν έχω πρόβλημα) είτε 8ψήφια (λείπει το 0 από μπροστά, δυστυχώς αυτό γίνεται κατά τη μετατροπή του pdf σε excel), ενδεχομένως και 7ψήφια (σε μεγάλης ηλικίας άτομα λείπουν 2 μηδενικά από μπροστά). Αυτό προκύπτει κατά τη μετατροπή του αρχείου από pdf σε excel. Στο άλλο αρχείο (αρχείο 1) τα αφμ είναι πάντα 9ψήφια (υπάρχει πάντα το μηδέν μπροστά). Αν κατάλαβα καλά στη λύση που μου έδωσες το αφμ 14947012 (8ψήφιο, άρα λείπει το 0 από μπροστά) στο δεύτερο αρχείο θα είναι ως 014947012 (9ψήφιο). Τα 2 παραπάνω αφμ αντιστοιχούν στον ίδιο άνθρωπο (επομένως ουσιαστικά είναι διπλοεγγραφή). Πρακτικά θα ήθελα έναν γρήγορο τρόπο να βρίσκω ποια αφμ του επισυναπτόμενου αρχείου 2 (αρχείο με 9 ή 8ψήφια αφμ) υπάρχουν και στο αρχείο 1 (αρχείο με 9ψήφια αφμ). Στο αρχείο 1 ο ΑΘΑΝΑΣΙΟΥ ΘΕΟΦΑΝΗΣ έχει αφμ 073135648 ενώ στο αρχείο 2 ο ίδιος παραγωγός έχει αφμ 73135648. Θα με βόλευε ακόμη και μία λύση η οποία θα μου επισήμανε με κάποιο τρόπο αφμ με κοινά τα τελευταία 7 (ακόμα και 4) ψηφία (είναι απειροελάχιστη η πιθανότητα διαφορετικοί άνθρωποι τους οποίους επεξεργάζομαι να έχουν κοινά τα 4 τελευταία ψηφία). Ελπίζω να μην σε μπέρδεψα |
1 Συνημμένο(α) Καλημέρα Δημήτρη, Η πρότασή μου περιέχει κώδικα VBA και να λειτουργήσει η διαδικασία ελέγχου πρέπει να ενεργοποιηθούν οι μακροεντολές στο αρχείο. 1. Με το κουμπί ΟΡΘΟ ΑΡΧΕΙΟ επιλέγεις το αρχείο (π.χ. 1. αρχείο με 9ψήφια αφμ) με τους ΑΦΜ που έχουν 9 ψηφία. Θεωρώ ότι η μορφή του είναι πάντα ίδια με αυτή που ανέβασες, οπότε θα δεις όλους τους ΑΦΜ, τα επώνυμα και τα ονόματα στις στήλες D:F αντίστοιχα. 2. Με το κουμπί ΑΡΧΕΙΟ ΠΡΟΣ ΕΛΕΓΧΟ επιλέγεις το αρχείο (π.χ. 2. αρχείο με 9 ή 8ψήφια αφμ) με τους ΑΦΜ που έχουν λιγότερα από 9 ψηφία. Όμοια κι εδώ, αν η μορφή των αρχείων είναι ίδια με αυτή που ανέβασες, θα δεις όλους τους ΑΦΜ και τα ονοματεπώνυμα στις στήλες H:J αντίστοιχα. Στη στήλη J (Διπλοεγγραφές) ο αριθμός δηλώνει πόσες φορές εμφανίζεται ο ΑΦΜ της στήλης Η στη στήλη D. Επίσης, τα δεδομένα των στηλών H:J είναι ταξινομημένα ως προς φθίνουσα σειρά έτσι ώστε πρώτοι να είναι οι ΑΦΜ με τις περισσότερες εμφανίσεις. |
1 Συνημμένο(α) Καλημέρα Αν και είδα τη λύση που έδωσε ο Χρήστος με VBA, που αυτοματοποιεί τον έλεγχο, ανεβάζω και τη λύση χωρίς κώδικα, που είχα ετοιμάσει. Ο βασικός λόγος είναι ο έλεγχος της περίπτωσης 4, δηλαδή ο έλεγχος μήπως το ίδιο ονοματεπώνυμο, εμφανίζεται με πάνω από 1 διαφορετικά ΑΦΜ. 1) Τα δεδομένα που βρίσκονται σε 2 βιβλία περιλαμβάνονται σε 2 φύλλα του συνημμένου και όλοι οι έλεγχοι γίνονται σ’ αυτό. 2) Όλη η «φασαρία» γίνεται από τον κακό σχεδιασμό των δεδομένων του φύλλου Table. Φοβερός συνδυασμός: συγχωνευμένα κελιά και παρεμβολή στα δεδομένα επαναλαμβανόμενων τίτλων και στοιχείων της κοινότητας! 3) Στο φύλλο CheckAfmIn προσδιορίζονται τα ΑΦΜ του φύλλου Table που υπάρχουν στη στήλη Α (ΑΦΜ) του φύλλου αυτού (το ζητούμενο αν κατάλαβα καλά). 4) Στο φύλλο CheckAfmDouble παρουσιάζονται τα διαφορετικά ΑΦΜ που υπάρχουν στο φύλλο Table, για κάθε άτομο (Ονοματεπώνυμο). Βρέθηκαν 2 ονοματεπώνυμα με 2 διαφορετικά ΑΦΜ, που δε νομίζω να είναι σωστό. Παρατήρηση Πιστεύω ότι ένας σωστός έλεγχος πρέπει να εξασφαλίζει ότι: 1) Στο σωστό αρχείο κάθε άτομο έχει 1 μόνο έγκυρο ΑΦΜ. Σχετικές οδηγίες για την εγκυρότητα του ΑΦΜ υπάρχουν στο φόρουμ. 2) Στο υπό έλεγχο αρχείο κάθε άτομο έχει ένα μόνο έγκυρο ΑΦΜ. 3) Για τα ΑΦΜ του υπό έλεγχο αρχείου, που υπάρχουν στο σωστό, αντιστοιχούν στα ίδια άτομα. 4) Για τα ΑΦΜ που δεν υπάρχουν να προσαρτώνται τα σχετικά στοιχεία στο σωστό. |
Παράθεση:
Πάντως είναι τέλειο. |
Παράθεση:
καλησπέρα, ευχαριστώ για το χρόνο σας. Σαν λύση φαίνεται πιο δύσκολη, αλλά μπορώ νομίζω ότι καταλαβαίνω τη λογική της, οπότε μπορώ να τη χρησιμοποιώ και στις περιπτώσεις που το αρχείο 2 αλλάζει κάπως μορφή. Σχετικά με αυτό που γράφεις "Βρέθηκαν 2 ονοματεπώνυμα με 2 διαφορετικά ΑΦΜ, που δε νομίζω να είναι σωστό.", δεν υπάρχει κάποιο λάθος. Τα δύο πρόσωπα με τα 2 αφμ είναι διαφορετικά (τυχαίνει να είναι συγγενείς και έχουν το ίδιο ονοματεπώνυμο. Το όνομα πατρός διαφέρει). Σίγουρα πρόκειται για διαφορετικά πρόσωπα. Ο τρόπος με τον οποίο προκύπτουν τα αρχεία 1 και 2 εξασφαλίζει ότι διαφορετικά πρόσωπα θα έχουν διαφορετικά αφμ. Αυτό που δεν εξασφαλίζει (όπως ανέφερα στο προηγούμενο mail) είναι ότι το ίδιο πρόσωπο μπορεί να έχει δύο αφμ (ένα σωστό 9ψήφιο και ένα 8ψήφιο χωρίς το μηδέν μπροστά). Το μόνο που δεν κατάλαβα είναι γιατί τον ΒΙΤΩΡΑΤΟ ΓΕΩΡΓΙΟ (014947012) δεν μου το έδωσε σαν διπλοεγγραφή. Θα προσπαθήσω να το καταλάβω άυριο. Σ'ευχαριστώ πολύ |
Δημήτρη, Αν δεν σου είναι κόπος, ανέβασε αυτές τις 8-10 μορφές με την πρώτη ευκαιρία. Μπορεί να υπάρχει ένας "κοινός παράγοντας" μεταξύ τους και ίσως καταφέρω να βρω έναν κώδικα ώστε να σε καλύπτει ακόμα περισσότερο. |
1 Συνημμένο(α) Σχετικά με το ΑΦΜ του Βιτωράτου. Ίσως να μη δημιούργησα σωστά το ΣΠ. Ξαναδοκίμασα τη μέθοδο (σε άλλο υπολογιστή με office 16) και εμφανίζει το ΑΦΜ του. |
2 Συνημμένο(α) Παράθεση:
η 2η μορφή που χρειάζομαι είναι τα επισυναπτόμενα αρχεία. Το αρχείο 1 είναι το ίδιο, ενώ το αρχείο 2 μη επιλέξιμα 16ος διαφέρει από το αντίστοιχο 2 του προηγούμενου παραδείγματος. Και στη περίπτωση αυτή θέλω να βρίσκω τα κοινά αφμ. Τις υπολειπόμενες μορφές θα τις στέλνω ανά διαστήματα (δίμηνα, τρίμηνα ....) αναλόγως πως μου τις ζητάνε (δεν τις έχω αυτή τη στιγμή. Ξέρω όμως ότι θα ζητηθούν). Σ' ευχαριστώ πολύ για το χρόνο και τη διάθεση. Δημήτρης |
1 Συνημμένο(α) Καλησπέρα Δημήτρη, Έλεγξε το συνημμένο αρχείο αν λειτουργεί και με τη νέα μορφή. Υπάρχουν πλέον δύο φύλλα, όπου το καθένα εξυπηρετεί τις δύο μέχρι τώρα μορφές. Ανάλογα τη μορφή που ελέγχεις, θα χρησιμοποιείς το ανάλογο φύλλο. Παρατηρώ ότι τα αρχεία προέρχονται/προορίζονται από/για την υπηρεσία του ΟΣΔΕ, οπότε θεωρώ ότι δεν θα υπάρχει πρόβλημα με την ορθότητα των ΑΦΜ. Παρόλα αυτά και για μια επιπλέον δικλείδα ασφάλειας στους ελέγχους σου, συμπεριέλαβα συνάρτηση για την ορθότητα ΑΦΜ. Έτσι, αν παρατηρήσεις στις στήλες των ΑΦΜ (D και H) κόκκινα κελιά, αυτό σημαίνει ότι το συγκεκριμένο ΑΦΜ δεν ακολουθεί το σωστό αλγόριθμο και είναι μη έγκυρο (π.χ. αναγραμματισμός ψηφίων). |
2 Συνημμένο(α) καλημέρα, σε συνέχεια των προηγούμενων μηνυμάτων αποστέλλω 2 αρχεία για τα οποία θα ήθελα να γνωρίζω ποια αφμ από το αρχείο 1. αφμ παραγωγών υπάρχουν στο αρχείο 2. Διασταυρωτικός-προκαταβολή 2019. Ευχαριστώ εκ των προτέρων |
Καλησπέρα Στο αρχείο 1, ο ΑΦΜ είναι κείμενο. Στο αρχείο 2, ο ΑΦΜ είναι γενική μορφή, (αν και κάποια αρχίζουν από μηδέν) και αυτό θα πρέπει να διορθωθεί. Το αρχείο 1, είναι .xlsx ένώ το 2 .xls Αυτό σημαίνει, ότι δεν έχουμε ίδιο αριθμό γραμμών ανά στήλη (αλλά και στηλών) που βασικά μας ενδιαφέρει, αν χρησιμοποιήσουμε μια =Match() στην στήλη πχ Κ του αρχείου 2, πράγμα που θα μας έδινε και λύση το ζητούμενο... Επιπρόσθετα: 1. Καλό είναι, να διορθώσετε και τα σταθεροποιημένα παράθυρα. 2. Δεν βρήκα συγχωνευμένα κελιά (καλώς) παρά μόνο κελιά με αναδίπλωση κειμένου που δεν έχουν πρόβλημα... |
Αναζήτηση μεταβλητού περιεχομένου κελιού με μακροεντολή. Κατ' αρχήν ευχαριστώ για την αποδοχή και χαίρομαι πολύ που βρήκα το φόρουμ σας! Μήπως κάποιος γνωρίζει πώς πρέπει να γράψω μία μακροεντολή, που να μπορεί να αναζητήσει σε στήλη κάποιου άλλου φύλλου, την τιμή τού ενεργού κελιού, η οποία όμως κάθε φορά που θα αναζητάται, θα είναι διαφορετική; Έχω φτιάξει στο Εξέλ 2007, ένα Ελληνικό Τσατ Μποτ που μαθαίνει, και καθώς το βελτιώνω, αυτό που ζητάω είναι μία πολύ σημαντική αναγκαιότητα. Αλλά δεν ξέρω τον τρόπο, και ως τώρα το κάνω με έμμεσους τρόπους, περίπλοκους. Ευχαριστώ πολύ! |
Ο λόγος που το έγραψα εδώ, είναι επειδή δεν με αφήνει να βάλω νέο θέμα. |
2 Συνημμένο(α) Παράθεση:
Σχετικά με τη μορφή του αρχείου 2 δεν μπορώ να επέμβω στην δημιουργία του, καθώς το λαμβάνω έτοιμο (τη σταθεροποίηση παραθύρων την έκανα εγώ). Όχι ότι είναι δύσκολο να αλλάξω τη μορφή του αρχείου από xls σε xlsx ή την μορφή των κελιών από "Γενική" σε "Κείμενο". Θα μου έπαιρνε χρόνο όμως να μετατρέψω τα συγχωνευμένα κελιά σε μη συγχωνευμένα. Στο συγκεκριμένο παράδειγμα όντως δεν υπάρχου συγχωνευμένα κελιά. Στις προηγούμενες περιπτώσεις όμως το αρχείο 2 που λάμβανα είχε συγχωνευμένα κελιά, δυσκολεύοντας έτσι την διαδικασία. Γι' αυτές τις περιπτώσεις είχα λάβει μία καλή λύση χρησιμοποιώντας visual basic (ή κάτι τέτοιο, από τον χρήστη ChrisGT7). Παρόλο που άλλαξα τις μορφές του αρχείου 2 όπως επισημάνατε (επισυνάπτω τα αρχεία εκ νέου) δεν κατάφερα με την MATCH να έχω το επιθυμητό αποτέλεσμα (μάλλον επειδή δεν γνωρίζω τη συνάρτηση). Φιλικά, Δημήτρης |
2 Συνημμένο(α) Μια χαρά δουλεύει. Ας δούμε πως... Η συνάρτηση είναι πολύ απλή, όπως θα δείς στο βιβλίο 2. Με τα δύο βιβλία ανοιχτά δίπλα-δίπλα, γράφουμε την συνάρτηση. Όπου υπάρχει αριθμός, σημαίνει ότι αυτός ο ΑΦΜ, βρίσκεται στην τάδε γραμμή του βιβλίου 1. Αν δεν βρεθεί, αποδίδει ανάλογα την γλώσσα που χρησιμοποιείται, #Ν/Α ή #Δ/Υ Προαιρετικά Μπορούμε να βάλουμε μια =IfError() για να διορθώσουμε ή μια =If() για να έχουμε ένα πιο λεπτομερές αποτέλεσμα κλπ... Σημείωση 1 Δεν είναι υποχρεωτικό να αλλάξεις τα exte των βιβλίων. Μπορεί να αφήσεις τις καταλήξεις .xlsm & .xls, αρκεί η =Match() να μην ψάχνει σε όλη τη στήλη Α, αλλά σε τμήμα της στήλης, πχ Α1:Α2000 (ή όπου σε βολεύει με την προυπόθεση να είναι συμβατό πλήθος με τις γραμμές του .xls) Σημείωση 2 Στην πρώτη γραμμή, υπάρχει κι ένα παράδειγμα με τυχαίον ΑΦΜ και συγχωνευμένα. Δουλεύει και αυτό, παρ' όλο που όπως είπαμε, δεν συνιστάται... Σημείωση 3 Ανοίγουμε το βιβλίο 1 και μετά το 2, κάνοντας Update, στον διάλογο που θα ανοίξει. |
σ' ευχαριστώ πολύ Όντως δουλεύει. |
| Η ώρα είναι 09:01. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.