Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Συναρτήσεις] DATEDIF ανά μήνα (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/1643-datedif-ana-mina.html)

shotcon 13-02-12 14:55

DATEDIF ανά μήνα
 
1 Συνημμένο(α)
Προσπάθησα αλλά δεν τα κατάφερα να αφαιρέσω τις ημέρες μεταξύ δύο ημερομηνιών δηλαδή datedif(a2;b2;"d") με τρόπο τέτοιο ώστε σε πίνακα μηνών από 1-12 να μου δώσει τις ημέρες για κάθε μήνα ξεχωριστά. Π.Χ. 30-1-12 έως 30-3-12 Συνολικά 60 ημέρες οι οποίες σε πίνακα μηνών αναλύονται ως υπόλοιπο ημερών: Ιανουάριος 1 ημέρα, Φεβρουάριος 29 ημέρες, Μάρτιος 30 ημέρες.
Δείτε το συνημμένο.

Lefteris 13-02-12 16:42

1 Συνημμένο(α)
Kώστα δοκίμασε αυτά

Στο D2, βάλε αυτόν τον τύπο.

=IF($A2<=D$1;MIN(D$1;$B2)-$A2;0)

Σύρε κατά κάτω.

Στο Ε2, βάλε αυτόν.

=IF($A2<=E$1;MIN(E$1;$B2)-$A2;0)-SUM(D2:$D2)

Σύρε κάτω και δεξιά.

Ελπίζω να βοήθησα.

shotcon 13-02-12 18:26

Παράθεση:

Αρχική Δημοσίευση από LEFTERIS (Μήνυμα 9433)
Kώστα δοκίμασε αυτά

Στο D2, βάλε αυτόν τον τύπο.

=IF($A2<=D$1;MIN(D$1;$B2)-$A2;0)

Σύρε κατά κάτω.

Στο Ε2, βάλε αυτόν.

=IF($A2<=E$1;MIN(E$1;$B2)-$A2;0)-SUM(D2:$D2)

Σύρε κάτω και δεξιά.

Ελπίζω να βοήθησα.

