Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Excel Macro (έλεγχος διπλοεγγραφών)
Καλησπέρα παιδιά, είμαι νέος στο forum και θα ήθελα τη βοήθεια σας. Έχω ένα excel που στο πρώτο φύλλο περιέχει μια στήλη με κωδικούς, και σε μια 2η στήλη έχει ποσότητες. Οι κωδικοί πολλές φορές επαναλαμβάνονται μέσα στη λίστα με διαφορετικές ποσότητες κάθε φορά. Θέλω με μια μακροεντολή, που να περνάει σε ένα άλλο φύλλο τους κωδικούς, αλλά μία μόνο φορά (δλδ αν έχει 3ς φορές τον κωδικο 0100, να τον περνάει μόνο μια φορά), και σε μια άλλη στήλη να προσθέτει τις ποσότητες που βρίσκει για τον κοινό αυτό κωδικό. Δλδ για τον 0100 που τον έχω 3ς φορές (με ποσότητα πχ 2τεμ στο κάθε ένα) να δημιουργεί: | 0100 | 6 τεμ |. Ελπίζω να έγινα κατανοητός, όποια βοήθειά σας πολύτιμη. Ευχαριστώ πολύ! Τελευταία επεξεργασία από το χρήστη gr8styl : 19-05-11 στις 15:30. Αιτία: Αλλαγή προθέματος |
#2
| ||||
| ||||
Καλημέρα Νίκο και καλωσόρισες στο φόρουμ! Δεν θα χρειαστεί VBA αφού το ζητούμενο μπορεί να γίνει από την επιφάνεια της Excel εκτός και αν το φύλλο περιέχει πολλές χιλιάδες δεδομένα προς επεξεργασία Βέβαια, αν παρόλα αυτά πρέπει η συγκεκριμένη διαδικασία να γίνει με VBA, κανένα πρόβλημα. Σε κάθε περίπτωση όμως θα πρέπει να γνωρίζουμε αν τα περιεχόμενα στη στήλη των τεμαχίων είναι αριθμητικά ή κείμενα πχ. "8 τεμ." Περιμένουμε νέα σου. Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 11-05-11 στις 00:59. |
#3
| |||
| |||
Φίλε Τάσο κατ'αρχήν σ'ευχαριστώ για την απάντηση. Θα το ήθελα σε VBA περισσότερο για τις δυνατότητες παραμετροποίησης (να μπορώ να το αλλάξω ή να το προσαρμώσω μετά και σε άλλες μακροεντολές), και γιατί θα βγαίνει αυτόματα χωρίς να χρειάζεται να "σέρνεις" κάποια συνάρτηση ώστε να σου βγάζει το αποτέλεσμα. Επίσης στην πραγματικότητα είναι λίγο πιο σύνθετο το πρόβλημα. Δλδ στο πρώτο φύλλο υπάρχουν 3ς στήλες με δεδομένα: Α: Μηχάνημα, Β:Υλικό, Γ: Ποσότητα Μηχάνημα 1 , Βίδα......, ......1 Μηχάνημα 2 , Ροδέλα.., ......4 Στο 2ο φύλλο έχει μια στήλη (πχ Α) που θα μπαίνει το Υλικό, αλλά οι ποσότητες τους μπαίνουν στις επόμενες στήλες (Β,Γ,Δ,κλπ) όπου έχουν ως επικεφαλίδα το Μηχάνημα! Πχ: ....Α......|.......Β..........|.........Γ...... ....| κλπ Υλικό... | Μηχάνημα 1 | Μηχάνημα 2 | κλπ Ροδέλα.| ......0...........| .......4..........| κλπ Θέλω λοιπόν από το φύλλο1 "διαβάζοντας" την στήλη Β το Υλικό να το πηγαίνει στη Β του φύλλου2, να "βλέπει" ταυτόχρονα σε ποιο Μηχάνημα (Α) ανήκει και να προσθέτει εκεί την ποσότητα στην αντίστοιχη στήλη του φύλλου2. Αν στη συνέχεια συναντήσει το ίδιο υλικό, αφού ελέγξει σε ποιο μηχάνημα ανήκει να παει και να προσθέσει εκεί την ποσότητα χωρίς να ξαναπεράσει το υλικό. Να σημειώσω ότι η αντιστοιχία των μηχανημάτων "Μηχάνημα 1", "..2", κλπ του πρώτου φύλου που είναι σε στήλη προς τα κάτω, με το 2ο φύλλο που θα είναι επικεφαλίδες στηλών που θα περιέχουν ποσότητες, θα ήταν καλό να βγαίνει αυτόματα από αυτά που θα διαβάζει στο πρώτο φύλλο, αλλά μπορεί να γίνει και χειροκίνητα (βλέπεις τι μηχανήματα έχεις στο πρώτο φύλλο και πας και φτιάχνεις τις αντίστοιχες στήλες στο 2ο φύλλο με τις ονομασίες τους). Το ξέρω ότι μάλλον τα παραδυσκόλεψα, γι'αυτό ζήτησα μόνο το ένα μέρος, θα το παλέψω και για αυτό με τα μηχανήματα, αλλά αν δεν βγάλω άκρη θα κοιτάξω να το κάνω για κάθε μηχάνημα ξεχωριστά. Και πάλι σ'ευχαριστώ για τον χρόνο σου... Α! Οι τιμές στον "κωδικό" περιέχουν και κείμενο και αριθμούς (δλδ αλφαριθμητικό) και στις "ποσότητες" περιέχει μόνο αριθμούς (ώστε να είναι δυνατή η πρόσθεση)... |
#4
|
Φίλε Νίκο, το Excel διαθέτει τον πολύ καλό μηχανισμό των Συγκεντρωτικών πινάκων (Pivot tables) που κάνει ακριβώς αυτό που ζητάς, χωρίς VBA, ταχύτατα και για τεράστιο όγκο δεδομένων αν χρειαστεί. Νομίζω είναι η ιδανική λύση. Δες το συνημμένο. και αν κάτι δεν είναι κατανοητό ρώτησε στο φόρουμ. Φιλικά Θανάσης |
#5
| |||
| |||
Καλησπέρα στην παρέα Στο αρχείο που επισυνάπτω το ζητούμενο υλοποιείται με τη βοήθεια συγκεντρωτικού πίνακα, όπως και στη λύση του Θανάση. Η διαφορά είναι στο ότι η δημιουργία του συγκεντρωτικού πίνακα γίνεται με κώδικα και συνεπώς απαιτείται ενεργοποίηση των μακροεντολών. Φιλικά/Γιώργος |
#6
| |||
| |||
Παιδιά σας ευχαριστώ πάρα πάρα πολύ για τον χρόνο και τις απαντήσεις σας! Δυστυχώς τους pivot πίνακες δεν τους ξέρω καθόλου, οπότε θα κοιτάξω να "μελετήσω", να δω τι με βολεύει καλύτερα να χρησιμοποιήσω και πως. Σίγουρα θα βρω κολλήματα οπότε σύντομα, μόλις ξεκαθαρίσω λίγο το excel με τα δεδομένα (γιατί δεν είναι δικό μου και έχει πολύ μπλέξιμο), θα το ανεβάσω μήπως χρειαστεί να με βοηθήσετε και σε τίποτα άλλο, να το δείτε και στην πράξη. Και πάλι χίλια ευχαριστώ! |
#7
| ||||
| ||||
Νίκο, επειδή δε γνωρίζουμε το αρχείο σου, τα παραδείγματα που παίρνεις έχουν γενικό χαρακτήρα. Η καλύτερη λύση είναι αυτή του συγκεντρωτικού πίνακα. Ωστόσο αν ο όγκος των δεδομένων και η ισχύς του υπολογιστή το επιτρέπουν, θα πρότεινα σαν εναλλακτική λύση τη χρήση τύπων. Εμπειρικά, αν πρόκειται για λιγότερες από 15.000 γραμμές με δέκα στήλες δεν θα παρουσιαστεί ιδιαίτερο πρόβλημα στην απόδοση της εφαρμογής(ταχύτητα υπολογισμού) σε ένα μέσο υπολογιστή. Επισυνάπτω ένα αρχείο όπου εμφανίζει τα αποτελέσματα όπως οι συγκεντρωτικοί πίνακες αλλά με χρήση τύπων. Μελέτησε το και αν χρειαστείς κάτι εδώ είμαστε. Καλή συνέχεια! Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#8
| |||
| |||
Καλησπέρα παιδιά, επέστρεψα και πάλι σ'αυτό το πρόβλημα, αυτή τη φορά με πιο απτά δεδομένα και θα ήθελα βεβαίως την βοήθεια σας. Έχω ανεβάσει και το excelάκι για να είμαι πιο σαφής. Το excel περιέχει 2 φύλλα (moter & cables). Το cables έχει μια λίστα με σταθερά ανταλλακτικά ως βάση (καλώδια) τα οποία αυξάνονται κατά καιρούς με νέα υλικά. Οι στήλες από A έως G είναι πάντα στεθερές με συγκεκριμένες πληροφορίες για τα υλικά. Το φύλλο Moter έχει διάφορους κινητήρες και στη συνέχεια έχει κάποια κελιά με στοιχεία για Καλώδια σε τρία "πακέτα" (Y-AC, AD-AH και AI-AM). Γράφοντας στην στήλη CODE του κάθε πακέτου έναν κωδικό (πχ. 2001) "διαβάζει" από το φύλλο Cables το αντίστοιχο ανταλλακτικό και περνάει τις λοιπές πληροφορίες (ΤΥΠΟΣ ΚΑΛΩΔΙΟΥ - ΚΩΔΙΚΟΣ ΧΡΕΩΣΗΣ - ΚΩΔΙΚΟΣ ΑΠΟΘΗΚΗΣ). Τέλος συμπληρώνω την στήλη ΜΗΚΟΣ. Τώρα θέλω το εξής. Στο φύλλο Cables, από την στήλη I και μετά, να βγάζει σαν επικεφαλίδα (γραμμή 3) μια φορά κάθε ΚΩΔΙΚΟ ΧΡΕΩΣΗΣ που βρίσκει να περιέχεται στα τρία "πακέτα" του φύλλου Moter (όπως πχ έχω συμπληρώσει εγώ το K2423.0010B...). Στη συνέχεια από κάτω από κάθε ΚΩΔΙΚΟ ΧΡΕΩΣΗΣ, και αναλόγως τον κωδικό του ανταλλακτικού (πχ 2001) να κάνει μια σούμα τα μέτρα! Δηλαδή ελέγχει στο φύλλο Moter τι ανταλλακτικά έχει, και σε ποιους κωδικούς χρέωσης ανήκουν, να προσθέτει τα μέτρα και να τα βάζει στο φύλλο Cables στο αντίστοιχο κελί (CODE, ΚΩΔΙΚΟΣ ΧΡΕΩΣΗΣ). Σημείωση: Στο φύλλο Moter η ποσότητα των μειωτήρων δεν είναι σταθερή, όπως και δίπλα τα "πακέτα" με τα ανταλλακτικά τους δεν είναι σταθερά και μπορεί να περιέχουν κενά (όπως έχω το παράδειγμα). Ελπίζω να έγινα κατανοητός, εγώ δυσκολεύτηκα να καταλάβω πως θα έπρεπε τελικά να το κάνω για να πάρω τα αποτελέσματα που θέλω!!! Έχω σημειώσει και στο excel κάποια πράγματα. Θα προτιμούσα κάποια λύση ή βοήθεια σε VBA (μακροεντολή) ώστε να το ταιριάξω με κάποια άλλα πράγματα που χρειάζομαι. Ευχαριστώ πολύ! |
#9
| |
Παράθεση:
Eνώ μας λες ότι ο ΚΩΔΙΚΟΣ ΧΡΕΩΣΗΣ προκύπτει με βάσει το CODE από το φύλλο CABLES στο φύλλο CABLES δεν βλέπω καμμιά συσχέτιση CODE - ΚΩΔΙΚΟΣ ΧΡΕΩΣΗΣ !!! Τέλος πάντων Εγώ θα οργάνωνα τα δεδομένα μου ως εξής Α) ένα φύλλο (Material) που θα είχε τις πληροφορίες για κάθε υλικό (στηλες A έως G του φύλλου Cables) Β) ένα φύλλο με τα πακέτα (Packages) με τις ακόλουθες 6 στήλες 1) "Πακέτο" θα την συμπληρώνει ο χρήστης αν δεν μπορεί να βρεθεί κάπουΓ) ένα φύλλο με συγκεντρωτικό πίκακα για τις 6 στήλες του "Packages" ώστε να υπολογίσω τα μέτρα ανά κωδικό και κωδ.χρέωσης ή ότι άλλο θέλω. Δεν καταλαβαίνω οι στήλες A έως X στο φύλλο MOTER του παραδείγματός σου σε τι χρησιμεύουν, όπως και δεν καταλαβαίνω τον λόγο γιατί να έχεις τα αποτελέσματα των υπολογισμών στο ίδιο φύλλο με τον πίνακα των υλικών σου. (cables) Για ξαναδές το και ξεκαθαρισέ τα για να μπορέσουμε να σε βοηθήσουμε. Φιλικά Θανάσης |
#10
| |||
| |||
Ναι φίλε gr8styl, έχεις δίκιο, έχω κάνει λάθος διατύπωση: "Γράφοντας στην στήλη CODE του κάθε πακέτου έναν κωδικό (πχ. 2001) "διαβάζει" από το φύλλο Cables το αντίστοιχο ανταλλακτικό και περνάει τις λοιπές πληροφορίες (ΤΥΠΟΣ ΚΑΛΩΔΙΟΥ - ΚΩΔΙΚΟΣ ΧΡΕΩΣΗΣ - ΚΩΔΙΚΟΣ ΑΠΟΘΗΚΗΣ). Τέλος συμπληρώνω την στήλη ΜΗΚΟΣ." Τον Κωδικό Χρέωσης τον βάζω εγω, και το μήκος προς το παρόν μπαίνει σε κάποια άλλη στήλη (U) και βγαίνει και στο "πακέτο", αλλά θα αλλάξει αυτό, εγώ όλες τις πληροφορίες από τα 3 πακέτα θέλω να τις παίρνω. Βασικά όπως ακριβώς είναι το excelακι δείτε το, για να είναι πιο κατανοητό. Για τα υπόλοιπα, δυστυχώς τα δεδομένα που σας παραθέτω και τα 2 αυτά φύλλα, είναι υποσύνολο ενός τεράστιου αρχείου με πάρα πολλά δεδομένα που είναι "δεμένα" μεταξύ τους, και προσπάθησα να το καθαρίσω λίγο για να απλουστευθεί κάπως η δουλειά. Δεν μπορώ να το διαμορφώσω διαφορετικά. Τέλος τα αποτελέσματα των υπολογισμών τα έχω στο ίδιο φύλλο με τον πίνακα των υλικών (cables) γιατί όλο αυτό γινόταν χειροκίνητα και βόλευε για να μην τα ξαναγραφω, αλλά και για να περιέχει και τα υπόλοιπα χαρακτηριστικά των καλωδίων. Ελπίζω να έγιναν λίγο πιο ξεκάθαρα τώρα (?). |
Ετικέτες |
pivot, vba, συγκεντρωτικός πίνακας |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
Διαγραφή διπλοεγγραφών | ΚΩΣΤΑΣ2 | Access - Ερωτήσεις / Απαντήσεις | 6 | 21-07-12 08:03 |
[VBA] Πρόβλημα σε macro του excel | izezios | Excel - Ερωτήσεις / Απαντήσεις | 3 | 25-05-12 23:37 |
Έλεγχος εγκυρότητας ΑΦΜ με συνάρτηση Excel. | Tasos | Χρηματοοικονομικές | 0 | 30-09-11 10:06 |
[VBA] Έλεγχος ονόματος ενός φύλλου σε 850 αρχεία Excel! | Charis | Excel - Ερωτήσεις / Απαντήσεις | 2 | 18-08-10 19:53 |
Η ώρα είναι 20:29.