Απαραίτητες διευκρινίσεις για τους διαχωριστές ορισμάτων (Separators)

separatorsList separator
Για να διαχωρίσουμε τα ορίσματα μιας συνάρτησης φύλλου χρησιμοποιούμε το ελληνικό ερωτηματικό (;). Έτσι γράφουμε:

=SUM(A1:A7;B1:B7)
=LARGE(A1:A9;3)
=IF(A1>0;"θετικός"; "αρνητικός")

Αυτή η χρήση του ελληνικού ερωτηματικού (;) είναι μία τοπική ρύθμιση που χρησιμοποιούμε στην Ελλάδα (και όχι μόνο). Η βασική έκδοση του excel για τις ΗΠΑ, έχει για διαχωριστή ορισμάτων των συναρτήσεων (list separator) το κόμμα(,) Επειδή το κόμμα χρησιμοποιείτε στην Ελλάδα για διαχωρισμό του δεκαδικού μέρους των αριθμών, δεν μπορεί να ταυτόχρονα να χρησιμοποιηθεί για να διαχωρίζει ορίσματα. Έτσι γράφουμε:

=ROUND(7,586;2)

για να στρογγυλοποιήσουμε τον αριθμό 7,586 με 2 δεκαδικά ψηφία χωρίς να δημιουργείτε σύγχυση. Αντίστοιχα ένας χρήστης στις ΗΠΑ θα γράψει:

=ROUND(7.586,2)

Σημειώστε ότι δεν υπάρχει απολύτως κανένα πρόβλημα συμβατότητας. Ένα βιβλίο με συναρτήσεις. φτιαγμένο στην Ελλάδα, μπορεί να ανοιχτεί οπουδήποτε στον κόσμο και οι συναρτήσεις του θα δίνουν τα ίδια αποτελέσματα. Το ελληνικό ερωτηματικό (;) θα αλλάξει αυτόματα στην τοπική ρύθμιση για το διαχωριστικό. Το list separator καθορίζεται από τη χώρα και τη γλωσσική υποστήριξη που έχετε επιλέξει. Μπορείτε να το αλλάξετε από τα settings του υπολογιστή σας, αλλά δεν σας συμβουλεύω να το κάνετε· ίσως και άλλα προγράμματα να εξαρτώνται από αυτό.

Column separator / Row separator
Για τις συναρτήσεις όμως, χρειαζόμαστε δύο ακόμα διαχωριστικά. Όταν σε μία συνάρτηση χρησιμοποιούμε έναν σταθερό πίνακα , πίνακα γραμμή ή πίνακα στήλη ή ορθογώνιο πίνακα, χρειαζόμαστε ένα διαχωριστικό για στοιχεία που βρίσκονται σε γραμμή (και άρα σε διαφορετικές στήλες, column separator) και ένα διαχωριστικό για στοιχεία που βρίσκονται σε στήλη (και άρα σε διαφορετικές γραμμές, row separator).
Η παρακάτω vlookup συνάρτηση:

=VLOOKUP(A1;{1;100\2;200\3;300\4;400\5;500\6;600\7;700};2;FALSE)

χρησιμοποιεί για table_array ένα σταθερό πίνακα:

{1;100\2;200\3;300\4;400\5;500\6;600\7;700}

Ο πίνακας αυτός στο φύλλο θα ήταν αναπτυγμένος σε 2 στήλες και 7 γραμμές:

separators01
Παρατηρήστε ότι για να δείξουμε την αλλαγή στήλης χρησιμοποιήσαμε για διαχωριστή (column separator) το ελληνικό ερωτηματικό (;) και για να δείξουμε την αλλαγή γραμμής (row separator) την ανάστροφη κάθετο -backslash (\)
Με παρόμοια λογική, η παρακάτω Ctrl+Shift+Enter συνάρτηση επιστρέφει τις 3 μεγαλύτερες τιμές της περιοχής Α1:Α100 αν εισαχθεί σε 3 συνεχόμενα κελιά μιας γραμμής (άρα, διαφορετικές στήλες και κάνουμε χρήση του column separator)

=LARGE(A1:A100;{1;2;3})

και η Ctrl+Shift+Enter συνάρτηση :

=LARGE(A1:A7;{1\2\3})

επιστρέφει τις 3 μεγαλύτερες τιμές της περιοχής Α1:Α100 σε 3 συνεχόμενα κελιά μιας στήλης (άρα, διαφορετικές γραμμές και κάνουμε χρήση του row separator).
Οι διαχωριστές αυτοί είναι τοπικοί αλλά δυστυχώς όχι σταθεροί. Εσείς στον υπολογιστή σας μπορεί να έχετε τους δύο αυτούς διαχωριστές αντίστροφα. Παρατηρήστε τον παρακάτω πίνακα:

Πίνακας

Πίνακας Separators

Σε όλες τις παλαιότερες εκδόσεις του excel η ελληνική έκδοση ακολουθούσε την ίδια λογική με την VBA, ώστε ο column να είναι ίδιος με τον list. Αυτό σε νεώτερες εκδόσεις έχει αλλάξει και οι διαχωριστές είναι όπως δείχνει η τελευταία σειρά του πίνακα. Στην περίπτωση αυτή οι τρεις παραπάνω συναρτήσεις πρέπει αντίστοιχα να γραφούν:

=VLOOKUP(A1;{1\100;2\200;3\300;4\400;5\500;6\600;7\700};2;FALSE) 
=LARGE(A1:A100;{1\2\3})
=LARGE(A1:A7;{1;2;3})

