Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [Συναρτήσεις] Αμοιβές Αργιών...

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 17-08-11, 18:34
Lefteris
Guest
 
Μηνύματα: n/a
Προεπιλογή Αμοιβές Αργιών...

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

Έχω μία στήλη(Ο), στην οποία θέλω να παίρνω, το σύνολο των υπερωριών ενός εργαζόμενου και να το επεξεργάζομαι. Δηλαδή, υπάρχουν σε στήλες η ώρα άφιξης, η ώρα αναχώρησης και η αφαίρεσή τους, μας κάνει τις ώρες εργασίας τους. Ορίζοντας κάπου ότι το ωράριο, είναι 8 ώρες, σε διπλανή στήλη, μας δίνει το άθροισμα των υπερωριών.Δίπλα, παίρνει από άλλη βάση το καθαρό ημερομίσθιο και δίπλα την αμοιβή των υπερωριών. Εντάξει ως εδώ..Αλλά, όταν η ημερομηνία είναι αργία, τότε η αμοιβή, είναι διαφορετική. Έφτιαξα την στήλη με το ημερομίσθιο και καταλαβαίνει ότι είναι αργία(κρυφές στήλες Α:C), και δεν υπολογίζει ημερομίσθιο, αλλά ....κόλησα στη στήλη των υπερωριών...Δεν μπορώ να το κάνω να καταλάβει, πως όλες οι ώρες, πρέπει να υπολογίζονται, σαν υπερωρία, αν η ημερομηνία είναι αργία, ή Σαβ/κα, ή ειδική Ημέρα....Άρα, μου βγάζει λάθος και το συνολοκό ημερήσιο ποσό αμοιβής.
Τί κάνω λάθος;; Κάποια ιδέα;;

