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/1436-athroismata.html)

Echo 14-10-11 00:25

Άθροίσματα
 
1 Συνημμένο(α)
Αγαπητοί φίλοι καλησπέρα,

Θα ήθελα να μου προτείνεται μία λύση στο εξής πρόβλημα:
Κάνω απογραφή τα προιόντα της αποθήκης μου και θα ήθελα να βάλω όσο λιγότερο χέρι γίνεται.Τα προιόντα σχηματίζουν SET αλλά πωλούνται και μεμονωμένα.Έστω πχ ότι έκανα καταμέτρηση και βρήκα τα τεμάχια για κάθε κωδικό(SET και μεμονωμένο).Τα SET όμως θα πρέπει να σπάσουν σε μεμονωμένα και το σύνολο των τεμαχίων για κάθε SET να προστεθεί σε κάθε επιμέρους κωδικό που το αποτελεί.
πχ στη στήλη ΣΥΝΟΛΙΚΑ σας εξηγώ για την περίπτωση του πρώτου SET.

Υπάρχει τρόπος να γίνεται αυτόματα για τα υπόλοιπα;

Σας ευχαριστώ,
Ζαχαρίας

Lefteris 14-10-11 08:59

1 Συνημμένο(α)
Καλημέρα σε όλους.

Ζαχαρία, μία πρώτη προσέγγιση στο ζητούμενό σου, θα βρείς στο συνημμένο μου.

Δές το και τα ξαναλέμε.

Echo 14-10-11 13:31

Καλησπέρα σε όλους,

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

Με εκτίμηση,
Ζαχαρίας

gr8styl 14-10-11 18:09

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

Φίλε Ζαχαρία θα πρέπει να φτιάξεις ένα πίνακα αντιστοίχίας μεταξύ Μεμονωμένων και Set.

Δες το αποτέλεσμα στο συνημμένο.

Θανάσης

gr8styl 14-10-11 18:45

... και αν η διάταξη είναι πάντα όπως στο παράδειγμά "collection",
αρκεί να βάλουμε τον τύπο
=E3 στο κελί J3 και τον τύπο
=IF(A3<>"";A3;K2) στο κελί K3
στο "collection_1.xls" που ανέβασα στο προηγούμενο μήνυμα.
αντιγράφοντας τα J3 και K3 προς τα κάτω έχουμε αυτόματα τις αντιστοιχίες.

kapetang 14-10-11 20:23

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

Ζαχαρία, στο αρχείο που επισυνάπτω προσπάθησα να δώσω μια λύση στο ζητούμενο με VBA.
Συγκεκριμένα δημιούργησα τη συνάρτηση «AddSet» η οποία στα τεμάχια ενός υλικού προσθέτει και τα τεμάχια από το σετ υλικών στο οποίο συμμετέχει.

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

Ο κώδικας της συνάρτησης δίνεται παρακάτω:
Κώδικας:

Public Function AddSet(rngSET As Range, rngSingle As Range)
    Dim startV As Long
    AddSet = ""
    If Not IsEmpty(rngSingle) Then
        startV = rngSingle
        Do Until IsEmpty(rngSingle)
            Set rngSingle = rngSingle.Offset(-1, 0)
        Loop
        AddSet = startV + Cells(rngSingle.Row, rngSET.Column)
    End If
End Function

Όπως φαίνεται η συνάρτηση έχει δύο ορίσματα.
Το πρώτο «rngSET» είναι η στήλη με τις ποσότητες των σετ. Στη συγκεκριμένη περίπτωση έχει τιμή: C:C.
Το δεύτερο όρισμα «rngSingle» είναι το κελί στην ίδια γραμμή με τον τύπο (συνάρτηση), που περιέχει την ποσότητα των απλών υλικών.

Ο τύπος (συνάρτηση) αντιγράφεται στην γραμμή 3 μιας στήλης και σύρεται προς τα κάτω όσο χρειάζεται.

Όπως βλέπω, από τη δομή του φύλλου, κάθε υλικό (άρωμα) συμμετέχει σ’ ένα μόνο σετ.
Δηλαδή δεν αντιμετωπίζεται η περίπτωση, που νομίζω δεν αποκλείεται, να συμμετέχει σε περισσότερα σετ.
Θα μπορούσε να χρησιμοποιηθεί η συνάρτηση και σ’ αυτήν την περίπτωση με την προϋπόθεση οι ποσότητες των απλών υλικών στα άλλα σετ θα είναι μηδενικές.

Φιλικά/Γιώργος
ΥΓ Φίλε Θανάση καλωσόρισες. Είδα τη λύση σου, όταν ανέβαζα την απάντησή μου

Echo 15-10-11 00:39

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