Πως θα δω ποιους διαχωριστές έχω;
Για να δείτε ποιους διαχωριστές έχετε εσείς στον υπολογιστή σας, σε ένα καθαρό φύλλο του excel και σε ένα κελί έξω από την περιοχή Α1:Β5, ας πούμε το Ε7, γράψτε =A1:B5. Επιλέξτε το κελί Ε7 και πατήστε F2 και μετά F9. Αν στη γραμμή των τύπων βλέπετε:

={O;O\O;O\O;O\O;O\O;O}

τότε έχετε τους διαχωριστές της δεύτερης γραμμής του πίνακα.
Αν δείτε:

={O\O;O\O;O\O;O\O;O\O}

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

Sub Μακροεντολή1()
Range("E7").Select
ActiveCell.FormulaR1C1 = "={0,0;0,0;0,0;0,0;0,0}"
End Sub

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

Sub mySeparator()
MsgBox "My Separator" + vbLf + _
"List " & Application.International(xlListSeparator) + vbLf + _
"Row " & Application.International(xlRowSeparator) + vbLf + _
"Column " & Application.International(xlColumnSeparator)
End Sub

Για ελληνικό περιβάλλον θα δείτε ένα μήνυμα σαν αυτό:

separators03a
ή σαν αυτό:

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

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

Στα αγγλόφωνα βιβλία και ιστοσελίδες γίνεται κατά κανόνα χρήση των διαχωριστών της πρώτης γραμμής του παραπάνω πίνακα: list και column το κόμμα (,) row το ελληνικό ερωτηματικό (;)

Στην ελληνική βιβλιογραφία, τουλάχιστον έως τώρα, η περιγραφή των συναρτήσεων γίνεται με τους διαχωριστές της δεύτερης γραμμής του πίνακα: list και column το ελληνικό ερωτηματικό (; ) row η ανάστροφη κάθετος (\)

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

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

John Walkenbach, Excel 2010 Formulas, σελίδα 373

John Walkenbach, Excel 2010 Formulas, σελίδα 373

John Walkenbach, Τύποι και Συναρτήσεις του Ελληνικού Excel 2010, μετάφραση Χρ. Κουτρούμπα

John Walkenbach, Τύποι και Συναρτήσεις του Ελληνικού Excel 2010, μετάφραση Χρυσούλα Κουτρούμπα

Αντίθετα η Microsoft Ελλάδος είναι πολύ απρόσεκτη στην μεταφορά του επίσημου συστήματος βοήθειας για το excel στα ελληνικά. Αν κάποιος νέος χρήστης προσπαθήσει να εφαρμόσει τις συμβουλές που βλέπετε στην παρακάτω εικόνα, μάλλον θα απελπιστεί. (Η εικόνα είναι παρμένη από εδώ)

Microsoft

Από τη βοήθεια της Microsoft για το Ελληνικό Excel

This entry was posted in excel, Μακροεντολές, Συναρτήσεις φύλλου, VBA and tagged , , , , , , , , , . Bookmark the permalink.

4 Responses to Απαραίτητες διευκρινίσεις για τους διαχωριστές ορισμάτων (Separators)

  1. Ο/Η Μαρία λέει:

    Ενθουσιάστηκα με την δουλειά σας και μπήκα στον πειρασμό να σας ρωτήσω για κάτι που φαίνεται απλό αλλά παραμένει άλυτο για μένα.
    π.χ στο κελι α3 έχω [ =if (α1>α2;»1″)]
    οταν κανω copy το α3 στο b3 τοτε εχω [ =if (b1>b2;»1″)]
    Η ερώτηση μου είναι: πως μπορώ μετα απο το copy να εχω [ =if (b1>α2;»1″)]
    δηλ. να μεταβάλετε το α1 και το α2 να παραμένει ίδιο.
    Ευχαριστώ για τον χρόνο σας.

    .

  2. Ο/Η vioannis λέει:

    Μαρία, χρησιμοποίησε απόλυτες αναφορές γράψε δηλαδή την αρχική συνάρτηση έτσι:

        =IF(A1>$A$2;"1")   

    Δες εδώ:
    http://office.microsoft.com/el-gr/excel-help/HP005198323.aspx
    τα θέματα για σχετικές και απόλυτες αναφορές

  3. Ο/Η apostolos orfanidis λέει:

    Καλημερα αγαπητε φιλε Γιαννη. θα ηθελα να σε ευχαριστησω για αλλη μια φορα για την βοηθεια που εχεις προσφερει .Ο λογος που σου γραφω ειναι για να σε ρωτησω εαν μπορει να υπαρξει μια λύση αποτελεσματος οταν δεν γνωριζεις απο πριν τους διαχωριστες ορισματων που εχει ενας απομακρυσμενος υπολογιστης .
    Πιο απλα στην ερωτηση που σου κανω εαν εγω χρησιμοποιω τους διαχωριστες στον πινακα σου
    την τριτη επιλογή ( ελλαδα νεο ) και οι υπολοιποι απομακρυσμενοι υπολογιστες τις αλλες 2 εκδοχες, μπορει το φυλλο που θα στειλω να βγαζει αποτελεσμα ? και εαν οχι θα μπορουσε να φτιαχτει απο μερους μου παρολο που εχω την τριτη επιλογη να γραψω δυναμικα πινακες και συναρτηςεις με τις υπολοιπες 2 εκδοχες και αναλογα με τον τροπο που ο καθε υπολογιστης χρησιμοποιει τους seperators με μια συναρτηση ισως την if να του δινει καποιο αποτελεσμα ?
    Γιαννη που θα μπορουσα να σου στειλω ενα email ?
    ευχαριστω πολυ και παλι , καλο π.σ.κ

  4. Ο/Η vioannis λέει:

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

Τα σχόλια είναι απενεργοποιημένα.