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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 17-10-12, 21:35
Fotis1991
Guest
 
Μηνύματα: n/a
Προεπιλογή Εύρεση και διατύπωση ημέρας συγκεκριμμένης ημερομηνίας.

Καλησπέρα σας.

Στο Α1, βάζουμε μια ημερομηνία. Π.χ 22/01/2013.
Ζητούμενο είναι_χρησιμοποιώντας τύπους_στο D1, να μας ενημερώνει "λέγοντας"

"Είναι η 4τη Τρίτη του μήνα Γενάρη"

Αν η ημερομηνία είναι 29/01/2013, τότε το αποτέλεσμα θα πρέπει να είναι"

"Είναι η τελευταία Τρίτη του μήνα Γενάρη"

Αν η ημερομηνίες είναι Σάββατο(π.χ 19/01/13 και 26/01/2013, θα πρέπει αντίστοιχα οι απαντήσεις να είναι"

"Είναι το 3το Σάββατο του μήνα Γενάρη"

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

Καλημέρα Φώτη!
Έστω ότι η ημερομηνία βρίσκεται στο κελί Β2.

Ο βασικός τύπος που θα σου επιστρέψει το αριθμό 1,2,3,4 ή 5 είναι:

=SUMPRODUCT((WEEKDAY(ROW(INDIRECT("A"&B2-DAY(B2)+1&":"&"A"&B2));2)=WEEKDAY(B2;2))*1)

Ο τελικός τύπος που επιστρέφει βρίσκεται στο συνημένο και παίρνει λέξεις από λίστες που έχω δημιουργήσει.

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

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

Τάσος

Edit: Το συνημμένο αντικαταστάθηκε με νέο βελτιωμένο (Περαιτέρω επεξεργασία τύπου)
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsx XLnDayOfMonth.xlsx (12,2 KB, 45 εμφανίσεις)
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 18-10-12 στις 15:00. Αιτία: Περαιτέρω επεξεργασία τύπου
Απάντηση με παράθεση
  #3  
Παλιά 18-10-12, 15:11
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

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

Μια άλλη προσέγγιση.

Σ’ αυτήν για να προσδιορίσουμε τη σειρά εμφάνισης μιας μέρας μέσα στο μήνα, χρησιμοποιούμε τον τύπο: INT((DAY(A1)-1)/7)+1, στον οποίο το κελί A1 περιέχει την ημερομηνία.

Για να βρούμε αν μια μέρα είναι η τελευταία στο μήνα, χρησιμοποιούμε τον τύπο:

MONTH(A1)<>MONTH(A1+7).

Το αρχείο που επισυνάπτω δείχνει μια εφαρμογή των παραπάνω σχέσεων.

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: xls DaysMonth.xls (80,5 KB, 32 εμφανίσεις)
Απάντηση με παράθεση
  #4  
Παλιά 18-10-12, 15:29
Lefteris
Guest
 
Μηνύματα: n/a
Προεπιλογή

Καλησπέρα.

Στην λογική του Γιώργου ο βασικός τύπος.

Αν και βλέπω ότι αυτό που έδωσε ο Γιώργος είναι καλύτερο(Πιό προσιτό), μιας και το είχα δουλέψει, σας δίνω και την δική μου προσέγγιση.
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsx 0A1_AL_Βιβλίο5.xlsx (11,1 KB, 26 εμφανίσεις)
Απάντηση με παράθεση
  #5  
Παλιά 18-10-12, 19:50
Fotis1991
Guest
 
Μηνύματα: n/a
Προεπιλογή

Καλησπέρα.

Πρόκειται για χιλιάδες γραμμές δεδομένων.

Τάσο δουλεύει σωστά αλλά η SUMPRODUCT και η INDIRECT, θα μου σκοτώσει τον υπολογιστή.

Λευτέρη πολύ καλή δουλειά.

Γιώργο, άψογη προσέγγιση.

Σας ευχαριστώ πολύ.
Απάντηση με παράθεση
  #6  
Παλιά 19-10-12, 20:27
Το avatar του χρήστη gr8styl
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 758
Προεπιλογή

Καλησπέρα σας.
Εγώ θα έλεγα ότι η προσέγγιση του Τάσου με χρήση πινάκων είναι η σωστή γιατί ή TEXT εξαρτάται από τις τοπικές ρυθμίσεις των WINDOWS και την γλωσσική έκδοση του EXCEL.
Επίσης οι υπολογισμοί του Γιώργου για 1η ... τελευταία επίσης είναι πολύ σωστοί.
Άρα ένας συνδυασμός των δύο θα έλεγα είναι το ιδανικό. βλ. συνημμένο
Οι SUMPRODUCT και INDIRECT δεν είναι αναγκαίες και μπορούν να αποφευχθούν.

Θανάσης
Συνημμένα Αρχεία
Τύπος Αρχείου: xls date_form.xls (49,5 KB, 36 εμφανίσεις)
Απάντηση με παράθεση
  #7  
Παλιά 20-10-12, 00:47
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

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

Έχετε δίκιο Θανάση και Φώτη.
Και εγώ ήμουν και είμαι της γνώμης (και το έχω αναφέρει αρκετές φορές στο φόρουμ) ότι η Indirect() δεν είναι ότι καλύτερο ειδικά σε πολλά δεδομένα.

Την πρότεινα (λάθος μου) επειδή αυτή μου ήρθε πρώτη στο μυαλό και επειδή υπέθεσα ότι επρόκειτο για 50-100 γραμμές.

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

Ενδεικτικά, αν αντί για τύπους καταχωρηθούν σταθερές με VBA, o χρόνος που θα χρειαστεί για 500.000 κελιά σε ένα μέσο υπολογιστή είναι κάτω από 5 δευτερόλεπτα με αποτέλεσμα να μειωθούν δραματικά οι χρόνοι ανοίγματος, υπολογισμού και αποθήκευσης του αρχείου.

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

Στο παράδειγμα αυτό:

Τα ονόματα των μηνών της Ελληνικής εμφανίζονται στην γενική πτώση (με χρήση Πίνακα (Array) και της συνάρτησης ChrW() στη VB)

Οι ημέρες εμφανίζονται στα ελληνικά με χρήση του παρακάτω Βρόχου επανάληψης:
Κώδικας:
    For i = 1 To 7
        GreekDayNames(i) = WorksheetFunction.Text(DateSerial(1, 1, i), "[$-408]dddd")
    Next
Έχω επίσης προσθέσει τη συνάρτηση GetVbChar() που μας διευκολύνει να αντικαθιστούμε
τα ελληνικά μέσα στον VBE (απαραίτητο σε μη ελληνικούς υπολογιστές).

Συμπληρώστε ας πούμε 500.000 δεδομένα και κάντε τις δοκιμές σας.

Καλό ξημέρωμα!

Τάσος
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsm XLnDayOfMonthVBA.xlsm (37,6 KB, 44 εμφανίσεις)
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 20-10-12 στις 00:57.
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Συναρτήσεις] Εύρεση Ημερομηνίας xristos Excel - Ερωτήσεις / Απαντήσεις 10 27-11-15 18:27
Ερώτημα για εύρεση ημερομηνίας και ημέρας γέννησης γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 2 14-08-14 10:03
[ Εκθέσεις ] Ταξινόμηση ημερομηνίας βαση ημερας lalosjim Access - Ερωτήσεις / Απαντήσεις 4 05-06-14 17:37
[ Φόρμες ] Αντιστοιχία Ημερομηνίας - Ημέρας mgeorge Access - Ερωτήσεις / Απαντήσεις 3 04-06-11 19:35
Εξαγωγή ημερομηνίας και ημέρας σε φόρμα ntelios Access - Ερωτήσεις / Απαντήσεις 38 28-09-10 10:09


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