παιδιά σας ευχαριστώ πάρα πολύ για τις λύσεις σας.Με έχετε βοηθήσει πάρα πολύ για να πετύχω το τελικό σποτέλεσμα.Μια τελευταία ερώτηση;
Έστω ότι ξεκινάω την καταμέτρηση πρώτα από τους κωδικούς των SET και δεν ξέρω τεμάχια Μεμονωμένων ακόμα.Αυτά θα πρέπει να σπάσουν σε Μεμονωμένα.
Θα πρέπει με το που βλέπει πχ για το πρώτο SET(κωδ 3444) τεμάχια 50 να γίνονται 50 οι επιμέρους κωδικοί.Αντίστοιχα για το 3150 οι υποκωδικοί 3121,3122,3123,3124 να γίνουν 82.Και αν κάποιο είναι κενό(δεν βρεθεί) να επιστρέψει 0 στα Μεμονωμένα.Υπάρχει τρόπος να γίνει αυτό?
Αυτό βέβαια ισχύει στην περίπτωση που κάθε SET αποτελείται από ένα μόνο υποκωδικό αλλά προς το παρόν το αφήνω έτσι.
Γιώργο έχεις δίκιο στην επισήμανση και ισχύει αυτό που λες αλλά θα το σκεφτώ στη συνέχεια.Την πολύτιμη βοήθεια που μου προσφέρετε θα προσπαθήσω να προσαρμόσω στις ανάγκες μου.

Σας ευχαριστώ πάρα πολύ όλους.

Lefteris 15-10-11 09:51

1 Συνημμένο(α)
Καλημέρα σε όλους

Ζαχαρία, κάτι νομίζω πετύχαμε... Θέλει μικροβελτιώσεις, αλλά δεν έχω χρόνο τώρα δυστυχώς..

Ρίξε μία ματιά και τα λέμε...

Lefteris 15-10-11 13:38

1 Συνημμένο(α)
Καλησπέρα και πάλι.

Βελτιωμένη λίγο έκδοση, της ίδιας λογικής.

Τα λέμε.

kapetang 15-10-11 15:31

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

Ζαχαρία, στο αρχείο που επισυνάπτω υπάρχει μια βελτιωμένη προσέγγιση του ζητούμενου.

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

2. Πρόσθεσα ένα συγκεντρωτικό πίνακα για την αντιμετώπιση και των περιπτώσεων, που κάποια υλικά ανήκουν σε πολλά σετ ή δεν ανήκουν σε κανένα.

Σημειώνω ότι η λύση που προτείνω είναι προσαρμοσμένη στη δομή του φύλλου, που μας παρουσίασες.
Πιθανόν με κάποια άλλη σχεδίαση, ίσως να μπορούσε να επιτευχθεί μείωση του χρόνου απογραφής. Θέλει ψάξιμο.

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

Echo 17-10-11 21:48

1 Συνημμένο(α)
Καλησπέρα σε όλους,

θέλω να σας ευχαριστήσω πολύ για τις απαντήσεις σας,από όλους πήρα και έμαθα κάτι.
Στην παρούσα φάση,θέλω να σπάω τα σετ και να τα κάνω αναγωγή σε μονάδες.Δηλ αν το σετ έχει 3 τεμάχια αυτόματα οι επιμέρους κωδικοί να αποκτούν την τιμή 3.
Γιώργο προτίμησα το παράδειγμά σου στην προκειμένη περίπτωση,γιατί το θεώρησα κάπως πιο κατανοητό,παρόλο που γνωρίζω πολύ ελάχιστα τη VBA και ίσως μου είναι πιο εύκολο να το προσαρμόσω στις ανάγκες μου αφού το ψάξω λίγο.Όμως με ενδιαφέρει αρκετά και η εκδοχή των Λευτέρη και Θανάση.
Σας παραθέτω ένα μικρό(για σας πιθανότατα!) πρόβλημα που έχω μήπως έχετε κάτι να προτείνετε.
Υπάρχουν κάποια set τα οποία αποτελούνται απο 3άδες,4άδες 12x3 τεμάχια κτλ.Σε αυτή την περίπτωση οι μεμονωμένοι κωδικοί θα πρέπει να πολλαπλασιαστούν ανάλογα.Υπάρχει κάποια λύση σε αυτό?
Στο επισυναπτόμενο θα δείτε μερικά τέτοια set.

Σας ευχαριστώ και πάλι όλους για τη φοβερή υποστήριξη που παρέχετε,

Φιλικά,
Ζαχαρίας

gr8styl 18-10-11 01:08

Φίλε Ζαχαρία
από την πρώτη στιγμή σου είπα ότι θα χρειαστείς ένα πίνακα αντιστοιχίας
item->set (μεμονωμένα->σετ)
δεν έχεις παρά να προσθέσεις μια τρίτη στήλη στο πίνακα αντιστοιχίας με τον αριθμό τεμαχίων ανά σετ

