Η ΤΕΧΤ μιλάει Ελληνικά στη γενική και πως συμμαζεύονται τα “ανακόντα”

Για να πάρουμε από μια ημερομηνία το όνομα της ημέρας σαν κείμενο θα χρησιμοποιήσουμε φυσικά την συνάρτηση ΤΕΧΤ. Αν στο κελί A1 είναι γραμμένη η ημερομηνία 14/4/2011 η συνάρτηση :
 =TEXT(A1;"ηηηη")
θα επιστρέψει: Πέμπτη. Σωστά και καλά. Για να πάρουμε το όνομα του μήνα σε κείμενο η
=TEXT(A1;"μμμμ")
θα επιστρέψει: Απριλίου. Σωστά μεν, αλλά όχι καλά. Η επιστροφή των μηνών στη γενική πτώση είναι όχι μόνο αισθητικά ενοχλητική αλλά μπορεί να αποτελέσει και παράγοντα δυσλειτουργίας (πχ για μία αναζήτηση).
Λύσεις για το πρόβλημα αυτό; Αρκετές.
α) Η λύση του μινιμαλιστή.
Συντάσσω την συνάρτηση με 3μ :
=TEXT(A1;"μμμ") 
και έχω επιστροφή συγκοπτόμενων ονομάτων των μηνών: Ιαν, Φεβ, Μαρ, Απρ, Μαϊ, ……
β) Η γρήγορη λύση
Επειδή η γενική πτώση διαφέρει από την ονομαστική μόνο στο τελικό γράμμα με την  REPLACE θα αντικαταστήσω το τελικό γράμμα “υ” με το “ς”. Την θέση του τελικού “υ” θα μου την αποκαλύψει η LEN. Ετσι έχω:
=REPLACE(TEXT(A1;"μμμμ");LEN(TEXT(A1;"μμμμ"));1;"ς")
Ουπς!  Ξέχασα τους τόνους!  Πήρα το παρατονισμένο “Απριλίος”. Δεν πειράζει, έχω λύση, θα βάλω την UPPER να τα μετατρέψει όλα  σε κεφαλαία και έτσι θα γλυτώσω από τους τόνους.
=UPPER(REPLACE(TEXT(A1;"μμμμ");LEN(TEXT(A1;"μμμμ"));1;"Σ"))
Πήρα αυτό που ήθελα: “ΑΠΡΙΛΙΟΣ”  Τέλεια; Όχι τέλεια διότι υπάρχει και η τρίτη λύση:

γ) Η λύση του τελειοθηρικού
Θα γράψω μόνος μου τους μήνες, όπως εγώ θέλω να εμφανίζονται (με κεφαλαία ή μικρά, με τόνους ή χωρίς, με διαλυτικά ή όχι, ή σε γλώσσα Σουαχίλι αν θέλω) και η CHOOSE με την βοήθεια της MONTH θα αποφασίσει ποιό μήνα θα επιστρέψει.
=CHOOSE(MONTH(A1);"Ιανουάριος";"Φεβρουάριος";"Μάρτιος";"Απρίλιος";"Μάιος";"Ιούνιος";"Ιούλιος";"Αύγουστος";"Σεπτέμβριος";"Οκτώβριος";"Νοέμβριος";"Δεκέμβριος")
Πολύ ωραία κύριε τελειοθηρικέ! Μου επιτρέπετε να συμμαζέψω λίγο αυτό το “ανακόντα”. Λοιπόν, αντί για την  CHOOSE θα χρησιμοποιήσω την VLOOKUP.
=VLOOKUP(MONTH(A1);{1;"Ιανουάριος"\2;"Φεβρουάριος"\3;"Μάρτιος"\4;"Απρίλιος"\5;"Μάιος"\6;"Ιούνιος"\7;"Ιούλιος"\8;"Αύγουστος"\9;"Σεπτέμβριος"\10;"Οκτώβριος"\11;"Νοέμβριος"\12;"Δεκέμβριος"};2;FALSE)
Φυσικά η VLOOKUP χρειάζεται ένα πίνακα {….} για να αποφασίσει και το “ανακόντα”  για την ώρα μεγάλωσε πιο πολύ. Ο πίνακας όμως μπορεί να εισαχθεί σαν όνομα (Defined Name). Εισάγω λοιπόν το όνομα:
tablemonth={1;"Ιανουάριος"\2;"Φεβρουάριος"\3;"Μάρτιος"\4;"Απρίλιος"\5;"Μάιος"\6;"Ιούνιος" \7;"Ιούλιος"\8;"Αύγουστος"\9;"Σεπτέμβριος"\10;"Οκτώβριος"\11;"Νοέμβριος"\12;"Δεκέμβριος"}
και ο τύπος μου παίρνει τελικά την κομψή μορφή:
=VLOOKUP(MONTH(A1);tablemonth;2;FALSE)
Ο οποίος μου επιστρέφει ακριβώς αυτό που θέλω: “Απρίλιος”.
Τις συναρτήσεις μπορείτε να βρείτε στο excel βιβλίο:  functions_01
This entry was posted in excel, Συναρτήσεις φύλλου and tagged , , . Bookmark the permalink.