Μα το άδειο μου μυαλό, άμα κολλήσεις. Τόσο απλό. Α1....Α10= Α1:Α1,Α1:Α2,Α1:Α3...Α1:Α10
Το συμπλήρωσα λίγο να μην δίνει λάθη στα κενά κελιά
ΙF($a2="";"";IF($A2<=D$1;MIN(D$1;$B2)-$A2;0)


IF($a2="";"";IF($A2<=E$1;MIN(E$1;$B2)-$A2;0)-SUM(D2:$D2)

Είχα κολλήσει με το month όπως κάτω και δεν μου έβγαινε. Δεν είχα σκεφτεί καθόλου το ΜΙΝ
IF(F2="";"";IF(MONTH($D2)=2;J$1-$D2;IF(MONTH($E2)=2;J$1-$E2;"")))

Να είσαι καλά σε ευχαριστώ με ξεστράβωσες.

shotcon 13-02-12 18:53

Υπάρχει και άλλο θέμα το οποίο μόλις είδα:

Μεταξύ δύο ίδιων ημερομηνιών δεν πρέπει να μας δώσει αποτέλεσμα 0 αλλά 1 και να το αποδόσει στον ανάλογο μήνα.

Lefteris 13-02-12 19:03

Τώρα, ομολογώ πως με μπέρδεψες...!

Ας πούμε 12/12/12---12/12/12...

Τι πρέπει να δείχνουν οι προηγούμενοι μήνες και τι ο Δεκάμβρης;;;;;;;;;;;;;;

shotcon 13-02-12 20:31

1 Συνημμένο(α)
Παράθεση:

Αρχική Δημοσίευση από LEFTERIS (Μήνυμα 9443)
Τώρα, ομολογώ πως με μπέρδεψες...!

Ας πούμε 12/12/12---12/12/12...

Τι πρέπει να δείχνουν οι προηγούμενοι μήνες και τι ο Δεκάμβρης;;;;;;;;;;;;;;

Για να μην σπάσω "καρύδια"
Βρήκα έμμεση λύση.

=IF(G2=T2;T2;1)

Δες Επισύναψη.

Lefteris 13-02-12 20:57

Παράθεση:

....Για να μην σπάσω "καρύδια"
Βρήκα έμμεση λύση.....
Χαίρομαι με την λογική σου. Συγχαρητήρια Φίλε!! Σπάνια το συναντώ αυτό!!

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

Spirosgr 13-02-12 22:08

1 Συνημμένο(α)
Καλησπέρα παιδιά
Κώστα δες την τελευταία μπλε σειρά αν σε καλύπτει η λύση αυτή

shotcon 13-02-12 22:52

1 Συνημμένο(α)
Παράθεση:

Αρχική Δημοσίευση από spirosgr (Μήνυμα 9452)
Καλησπέρα παιδιά
Κώστα δες την τελευταία μπλε σειρά αν σε καλύπτει η λύση αυτή

Το χαλάει στον 3,4,7,8,11 μήνα. δοκίμασα στο ίδιο κελί και έδωσα σταδιακά ημερομηνίες ίδιες. Δλδ.
15-1 εως 15-1, 15-2 εως 15-2 μέχρι 15-12. Δουλεύει άψογα (στο δικό μου μηχανάκι) μέχρι τον 3 μήνα μετά σταδιακά χαλάει.
Πάντως λίγο που προσπάθησα να καταλάβω την σκέψη σου δεν είμαι σίγουρος ότι αντιλήφθηκα το περιεχόμενο. Θα το δω αύριο. Δεν έχω άλλο κουράγιο.

Δες και την δική μου εκδοχή την απλή φυσικά. :coffee2:

Καλό βράδυ. Σε ευχαριστώ θερμότατα για τον χρόνο που αφιέρωσες. Οφείλω χάρη.

gr8styl 14-02-12 01:28

Κώστα ας μου επιτραπούν 2 παρατηρήσεις

1) πρέπει να αποφασίσεις τι μας κάνει 1 το 30/1/2012 - 31/1/2012 ή το 30/1/2012 - 30/1/2012
Παράθεση:

Αρχική Δημοσίευση από shotcon (Μήνυμα 9429)
...Π.Χ. 30-1-12 έως 30-3-12 Συνολικά 60 ημέρες οι οποίες σε πίνακα μηνών αναλύονται ως υπόλοιπο ημερών: Ιανουάριος 1 ημέρα, Φεβρουάριος 29 ημέρες, Μάρτιος 30 ημέρες....

Παράθεση:

Αρχική Δημοσίευση από shotcon (Μήνυμα 9442)
...Μεταξύ δύο ίδιων ημερομηνιών δεν πρέπει να μας δώσει αποτέλεσμα 0 αλλά 1 και να το αποδόσει στον ανάλογο μήνα.

2) ο τύπος σου =IF($D2="";"";IF(D2<=I$1;MIN(I$1;$E2)-$D2;"")) θα δουλέψει καλύτερα αν γίνει =IF($D2="";"";IF(D2<=I$1;MIN(I$1;$E2)-$D2;0))

Νομίζω ότι η αρχική πρόταση του Λευτέρη ήταν σωστή αρκεί να προσθέσεις +1 για να μετράει σαν 1 την ίδια ημερομηνία( ο τύπος δεν χρρειάζεται να είναι διαφορετικός στην D σε σχέση με τις E,F, G.....
Αν υποθέσουμε ότι η στήλη Α είναι η έναρξη, η στήλη Β είναι η λήξη,
Αφήνουμε κενή την C και στο D2 βάζουμε
=IF($A2<=D$1;MIN(D$1;$B2)-$A2;0)-SUM($C2:C2)
ή
=IF($A2<=D$1;MIN(D$1;$B2)-$A2+1;0)-SUM($C2:C2)

Ελπίζω να βοήθησα.
Θανάσης

shotcon 14-02-12 16:07

Παράθεση:

Αρχική Δημοσίευση από gr8styl (Μήνυμα 9457)
Κώστα ας μου επιτραπούν 2 παρατηρήσεις

1) πρέπει να αποφασίσεις τι μας κάνει 1 το 30/1/2012 - 31/1/2012 ή το 30/1/2012 - 30/1/2012




2) ο τύπος σου =IF($D2="";"";IF(D2<=I$1;MIN(I$1;$E2)-$D2;"")) θα δουλέψει καλύτερα αν γίνει =IF($D2="";"";IF(D2<=I$1;MIN(I$1;$E2)-$D2;0))