Φιλικά/Λευτέρης
Συνημμένα Αρχεία
Τύπος Αρχείου: xls Προσπάθεια Εργατικά2.xls (74,5 KB, 80 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 17-08-11, 22:34
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.028
Προεπιλογή

Καλησπέρα Λευτέρη!

Για να είναι πιο κατανοητός και πιο μικρός ο τύπος, όρισε 2 ονόματα!

Περιοχή: Επίσημες αργίες = Holidays
Περιοχή: Ειδικές ημερομηνίες = SpecialDays

Και ο τύπος (παράδειγμα):

Κώδικας:
=IF(K4="";"";IF(OR(WEEKDAY(J4;2)>5;NOT(ISNA(MATCH(J4;Holidays;)));
NOT(ISNA(MATCH(J4;SpecialDays;))));N4;IF(N4<=O$1;0;N4-O1)))
Με τη χρήση της WEEKDAY() ίσως να μη χρειαστείς τις στήλες C, D και E που "φρενάρουν" όλο το σύστημα.



Προσοχή στα κενά κατά την αντιγραφή - επικόλληση.

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #3  
Παλιά 18-08-11, 11:26
Lefteris
Guest
 
Μηνύματα: n/a
Προεπιλογή

Καλημέρα σε όλους.

Τάσο μου, σε ευχαριστώ πολύ. Δούλεψε άψογα. Προσάρμοσα τον τύπο σου και στην διπλανή στήλη(με INDEX&MATCH), που "φέρνει" τα καθαρά ημερομίσθια, κατήργησα και τις στήλες C ,D ,E,που στην εξέλιξη θα "φρέναραν" το σύστημα. Όλα καλά και προχωράω.
Απάντηση με παράθεση
  #4  
Παλιά 29-08-11, 18:32
Lefteris
Guest
 
Μηνύματα: n/a
Προεπιλογή

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

Τάσο, προσπαθώ να ενώσω την δουλειά σου με τις καρτέλλες ανα ημερολογιακό διάστημα σε αυτή την δουλειά, αλλά.....κόλλησα. Δεν μου βγαίνει με τίποτα και το χειρότερο είναι, πως ΔΕΝ καταλαβαίνω το γιατί......
Όταν μπορέσεις, ρίχτου μία ματιά σε παρακαλώ. Στο μεταξύ ψάχνω...επιδή με πιέζει και ο χρόνος παράδοσής του.
Όλη η δουλειά, έχει τελειώσει και απομένει αυτό..
Τα λέμε..
Συνημμένα Αρχεία
Τύπος Αρχείου: xls Προσπάθεια για εργατικά 290811.xls (391,5 KB, 40 εμφανίσεις)
Απάντηση με παράθεση
  #5  
Παλιά 29-08-11, 21:53
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.028
Προεπιλογή

Καλησπέρα Λευτέρη!

Φρόντισε τα ονόματα που εμπλέκονται στις συναρτήσεις SUMPRODUCT() να έχουν το ίδιο μήκος (πολύ σημαντικό).

Επίσης πρέπει να προσέξεις ο τύπος δεδομένων να είναι ενιαίος σε κάθε όνομα.

πχ. ο τύπος =IF(I18<>"";J17;"") αν η συνθηκη I18<>"" είναι αληθής θα επιστρέφει αριθμό (ώρα)
διαφορετικά θα επιστρέψει κείμενο ( "" ) με αποτέλεσμα να μη μπορεί να επεξεργαστεί από την .SUMPRODUCT().


Οι τύποι που μπορείς να χρησιμοποιήσεις:

Κώδικας:
H16: =IF(ISBLANK(G16);;INDEX(DataBase!$F$2:$F$8;MATCH(Καταχώρηση!G16;DataBase!$B$2:$B$8;0)))
Κώδικας:
I17: =IF(G18<>"";I17;)
Κώδικας:
J17: =IF(G17<>"";J16;0)
Κώδικας:
K16: =IF(G16="";;SUM(J16-I16))
Κώδικας:
L16: =IF(G16="";;IF(OR(WEEKDAY(F16;
2)>5;NOT(ISNA(MATCH(F16;Holidays;)));NOT(ISNA(MATCH(F16;SpecialDays;))));K16;IF(K16<=CL$13;0;K16-CL$13)))
Κώδικας:
M16: =IF(G16="";;IF(OR(WEEKDAY(F16;2)>5;NOT(ISNA(MATCH(F16;Holidays;)));
NOT(ISNA(MATCH(F16;SpecialDays;))));K16;IF(K16<=CL$13;0;K16-CL$13)))
Κώδικας:
N16: =IF(G16<>"";SUM($CN$13*(L16)*24);)
Καλή συνέχεια!

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

Τελευταία επεξεργασία από το χρήστη Tasos : 29-08-11 στις 22:18.
Απάντηση με παράθεση
  #6  
Παλιά 30-08-11, 10:25
Lefteris
Guest
 
Μηνύματα: n/a
Προεπιλογή

Καλημέρα σε όλους.

Φίλε Τάσο, ευχαριστώ πολύ για τον χρόνο σου, αλλά δυστυχώς δεν μου βγαίνει...

Αν εξαιρέσουμε τον τύπο της στήλης Μ, που θεωρώ πως(απο κεκτημένη ταχύτητα;;;) είναι λάθος(Είναι ίδιος με αυτόν στην στήλη L), νομίζω πως εφάρμοσα σωστά τις υποδείξεις σου.

Το ότι δεν βγαίνει το ζητούμενο, οφείλεται μόνο σε αυτό; ή δεν κατάλαβα κάτι σωστά;;
Συνημμένα Αρχεία
Τύπος Αρχείου: xls Προσπάθεια για Εργατικά 300811Τάσος.xls (395,5 KB, 27 εμφανίσεις)
Απάντηση με παράθεση
  #7  
Παλιά 30-08-11, 11:15
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.028
Προεπιλογή

Καλημέρα Λευτέρη!
Η Sumproduct() στην συμπεριφέρεται όπως μια συνάρτηση πίνακα και προϋποθέτει:

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

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

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

Θα πρέπει λοιπόν , να διορθώσεις την αναφορά των ονομάτων All* του αρχείου σου έτσι που αυτά να έχουν τον ίδιο αριθμό κελιών.

Δες και το παράδειγμα παρακάτω:

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

Τάσος
Συνημμένα Αρχεία
Τύπος Αρχείου: xls lefteris.xls (396,0 KB, 50 εμφανίσεις)
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 30-08-11 στις 13:39.
Απάντηση με παράθεση
  #8  
Παλιά 30-08-11, 20:01
Lefteris
Guest
 
Μηνύματα: n/a
Προεπιλογή

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

Φίλε Τάσο, ακολούθησα τις συμβουλές σου και κατάφερα πολύ δύσκολα ομολογώ, να στήσω όλα αυτά τα δεδομένα, στο κανονικό προγραμματάκι και να το κάνω να λειτουργήσει σωστά. Το βασικό δε, δεν είναι πως κατάφερα να το κάνω, αλλά το ότι για να το κάνω, έπρεπε να ψάξω πολύ και να κατανοήσω την διαδικασία που χρειάζεται για να βγεί το αποτέλεσμα..
Έδινα όλη την προσοχή μου, στους ορισμούς των All..και δεν είχα δώσει σημασία στο ότι όλες οι στήλες που βάλαμε τους νέους τύπους(H:N), έπρεπε και αυτές να έχουν το ίδιο μήκος.

Προσπαθώ στή στήλη Ν, με τον τύπο: =IF(OR(H16>"Database$BD$2;H16<Database$BD$2);"";SUM($CN$13*(L16)*24);) (Με κόκκινο, ο δικός σου τύπος), αλλά ενώ δουλεύει στην στήλη(τον "τραβάω" ίδια με τις διπλανές, μου χαλάει στα Συγκεντρωτικά..
Ο τύπος "λέει": Αν δεν είναι εργάτης, μην γράφεις χρήματα απο Υπερωρίες.. Δηλαδή θέλω να πληρώνονται υπερωρίες ΜΟΝΟΝ οι εργάτες. Οχι οι υπόλοιποι..
Γιατί;;
Συνημμένα Αρχεία
Τύπος Αρχείου: xls Εργατικά_Τάσος300811.xls (398,0 KB, 68 εμφανίσεις)
Απάντηση με παράθεση
  #9  
Παλιά 30-08-11, 22:06
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.028
Προεπιλογή

Λευτέρη,


Στον τύπο γράφεις: =IF(OR(H16>DataBase!$BD$2;H16<DataBase!$BD$2);"";SUM($CN$13*(L16)*24))

Κατ αρχήν, αφού συγκρίνεις κείμενα, ο τελεστής < ή > δεν είναι ο κατάλληλος.

Γιατί όχι: =IF(H16=DataBase!$BD$2;.....

Όμως, ακόμα και αν διορθώσεις το παραπάνω, το πρόβλημα σου δεν θα λυθεί αφού
ο τύπος σου θα είναι: =IF(H16=DataBase!$BD$2;"";SUM($CN$13*(L16)*24))
που επιστρέφει ("") αν πρόκειται για εργάτη(α).


Όπως είπαμε, θα πρέπει οι τύποι σου που σε κάθε περίπτωση να επιστρέφουν τον ίδιο τύπο δεδομένων.

Δύο εισαγωγικά ("") = τιμή με τύπο δεδομένων: κείμενο. Ναι είναι τιμή (Στη VB τη συναντούμε σαν vbNullstring)
Αν πχ στο ένα κελί A1 γράψεις: ="" το κελί δεν είναι κενό και θα πάρει τον τύπο δεδομένων: Κείμενο.

Για του λόγου το αληθές, αφου βάλεις τον παραπάνω τύπο (="") στο A1 δοκίμασε: =ISBLANK(A1).

Συνεπώς, η περιοχή AllIncoming όπου περνάς τον τύπο αυτό, περιέχει δεδομένα με ετεροειδείς τύπους δεδομένων.

Έχεις δηλαδή αριθμούς και κείμενα στην περιοχή αυτή με αποτέλεσμα να μην μπορούν να
επεξεργαστούν από την Sumproduct() αλλά και από σχεδόν όλες τις συναρτήσεις πίνακα.

Αν όμως μετατρέψεις τον τύπο έτσι: =IF(H16=DataBase!$BD$2;0;SUM($CN$13*(L16)*24))
τα περιεχόμενα της περιοχής AllIncoming θα έχουν μόνο έναν τύπο δεδομένων (αριθμό) και θα
μπορούν να επεξεργαστούν απροβλημάτιστα από την Sumproduct().

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

Τάσος

__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #10  
Παλιά 01-09-11, 10:50
Lefteris
Guest
 
Μηνύματα: n/a
Προεπιλογή

Καλημέρα σε όλους και Καλό Μήνα.

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

1)Δεν καταλαβαίνω τον ρόλο των κελιών Α1:Α5(Καταχώρηση--=Dates) Μού εξηγείς σε παρακαλώ;

2) Μού γράφεις:
(Αν όμως μετατρέψεις τον τύπο έτσι: =IF(H16=DataBase!$BD$2;0;SUM($CN$13*(L16)*24))
τα περιεχόμενα της περιοχής AllIncoming θα έχουν μόνο έναν τύπο δεδομένων (αριθμό) και θα
μπορούν να επεξεργαστούν απροβλημάτιστα από την Sumproduct().)


Με αυτόν τον τύπο, παίρνουμε το αντίθετο αποτέλεσμα από το ζητούμενο. Παίρνουν Υπερωρίες όλοι οί άλλοι, εκτός απο τους Εργάτες. Τον αντικατέστησα με τον παρακάτω τύπο και πήρα το ζητούμενο αποτέλεσμα. Θεωρώ πως είναι σωστό. Τι λές;

IF(OR(H16>DataBase!$BD$2;H16<DataBase!$BD$2);0;SUM ($CN$13*(L16)*24))

Εκείνο όμως που δεν καταλαβαίνω, είναι πως όλη η εφαρμογή, δουλεύει σωστά ΚΑΙ με αυτόν τον τύπο. Πώς γίνεται αυτό φίλε μου;

IF(OR(H16>DataBase!$BD$2;H16<DataBase!$BD$2);"";SU M($CN$13*(L16)*24))

3) Μού γράφεις:
(Δύο εισαγωγικά ("") = τιμή με τύπο δεδομένων: κείμενο. Ναι είναι τιμή (Στη VB τη συναντούμε σαν vbNullstring)
Αν πχ στο ένα κελί A1 γράψεις: ="" το κελί δεν είναι κενό και θα πάρει τον τύπο δεδομένων: Κείμενο.)


Δεν το ήξερα Τάσο μου! Θεωρούσα πως είναι το ίδιο. Δεν μου είχε τύχει ποτέ να μην μου βγαίνει και να χρειαστεί να ψάξω...!

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

*Ερώτηση τηε τελευταίας στιγμής; Παιά ακριβώς, είναι η δουλειά που κάνει το 0(Μηδέν), σε αυτή τη συνάρτηση; Γαιτί χωρίς το 0, δεν "βγαίνει το αποτέλεσμα;

=INDEX(DataBase!N2:N40;MATCH(O10;Articles;0))

Τελευταία επεξεργασία από το χρήστη Lefteris : 01-09-11 στις 11:38. Αιτία: Ερώτηση τελευταίας στιγμής...
Απάντηση με παράθεση
Απάντηση στο θέμα

Ετικέτες
index, match, sum, sumproduct

Εργαλεία Θεμάτων
Τρόποι εμφάνισης

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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Excel07] συνολα ωρων-αργιων-νυκτερινων-ρεπω-αδειων pnemtsa Excel - Ερωτήσεις / Απαντήσεις 5 20-11-16 09:54


Η ώρα είναι 07:56.