Κώδικας:

Item  -> Set  -> Pcs
 3300 ->  3304 -> 1    (για το"Dreams" Άρωμα)
 3302 ->  3304 -> 1    (για το "Dreams" Αρωματική Κρέμα σώματος)
80361 -> 80364 -> 6    (για το Σετ Direct Χ 6 ΤΕΜΑΧΙΑ)

Αν φτιάξεις τον πίνακα αντιστοιχίας τα πράγματα θα είναι πολύ απλά.

Θανάσης
ΥΓ. Δεν μας έχεις πει τι είναι αυτό που ορίζει το σετ που ανήκει κάθε μεμονωμένο αν δεν έχεις πίνακα αντιστοιχίας. :032:

Lefteris 18-10-11 10:44

1 Συνημμένο(α)
Kαλημέρα σε όλους.

Ζαχαρία, αυτά για τα οποία επιμένει ο Θανάσης και σου λέει, ή σε ρωτάει, είναι σημαντικά.

Όπως είδες και εσύ η λογική μας(του Θανάση και μένα), στο θέμα σου είναι περίπου οι ίδια.
Λίγο διαφορετικό τρόπο χρησιμοποιούμε.

Στο συνημμένο θα βρείς λύση και στο τελευταίο σου ερώτημα και σου εξηγώ αναλυτικά τι κάνει η κάθε βοηθητική στήλη που χρησιμοποιώ.
Βασική προυπόθεση είναι, να ορίσεις,τις αντιστοιχίες. (Γκρί κελιά στο παράδειγμά μου)

Αν κάτι δεν είναι κατανοητό στην εφαρμογή, μην διστάσεις να ρωτήσεις. Εδώ είμαστε.

Στο λέω αυτό, επειδή θέλω να είμαι απόλυτα κατανοητός σε αυτό που προτείνω
Θεωρώ, πως η δομή είναι κατανοητή και προσιτή.

ΥΓ.Έχω αφήσει "ανοιχτές", όλες τις βοηθητικές στήλες, για να δείς αναλυτικά τις επεξηγήσεις.

ΥΓ2. Μόλις είδα πως στο συνημμένο μου, ζητάει να ενεργοποιήσουμε macro. Δέν ξέρω πως κόλλησε αυτό... Εγώ δεν χρησιμοποιώ, παρά μόνον συναρτήσεις και έτσι είναι η πρότασή μου.

kapetang 18-10-11 11:35

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

Τα υλικά μπορεί να διακινούνται μεμονωμένα ή σε σετ.
Για την περίπτωση των σετ έχουμε:

1. Ένα υλικό (πχ 3300) μπορεί να συμμετέχει σε πολλά σετ.

2. Στα σετ κάθε υλικό μπορεί να συμμετέχει:

2α. Με ένα τεμάχιο (πχ 3300Χ1, 3301Χ1, 3302Χ1).

2β. Με ίδιο αριθμό τεμαχίων (πχ 3300Χ6, 3301Χ6, 33002Χ6, 3303Χ6)

2γ.Με διαφορετικό αριθμό τεμαχίων (πχ 3300Χ2, 3301Χ2, 3302Χ6, 3303Χ3).

2δ. Μπορεί επίσης να υπάρχουν σετ μέσα σε σετ.

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

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

Tasos 18-10-11 14:22

Καλησπέρα στην παρέα!

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

  1. Στο κελί D4 τον τύπο: =IF(E4<>"";IF(A3="";D3;A3);"") και συμπλήρωση προς τα κάτω όσο χρειαστεί.
    Πρόκειται για βοηθητική στήλη και μπορεί να αποκρυφθεί.
  2. Στο κελί H4 τον τύπο: =IF(E4="";"";IF(D4<>"";INDEX(C:C;MATCH(D4;A:A;0))* IF(C4<>"";C4;1)+G4;G4)) και συμπλήρωση προς τα κάτω όσο χρειαστεί.
Φιλικά

Τάσος

Echo 19-10-11 23:50

Καλησπέρα φίλοι μου,

νομίζω ότι με έχετε καλύψει απόλυτα και δεν θα ρωτήσω κάτι άλλο.Οπότε...
Λευτέρη,Γιώργο,Θανάση και Τάσο σας ευχαριστώ ακόμη μια φορά για όλα.
Θα προσαρμόσω όσα μου δώσατε στο παράδειγμά μου και θα επανέλθω για τυχόν απορίες.Μέχρι τότε να είστε όλοι καλά και με έμπνευση...

Με εκτίμηση,
Ζαχαρίας


Η ώρα είναι 12:55.

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


Search Engine Optimization by vBSEO 3.3.2