Νομίζω ότι η αρχική πρόταση του Λευτέρη ήταν σωστή αρκεί να προσθέσεις +1 για να μετράει σαν 1 την ίδια ημερομηνία( ο τύπος δεν χρρειάζεται να είναι διαφορετικός στην D σε σχέση με τις E,F, G.....
Αν υποθέσουμε ότι η στήλη Α είναι η έναρξη, η στήλη Β είναι η λήξη,
Αφήνουμε κενή την C και στο D2 βάζουμε
=IF($A2<=D$1;MIN(D$1;$B2)-$A2;0)-SUM($C2:C2)
ή
=IF($A2<=D$1;MIN(D$1;$B2)-$A2+1;0)-SUM($C2:C2)

Ελπίζω να βοήθησα.
Θανάσης

Στον Ερυθρό Σταυρό ως διασώστης. Προσλαμβάνεστε. :icon_n1: Με μηνιαίο μισθό με καθορισμό ύψους ελεύθερο.
Τελικά έχεις δίκιο το "" ήταν πρόβλημα δημιούργησε αρκετό μπέρδεμα και αντικαταστάθηκε με το 0.
Το +1 προστέθηκε ομολογώ ότι δεν ήμουν σε θέση να βγάλω την συνάρτηση. Στην διαδρομή χάθηκα.
Το +1 δουλεύει αλλά μου το χαλάει στον 31/8 μου βγάζει 32 ημέρες δεν ξέρω γιατί.
Σας χρωστώ χάρη με βοηθήσατε και με το παραπάνω.

gr8styl 14-02-12 16:35

Κώστα,
ο Διασώστης είναι ο Λευτέρης αφού αυτος παρενέβη για τις πρώτες βοήθειες.

Εγώ λέω να κάτσω στην καρέκλα του προϊσταμένου στο κέντρο επιχειρήσεων θα είναι πιό αναπαυτικά

τώρα όσον αφορά το 32 για την 31/8 το λάθος σου είναι στον Ιούλιο. Πρέπει να διορθώσεις τον Ιούλιο 31/7 και όχι 30/7 κελί Ο1 στο δικό σου παράδειγμα.

εγώ θα έβαζα i1=date(2012;column()-column($h$1)+1;0) στο δικό σου παράδειγμα και θα το τράβαγα δεξιά μέχρι το t1

Καλή συνέχεια :wink:

shotcon 14-02-12 20:22

i1=date(2012;column()-column($h$1)+1;0)
Δεν το κατάλαβα. Και μάλλον θέλει και ημέρα.
Αλλά οι διορθώσεις είναι υπέρ αρκετές. Οι συναρτήσεις τρέχουν, αποτέλεσμα επιθυμητό υπάρχει, οπότε,
επιπλέον το αρχειάκι θα το δουλέψουν άλλοι που δεν έχουν ιδέα από υπολογιστές για να μου καταχωρούν τα δεδομένα τα οποία εγώ θα κάνω μόνο την επεξεργασία κάθε μήνα και στο τέλος κάθε έτους; Τώρα δεν θα χρειαστεί να κάθομαι για 5 ημέρες μέχρι τις 12 το βράδυ σερί να βγάζω δουλειά άλλων. Αυτό το αρχείο μου γλίτωσε αρκετό πονοκέφαλο.

Φυσικά το διπλό ευχαριστώ και στους δύο σας παραμένει ενεργό.

Lefteris 15-02-12 10:26

Κώστα, εγώ δέχομαι την θέση αφού ο Θανάσης έχει μεγαλοπήβολα σχέδια...!!!(Προιστάμενος...??κ αρέκλα???..αυτήν την εποχή..???)

Αφού έχει και μισθό...τέλος. Κλείσαμε φίλε!!:yahoo:

gr8styl 15-02-12 18:54

Παράθεση:

Αρχική Δημοσίευση από shotcon (Μήνυμα 9478)
i1=date(2012;column()-column($h$1)+1;0)
Δεν το κατάλαβα. Και μάλλον θέλει και ημέρα.
....

απλά βάζουμε στο i1 το =date(2012;column()-column($h$1)+1;0)

ΥΓ. και πουσαι ο μισθός να μην εξαρτάται από τον βασικό γιατί αυτό προβλέπω να τον μηδενίζουν !!!

shotcon 16-02-12 18:42

Παράθεση:

Αρχική Δημοσίευση από gr8styl (Μήνυμα 9509)
απλά βάζουμε στο i1 το =date(2012;column()-column($h$1)+1;0)

ΥΓ. και πουσαι ο μισθός να μην εξαρτάται από τον βασικό γιατί αυτό προβλέπω να τον μηδενίζουν !!!

Επιτέλους βρήκα λίγο χρόνο να ασχοληθώ.

Ως αυτοδίδακτος θα μου επιτρέψετε να εκφράσω απορία αιτία αμάθειας.

στο κελί I1:T1 έγραψα - επικόλλησα την εντολή. Αν κατάλαβα καλά χρησιμοποιεί το κενό κελί Η1 για προσωρινή εγγραφή και υπολογισμό. ( Σιγά μην γνώριζα το " column()- " γενικά το όλο στήσιμο δεν έχω καταλάβει διότι με τα υπόλοιπα κελιά τους δύο τύπους
1. =IF($D9="";"";IF(D9<=I$1;MIN(I$1;$E9)-$D9;0))
2. =IF($D9="";"";IF($D9<=J$1;MIN(J$1;$E9)-$D9;0)-SUM($I$9:I9))

δεν αποδίδει το επιθυμητό αποτέλεσμα.

Καλοί μου κύριοι εκεί που έλεγα ότι γνωρίζω πέντε πράγματα στο excel αρχίζω και νιώθω άσχετος.
ΘΑΝΑΣΗ! :too_angry:
Αν δεν μου δείξεις μισθό δεν έχει. Στον βασικό θα σε ρίξω με τις ανάλογες περικοπές. :lol::lol:

Υπογραφή
Υπουργείο Εργασίας
:d020:

gr8styl 16-02-12 23:21

Φίλε Κώστα,
τα πράγματα είναι απλά

Υποθέτω ότι στην στήλη D έχουμε την έναρξη και στη στήλη E την λήξη
Η στήλη H μένει κενή για να μην χαλάσει τους υπολογισμούς και να χρήσιμοποιήσουμε ένα μόνο τύπο για τον υπολογισμό των ημερών.
Στην 1η γραμμή (i1:t1) υπολογίζουμε την τελευταία ημερομηνία κάθε μήνα, όπου ο μήνας καθορίζεται από την απόσταση της στήλης από την στήλη Η δηλαδή column()-column($h$1)
ο τύπος είπαμε ότι είναι =date(2012;column()-column($h$1)+1;0) στο i1 και αντιγραφή μέχρι το t1

Στο i2 βάζουμε =IF($D2="";"";IF($D2<=I$1;MIN(I$1;$E2)-$D2;0)-SUM($H2:H2)) και αντιγραφή μέχρι το t2
Αντιγραφή του i2:t2 προς τα κάτω όσες γραμμές χρειάζεται.

Έτσι ο τύπος στο κελί L3 είναι =IF($D3="";"";IF($D3<=L$1;MIN(L$1;$E3)-$D3;0)-SUM($H3:K3))

Τι σημαίνει αυτός ο τελευταίος τύπος:
εάν το κελί D3 (ημ.έναρξης) είναι κενό, τότε αποτέλεσμα κενό, αλλοιώς αν το D3 είναι μικρότερο του L1 (τελ.ημ.μήνα), τότε το αποτέλεσμα είναι η διαφορά του μικρότερου μεταξύ L1 και E3 (ημ.λήξης), με το D3, αλλοιώς δηλαδή όταν η ημ.εναρξης δεν είνι κενή και είναι μεγαλύτερη από την τελευταία μέρα του μήνα αποτέλεσμα 0. Τέλος στην περίπτωση που το D3 δεν είανι κενό από το υπολογισμένο αποτέλεσμα πρέπει να αφαιρέσουμε τις μέρες των προηγούμενων μηνών για να έχουμε το τελικό αποτέλεσμα για τον αντίστοιχο μήνα.

:hammer-smilies-0005
Ελπίζω να είναι κατανοητό τώρα γιατί πιο ψιλά δεν γίνεται.
Θανάσης
ΥΓ. Αν η στήλη Η δεν είναι κενή, τα περιεχόμενά της θα αφαιρούνται κάθε φορά από το αποτέλεσμα βλ. -SUM($H2:H2) ή -SUM($H3:K3)

shotcon 17-02-12 07:53

Δεν έκανα κάτι διαφορετικό. Σωστά το κατάλαβα. Απλά δεν δίνει το παράδειγμα αυτό το αποτέλεσμα 1 στις περιπτώσεις ίδιων ημερομηνιών. Π.χ. αν δώσεις 12-2 με 12-2 το αποτέλεσμα θα είναι 0 και όχι 1.

gr8styl 17-02-12 08:21

Καλημέρα,
Παράθεση:

Αρχική Δημοσίευση από shotcon (Μήνυμα 9542)
... Απλά δεν δίνει το παράδειγμα αυτό το αποτέλεσμα 1 στις περιπτώσεις ίδιων ημερομηνιών. Π.χ. αν δώσεις 12-2 με 12-2 το αποτέλεσμα θα είναι 0 και όχι 1.

Αυτό το εξηγήσαμε στην απάντηση νούμερο 10 πριν 3 μέρες :hammer-smilies-0003

Αν υποθέσουμε ότι η στήλη Α είναι η έναρξη, η στήλη Β είναι η λήξη,
Αφήνουμε κενή την C και στο D2 βάζουμε
=IF($A2<=D$1;MIN(D$1;$B2)-$A2;0)-SUM($C2:C2)
ή
=IF($A2<=D$1;MIN(D$1;$B2)-$A2+1;0)-SUM($C2:C2)


Δηλαδή
Στο i2 βάζουμε =IF($D2="";"";IF($D2<=I$1;MIN(I$1;$E2)-$D2+1;0)-SUM($H2:H2)) και αντιγραφή μέχρι .....

shotcon 17-02-12 15:36

Παράθεση:

Αρχική Δημοσίευση από gr8styl (Μήνυμα 9543)
Καλημέρα,

Αυτό το εξηγήσαμε στην απάντηση νούμερο 10 πριν 3 μέρες :hammer-smilies-0003

Αν υποθέσουμε ότι η στήλη Α είναι η έναρξη, η στήλη Β είναι η λήξη,
Αφήνουμε κενή την C και στο D2 βάζουμε
=IF($A2<=D$1;MIN(D$1;$B2)-$A2;0)-SUM($C2:C2)
ή
=IF($A2<=D$1;MIN(D$1;$B2)-$A2+1;0)-SUM($C2:C2)


Δηλαδή
Στο i2 βάζουμε =IF($D2="";"";IF($D2<=I$1;MIN(I$1;$E2)-$D2+1;0)-SUM($H2:H2)) και αντιγραφή μέχρι .....


Συμφωνώ! Όλα όσα περιγράφεις πριν καταθέσω κάποιο σχόλιο τα έχω πειραματιστεί. Κατέληξα στο συμπέρασμα ότι η συνάρτηση απαραίτητα χρειάζεται το +1 στα δύο κελιά π.χ. Ι2 για την μία συνάρτηση και J2 για την άλλη.

Θεώρησα ότι η τελευταία σου συνάρτηση θα έκανε κάτι διαφορετικό και αυτό διότι δεν έχω τόσο μεγάλη εμπειρία σε όλα τα θέματα του EXCEL. Η συγκεκριμένη στην θέση που τοποθετείται δεν με βοήθησε να καταλάβω την διαφορά με την προηγούμενη έκδοση του Λευτέρη.
Και εδώ με μπέρδεψε ως τι η διαφορά της =date(2012;column()-column($h$1)+1;0 την στιγμή που το +1 παίζει παντού. Επιπλέον το έτος 2012 θα χρειαστεί να γίνει χειροκίνητα 2013 στην αντιγραφή του αρχείου στο νέο έτος. Οπότε αν χρειάζεται DATE(2013;.... Δεν θα με βοηθήσει. Αντιθέτως θα με πρήξουν.:026:
Είπαμε είμαι χαζούλης αλλά όχι και τόσο :pchit:

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

Lefteris 17-02-12 17:09

Θανάση, μην αγριεύειες:hammer-smilies-0005, τον Φίλο μας τον Κώστα, μέχρι να υπογράψουμε τις συμβάσεις μας!!...:laughbounce::laughbounce:

Tasos 20-02-12 23:20

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

Δείτε στο συνημμένο μια λίγο διαφορετική προσέγγιση:

Φιλικά

Τάσος

shotcon 21-02-12 15:43

Παράθεση:

Αρχική Δημοσίευση από Tasos (Μήνυμα 9591)
Καλησπέρα!

Δείτε στο συνημμένο μια λίγο διαφορετική προσέγγιση:

Φιλικά

Τάσος

ΟΥΠΣ!!! Τα χάπια μου. :scared:

Tasos 21-02-12 15:56

Αγαπητέ φίλε Κώστα, ρίξε μια ματιά εδώ:

SUMPRODUCT - Excel - Office.com

INDIRECT - Excel - Office.com

ROW - Excel - Office.com


Φιλικά

Τάσος


Η ώρα είναι 11:08.

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


Search Engine Optimization by vBSEO 3.3.2