Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > Σύγκριση πεδίων από ξεχωριστά φύλλα δεδομένων.

Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ.

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 06-04-11, 14:37
Όνομα: ΑΡΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 06-04-2011
Μηνύματα: 5
Προεπιλογή Σύγκριση πεδίων από ξεχωριστά φύλλα δεδομένων.

Χαιρετώ την κοινότητα.
Προσπαθώ να φτιάξω macros (λίγο σύνθετο) η οποία θα λύνει το εξής πρόβλημα:
Στο πρώτο φύλλο δεδομένων, όπου το φύλλο εργασιών αυτών περιέχει 6 στήλες. Η στήλη Α έχει τον κωδικό του πελάτη, η στήλη Β έχει το ονοματεπώνυμο του πελάτη, η στήλη C έχει το προϊόν που αγόρασε ο πελάτης, η στήλη D έχει την τιμή του προϊόντος με την καθαρή αξία, η στήλη Ε έχει την τιμή του Φ.Π.Α και η στήλη F έχει την τελική τιμή.
Στο δεύτερο φύλλο υπάρχουν τα δεδομένα του πελάτη (κωδικός πελάτη, τηλ, ΑΦΜ κ.τ.λ) και μία στήλη F με το συνολικό καθαρό ποσό των προϊόντων ανα πελάτη (δηλ. αν έχει αγοράσει ο πελάτης ένα αντικείμενο με 5 euro και ένα αντικείμενο με 10 euro, η στήλη F πρέπει να περιέχει τον αριθμό 15 (το άθροισμα 5 + 10).
Το πρόβλημα είναι ότι δεν γνωρίζω πως (καθώς είμαι πολύ καινούριος στην VB) να λαμβάνω δεδομένα από δύο διαφορετικά Φύλλα εργασιών προκειμένου να δουλέψω με τα δεδομένα αυτά.
Ευχαριστώ εκ των προτέρων
Απάντηση με παράθεση
  #2  
Παλιά 07-04-11, 10:52
Όνομα: ΑΡΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 06-04-2011
Μηνύματα: 5
Προεπιλογή

Δημιούργησα το εξής script, αλλά έχει γίνει κάποιο σφάλμα.

Sub sum_pelatis()
On Error GoTo errorMsg
plithosGramon1 = InputBox("Dose to plithos ton paragelion")
plithosGramon2 = InputBox("Dose to plithos ton pelaton")

Set Sht2 = Worksheets("Pelates")
Set Sht1 = Worksheets("paragelies")


For k = 1 To plithosGramon2

kodikosPelaton1_Met = Sht2.C & k
Range(kodikosPelaton1_Met).Select
kodikosPelaton1_Timi = ActiveCell.FormulaR1C1

onomateponimo_Met = Sht2.H & k
Range(onomateponimo_Met).Select
onomateponimo_Timi = ActiveCell.FormulaR1C1

paratirisis_Met = Sh2.I & k
Range(paratirisis_Met).Select
paratirisis_Timi = ActiveCell.FormulaR1C1

For G = 1 To pilthosGramon1

kodikosPelaton2_Met = Sh1 & G
Range(kodikosPelaton2_Met).Select
kodikosPelaton2_Timi = ActiveCell.FormulaR1C1

If (kodikosPelaton1_Timi = kodikosPelaton2_Timi) Then
Katharo_Met = Sh1.J & G
Range(Katharo_Met).Select
Katharo_Timi = ActiveCell.FormulaR1C1
SumKatharo = SumKatharo + Katharo_Timi
End If
Next G
ActiveCell.Sh2.J& k = SumKatharo

Next k
errorMsg:
MsgBox Err.Description, vbOKOnly + vbCritical, "Error"
End Sub
Απάντηση με παράθεση
  #3  
Παλιά 07-04-11, 11:21
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλημέρα Άρη και καλωσόρισες στο φόρουμ!

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

Περιμένουμε νέα σου

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 07-04-11 στις 15:25.
Απάντηση με παράθεση
  #4  
Παλιά 07-04-11, 15:09
Όνομα: ΑΡΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 06-04-2011
Μηνύματα: 5
Προεπιλογή

Φίλε Τάσο
Αρχικά ευχαριστώ. Tο φύλλο excel βρίσκεται στο http://www.isweb.gr/test.xlsx
Απάντηση με παράθεση
  #5  
Παλιά 07-04-11, 17:05
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλησπέρα!

Αρη, αν κατάλαβα καλά, θέλεις με κάποιο τρόπο να εμφανίζεις κάποια συνκεντρωτικά
αποτελέσματα στο φύλλο Pelates σε διάταξη όπως αυτή των παραδειγματικών εγγραφων στο
πάνω μέρος του φύλλου στο αρχείο σου.

Στις παραδειγματικές αυτές εγγραφές εμφανίζεις όμως και άλλες στήλες.

Πες μας: Τι θα γίνει αν ο πελάτης εχει αγοράσει 2 η περισσοτερα διαφορετικά προιόντα;
Πώς και που θα εμφανίζονται;

Μήπως ένας συγκεντρωτικός πίνακας έλυνε το πρόβλημα σου;

Περιμένουμε νέα σου.

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #6  
Παλιά 08-04-11, 09:44
Όνομα: ΑΡΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 06-04-2011
Μηνύματα: 5
Προεπιλογή

Καλημέρα!
Τάσο, δεν με ενδιαφέρει στην προκειμένη περίπτωση ποια και πόσα διαφορετικά προϊόντα θα αγοράσει ο πελάτης, αυτό που θα πρέπει να εμφανίζει στo φύλλο Pelates, στην στήλη ‘ΣΥΝΟΛΟ ΚΑΘΑΡΗΣ ΑΞΙΑΣ ΤΟΥ ΚΆΘΕ ΚΩΔ.ΠΕΛΑΤΗ’ (στήλη J) είναι το συνολικό ποσό που έδωσε ο πελάτης, για το σύνολο των προϊόντων που παρέλαβε.

Ουσιαστικά το φύλλο Paragelies είναι οι κινήσεις και χαρακτηριστικά των αντικειμένων που έχουν παραδοθεί στους πελάτες, το φύλλο Pelates έχω όλα τα στοιχεία των πελατών καθώς και τα οικονομικά στοιχεία.

Αυτό που θα ήθελα να κάνει το script είναι να σαρώνει το φύλλο Paragelies και να καταχωρεί στο φύλλο Pelates το συνολικό ποσό παραγγελιών του κάθε πελάτη.

Έχεις αναφέρει κάτι σχετικά με τον συγκεντρωτικό πίνακα , θα το κοιτάξω και θα σου πω (καθώς πρώτη φορά τον συναντώ)

Ευχαριστώ
Απάντηση με παράθεση
  #7  
Παλιά 08-04-11, 10:56
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλημέρα Άρη!
Τις περισσότερες φορές, δεν χρειάζεται προγραμματισμός για να πάρεις κάποια συγκεντρωτικά στοιχεία από την Excel.

Το ζητούμενο σου καλύπτεται με τη συνάρτηση SUMIF() (Κανε κλικ εδώ για περισσότερες λεπτομέρειες)
που όπως μας προδιαθέτει και το όνομα, αθροίζει τιμές κάτω από συγκεκριμένους όρους τους οποίους πρέπει να ορίσει ο χρήστης μέσα στη συνάρτηση.

Πιο αναλυτικά: =SUMIF(Στήλη_αναζήτησης;Κριτήρια_Αναζήτησης;Στήλη_Προς_Άθροισμα)

Παράδειγμα:
Έστω ότι οι πρωταγωνίστριες στήλες στο φύλλο παραγγελιών (όνομα φύλλου = Orders) είναι:
  • Στήλη B = Κωδικός Πελάτη
  • Στήλη E = Οι τελική τιμή της παραγγελίας

Στο φύλλο που θα εμφανίζονται τα σύνολα αγορών ανά πελάτη στην επιθυμητή στήλη βάζουμε τον τύπο:

=SUMIF(Orders!B:B;A2;Orders!E:E)

όπου
A2 = ο Κωδικός Πελάτη στο φύλλο με τα σύνολα αγορών ανά πελάτη.

Δες το και στο επισυναπτόμενο παράδειγμα παρακάτω.

Καλή συνέχεια!

Φιλικά

Τάσος
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsx XLSumIf.xlsx (12,3 KB, 61 εμφανίσεις)
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #8  
Παλιά 08-04-11, 13:04
Όνομα: ΑΡΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 06-04-2011
Μηνύματα: 5
Προεπιλογή

Τάσο μου έλυσες τα χέρια !!!! Την συνάρτηση sumif την ήξερα αλλά δεν ήξερα ότι μπορείς να διαβάζει από γειτονικά φύλλα.
Όπως και να έχει το πράγμα ευχαριστώ πολύ

PS: Μήπως γνωρίζεις αν γίνεται, οι συναρτήσεις του excel να χρησιμοποιηθούν σε macros ; Ξέρεις κανένα καλό tutorial για macros;
Απάντηση με παράθεση
  #9  
Παλιά 08-04-11, 20:39
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλησπέρα Άρη!
Χαίρομαι που βοηθήθηκες!
Τις ενσωματωμένες συναρτήσεις της Excel (σχεδόν όλες) μπορούμε να τις καλέσουμε χρησιμοποιώντας το αντικείμενο WorksheetFunction

Για παράδειγμα : MyValue = Application.WorksheetFunction.Min(myRange).

Όσο για Tutorials, υπάρχουν πάρα πολλά στο Internet (ΥουTube κτλ.) πού απευθύνονται κυρίως σε αρχάριους.

Αυτό δεν αρκεί όμως για να προγραμματίζεις στην Excel αν δεν μάθεις πρώτα τα αντικείμενα με τα ονόματα τους και τις ιδιότητες τους για να μπορείς να χρησιμοποιήσεις.

Να θυμάσαι:
  • Την πολύ καλή βοήθεια της Excel και της VBA που σου παρέχεται με ένα απλό πάτημα του πλήκτρου F1.
  • Τον Object Explorer στον VBE (F2) όπου θα μπορείς να έχεις μια πληρέστερη εικόνα για κάποιο αντικείμενο.
Τέλος, το φόρουμ Θα σου λύσει οποιαδήποτε απορία πάνω στην Excel ή στη VBA.

Καλή συνέχεια!

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Excel07] Σύγκριση εγγραφών σε 2 φύλλα excel Διογένης Excel - Ερωτήσεις / Απαντήσεις 9 19-06-19 12:22
[Συναρτήσεις] Ταυτόχρονη εισαγωγή δεδομένων σε 2 φύλλα mantarinia Excel - Ερωτήσεις / Απαντήσεις 2 28-04-15 18:40
[VBA] Μεταφορά δεδομένων από πολλά φύλλα xristos Excel - Ερωτήσεις / Απαντήσεις 2 12-04-15 21:58
[Συναρτήσεις] Σύγκριση Δεδομένων nvb Excel - Ερωτήσεις / Απαντήσεις 2 09-12-13 08:38
[VBA] Μεταφορά δεδομένων ανάμεσα σε φύλλα anastasiosz Excel - Ερωτήσεις / Απαντήσεις 11 10-03-11 18:21


Η ώρα είναι 22:04.