Μετάβαση στο κύριο περιεχόμενο
Office

Δημιουργία προσαρμοσμένων συναρτήσεων στο Excel

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

Αναζητάτε πληροφορίες σχετικά με τον τρόπο με τον οποίο μπορείτε να δημιουργήσετε μια προσαρμοσμένη συνάρτηση JavaScript που μπορείτε να εκτελέσετε στο Excel για Windows, το Excel για Mac ή το Excel για το Web; Εάν είστε, ανατρέξτε στο άρθρο Επισκόπηση προσαρμοσμένων συναρτήσεων του Excel.

Προσαρμοσμένες συναρτήσεις, όπως οι μακροεντολές, χρησιμοποιήστε τη γλώσσα προγραμματισμού Visual Basic for Applications (VBA) . Διαφέρουν από τις μακροεντολές με δύο σημαντικούς τρόπους. Πρώτα, χρησιμοποιούν διαδικασίες συναρτήσεων αντί για δευτερεύουσες διαδικασίες. Αυτό σημαίνει ότι ξεκινούν με μια πρόταση συνάρτησης αντί για μια δευτερεύουσα πρόταση και τελειώνουν με τη συνάρτηση end αντί για το End Sub. Δεύτερον, εκτελούν υπολογισμούς αντί να κάνουν ενέργειες. Ορισμένα είδη δηλώσεων, όπως οι προτάσεις που επιλέγουν και διαμορφώνουν περιοχές, εξαιρούνται από τις προσαρμοσμένες συναρτήσεις. Σε αυτό το άρθρο, θα μάθετε πώς να δημιουργείτε και να χρησιμοποιείτε προσαρμοσμένες συναρτήσεις. Για να δημιουργήσετε συναρτήσεις και μακροεντολές, συνεργάζεστε με την επεξεργασία της Visual Basic (VBE), η οποία ανοίγει σε ένα νέο παράθυρο ξεχωριστό από το Excel.

Ας υποθέσουμε ότι η εταιρεία σας προσφέρει μια έκπτωση ποσότητας 10 τοις εκατό για την πώληση ενός προϊόντος, με την προϋπόθεση ότι η παραγγελία είναι για περισσότερες από 100 μονάδες. Στις παρακάτω παραγράφους, θα παρουσιάσουμε μια συνάρτηση για τον υπολογισμό αυτής της έκπτωσης.

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

Παράδειγμα φόρμας παραγγελίας χωρίς προσαρμοσμένη συνάρτηση

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

  1. Πατήστε το συνδυασμό πλήκτρων ALT + F11 για να ανοίξετε την επεξεργασία της Visual Basic (σε Mac, πατήστε το πλήκτρο FN + ALT + F11) και, στη συνέχεια, κάντε κλικ στην επιλογή Εισαγωγή > λειτουργικής μονάδας. Εμφανίζεται ένα νέο παράθυρο λειτουργικής μονάδας στη δεξιά πλευρά της επεξεργασίας της Visual Basic.

  2. Αντιγράψτε και επικολλήστε τον παρακάτω κώδικα στη νέα λειτουργική μονάδα.

    Function DISCOUNT(quantity, price)
       If quantity >=100 Then
         DISCOUNT = quantity * price * 0.1
       Else
         DISCOUNT = 0
       End If
     
     DISCOUNT = Application.Round(Discount, 2)
    End Function
    

Σημείωση: Για να κάνετε τον κώδικά σας πιο ευανάγνωστο, μπορείτε να χρησιμοποιήσετε το πλήκτρο Tab για να δημιουργήσετε εσοχές σε γραμμές. Η εσοχή είναι μόνο για το όφελός σας και είναι προαιρετική, καθώς ο κώδικας θα εκτελεστεί με ή χωρίς αυτόν. Αφού πληκτρολογήσετε μια γραμμή με εσοχή, η επεξεργασία της Visual Basic υποθέτει ότι η επόμενη γραμμή θα έχει παρόμοια εσοχή. Για να μετακινηθείτε (δηλαδή, προς τα αριστερά) ένα χαρακτήρα στηλοθέτη, πατήστε το συνδυασμό πλήκτρων SHIFT + TAB.

Τώρα είστε έτοιμοι να χρησιμοποιήσετε τη νέα συνάρτηση DISCOUNT. Κλείστε την επεξεργασία της Visual Basic, επιλέξτε το κελί G7 και πληκτρολογήστε τα εξής:

= DISCOUNT (D7; E7;)

Το Excel υπολογίζει την έκπτωση 10 τοις εκατό στις μονάδες του 200 στο $47,50 ανά μονάδα και επιστρέφει το $950,00.

Στην πρώτη γραμμή του κώδικα VBA, της ΈΚΠΤΩΣΗς συνάρτησης (ποσότητα, τιμή), υποδεικνύεται ότι η συνάρτηση DISCOUNT απαιτεί δύο ορίσματα, ποσότητα και Τιμή. Όταν καλείτε τη συνάρτηση σε ένα κελί φύλλου εργασίας, πρέπει να συμπεριλάβετε αυτά τα δύο ορίσματα. Στον τύπο = DISCOUNT (D7, e7;), το D7 είναι το όρισμα ποσότητα και το E7; είναι το όρισμα Τιμή . Τώρα μπορείτε να αντιγράψετε τον τύπο ΈΚΠΤΩΣΗς στο G8: G13 για να δείτε τα αποτελέσματα που εμφανίζονται παρακάτω.

Ας εξετάσουμε τον τρόπο με τον οποίο το Excel ερμηνεύει αυτήν τη διαδικασία λειτουργίας. Όταν πατάτε το πλήκτρο ENTER, το Excel αναζητά την έκπτωση ονόματος στο τρέχον βιβλίο εργασίας και διαπιστώνει ότι πρόκειται για μια προσαρμοσμένη συνάρτηση σε μια λειτουργική μονάδα VBA. Τα ονόματα των ορισμάτων που περικλείονται σε παρενθέσεις, ποσότητα και Τιμή, είναι σύμβολα κράτησης θέσης για τις τιμές στις οποίες βασίζεται ο υπολογισμός της έκπτωσης.

Παράδειγμα φόρμας παραγγελίας με προσαρμοσμένη συνάρτηση

Η πρόταση IF στο παρακάτω μπλοκ κώδικα εξετάζει το όρισμα ποσότητα και καθορίζει εάν ο αριθμός των στοιχείων που πωλούνται είναι μεγαλύτερος ή ίσος του 100:

If quantity >= 100 Then
 DISCOUNT = quantity * price * 0.1
Else
 DISCOUNT = 0
End If

Εάν ο αριθμός των στοιχείων που πωλούνται είναι μεγαλύτερος ή ίσος του 100, η VBA εκτελεί την ακόλουθη πρόταση, η οποία πολλαπλασιάζει την τιμή ποσότητας με την τιμή τιμή και, στη συνέχεια, πολλαπλασιάζει το αποτέλεσμα με το 0,1:

Discount = quantity * price * 0.1

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

Εάν η ποσότητα είναι μικρότερη από 100, η VBA εκτελεί την ακόλουθη πρόταση:

Discount = 0

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

Discount = Application.Round(Discount, 2)

Η VBA δεν έχει συνάρτηση ROUND, αλλά το Excel το κάνει. Επομένως, για να χρησιμοποιήσετε τη συνάρτηση ROUND σε αυτήν την πρόταση, πείτε στη VBA να αναζητήσει τη μέθοδο Round (συνάρτηση) στο αντικείμενο Application (Excel). Αυτό μπορείτε να το κάνετε προσθέτοντας την εφαρμογή Word πριν από τη λέξη Round. Χρησιμοποιήστε αυτήν τη σύνταξη κάθε φορά που πρέπει να αποκτήσετε πρόσβαση σε μια συνάρτηση του Excel από μια λειτουργική μονάδα VBA.

Μια προσαρμοσμένη συνάρτηση πρέπει να ξεκινά με μια πρόταση συνάρτησης και να τελειώνει με μια πρόταση συνάρτησης end. Εκτός από το όνομα της συνάρτησης, η πρόταση συνάρτησης συνήθως καθορίζει ένα ή περισσότερα ορίσματα. Μπορείτε, ωστόσο, να δημιουργήσετε μια συνάρτηση χωρίς ορίσματα. Το Excel περιλαμβάνει πολλές ενσωματωμένες συναρτήσεις — RAND και NOW, για παράδειγμα — που δεν χρησιμοποιούν ορίσματα.

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

Ο αριθμός των λέξεων-κλειδιών VBA που μπορείτε να χρησιμοποιήσετε σε προσαρμοσμένες συναρτήσεις είναι μικρότερος από τον αριθμό που μπορείτε να χρησιμοποιήσετε στις μακροεντολές. Οι προσαρμοσμένες συναρτήσεις δεν επιτρέπεται να κάνουν οτιδήποτε άλλο εκτός από την επιστροφή μιας τιμής σε έναν τύπο σε ένα φύλλο εργασίας ή σε μια παράσταση που χρησιμοποιείται σε μια άλλη μακροεντολή ή συνάρτηση VBA. Για παράδειγμα, οι προσαρμοσμένες συναρτήσεις δεν μπορούν να αλλάξουν το μέγεθος των παραθύρων, να επεξεργαστούν έναν τύπο σε ένα κελί ή να αλλάξουν τη γραμματοσειρά, το χρώμα ή τις επιλογές μοτίβων για το κείμενο σε ένα κελί. Εάν συμπεριλάβετε έναν κώδικα "ενέργεια" αυτού του είδους σε μια διαδικασία συνάρτησης, η συνάρτηση επιστρέφει την #VALUE! #ΤΙΜΗ!.

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

Ακόμη και οι απλές μακροεντολές και οι προσαρμοσμένες συναρτήσεις μπορεί να είναι δυσανάγνωστες. Μπορείτε να τους κάνετε πιο κατανοητούς πληκτρολογώντας επεξηγηματικό κείμενο με τη μορφή σχολίων. Μπορείτε να προσθέσετε σχόλια πριν από το επεξηγηματικό κείμενο με μια απόστροφο. Για παράδειγμα, το παρακάτω παράδειγμα εμφανίζει τη συνάρτηση DISCOUNT με σχόλια. Η προσθήκη σχολίων όπως αυτές διευκολύνουν εσάς ή άλλους χρήστες να διατηρήσουν τον κώδικα VBA σας με την πάροδο του χρόνου. Εάν πρέπει να κάνετε μια αλλαγή στον κώδικα στο μέλλον, θα έχετε έναν πιο εύκολο χρόνο κατανόησης του τι κάνατε αρχικά.

Παράδειγμα συνάρτησης VBA με σχόλια

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

Ένας άλλος τρόπος για να τεκμηριώσετε τις μακροεντολές και τις προσαρμοσμένες συναρτήσεις είναι να τους εκχωρήσετε περιγραφικά ονόματα. Για παράδειγμα, αντί να ονομάσετε Ετικέτεςμακροεντολών, θα μπορούσατε να την ονομάσετε MonthLabels για να περιγράψετε πιο συγκεκριμένα το σκοπό που εξυπηρετεί η μακροεντολή. Η χρήση περιγραφικών ονομάτων για μακροεντολές και προσαρμοσμένες συναρτήσεις είναι ιδιαίτερα χρήσιμη όταν έχετε δημιουργήσει πολλές διαδικασίες, ιδιαίτερα εάν δημιουργείτε διαδικασίες που έχουν παρόμοιους αλλά όχι πανομοιότυπους σκοπούς.

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

Για να χρησιμοποιήσετε μια προσαρμοσμένη συνάρτηση, το βιβλίο εργασίας που περιέχει τη λειτουργική μονάδα στην οποία δημιουργήσατε τη συνάρτηση πρέπει να είναι ανοιχτό. Εάν αυτό το βιβλίο εργασίας δεν είναι ανοιχτό, θα λάβετε μια #NAME; σφάλμα κατά την προσπάθειά σας να χρησιμοποιήσετε τη συνάρτηση. Εάν αναφέρετε τη συνάρτηση σε διαφορετικό βιβλίο εργασίας, πρέπει να προηγείται το όνομα της συνάρτησης με το όνομα του βιβλίου εργασίας στο οποίο βρίσκεται η συνάρτηση. Για παράδειγμα, εάν δημιουργήσετε μια συνάρτηση που ονομάζεται έκπτωση σε ένα βιβλίο εργασίας που ονομάζεται Personal. xlsb και καλείτε αυτή τη συνάρτηση από ένα άλλο βιβλίο εργασίας, πρέπει να πληκτρολογήσετε = Personal. xlsb! Discount (), όχι απλώς = Discount ().

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

Παράθυρο διαλόγου "Εισαγωγή συνάρτησης"

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

  1. Αφού δημιουργήσετε τις συναρτήσεις που χρειάζεστε, κάντε κλικ στην επιλογή αρχείο > Αποθήκευση ως.

    Στο Excel 2007, κάντε κλικ στο κουμπί του Microsoft Officeκαι, στη συνέχεια, κάντε κλικ στην επιλογή Αποθήκευση ως

  2. Στο παράθυρο διαλόγου Αποθήκευση ως , ανοίξτε την αναπτυσσόμενη λίστα Αποθήκευση ως τύπου και επιλέξτε πρόσθετο του Excel. Αποθηκεύστε το βιβλίο εργασίας με ένα αναγνωρίσιμο όνομα, όπως το MyFunctions, στο φάκελο " πρόσθετα ". Το παράθυρο διαλόγου Αποθήκευση ως θα προτείνει αυτόν το φάκελο, επομένως το μόνο που χρειάζεται να κάνετε είναι να αποδεχθείτε την προεπιλεγμένη θέση.

  3. Αφού αποθηκεύσετε το βιβλίο εργασίας, κάντε κλικ στην επιλογή αρχείο > επιλογές του Excel.

    Στο Excel 2007, κάντε κλικ στο κουμπί του Microsoft Officeκαι κάντε κλικ στο στοιχείο επιλογές του Excel.

  4. Στο παράθυρο διαλόγου επιλογές του Excel , κάντε κλικ στην κατηγορία πρόσθετα .

  5. Στην αναπτυσσόμενη λίστα Διαχείριση , επιλέξτε πρόσθετα του Excel. Στη συνέχεια, κάντε κλικ στο κουμπί Μετάβαση .

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

    παράθυρο διαλόγου "πρόσθετα"

  1. Αφού δημιουργήσετε τις συναρτήσεις που χρειάζεστε, κάντε κλικ στην επιλογή αρχείο > Αποθήκευση ως.

  2. Στο παράθυρο διαλόγου Αποθήκευση ως , ανοίξτε την αναπτυσσόμενη λίστα Αποθήκευση ως τύπου και επιλέξτε πρόσθετο του Excel. Αποθηκεύστε το βιβλίο εργασίας με ένα αναγνωρίσιμο όνομα, όπως MyFunctions.

  3. Αφού αποθηκεύσετε το βιβλίο εργασίας, κάντε κλικ στην επιλογή εργαλεία > πρόσθετα του Excel.

  4. Στο παράθυρο διαλόγου πρόσθετα , επιλέξτε το κουμπί Αναζήτηση για να βρείτε το πρόσθετο, κάντε κλικ στην επιλογή Άνοιγμακαι, στη συνέχεια, επιλέξτε το πλαίσιο δίπλα στο πρόσθετο στο πλαίσιο Διαθέσιμα πρόσθετα .

Αφού ακολουθήσετε αυτά τα βήματα, οι προσαρμοσμένες συναρτήσεις σας θα είναι διαθέσιμες κάθε φορά που εκτελείτε το Excel. Εάν θέλετε να προσθέσετε στη βιβλιοθήκη συναρτήσεων, επιστρέψτε στην επεξεργασία της Visual Basic. Εάν κοιτάξετε στην Εξερεύνηση έργου της επεξεργασίας Visual Basic κάτω από μια επικεφαλίδα VBAProject, θα δείτε μια λειτουργική μονάδα που ονομάζεται μετά από το αρχείο προσθέτου. Το προσθέτου σας θα έχει την επέκταση. XLAM.

Όνομα λειτουργικής μονάδας στη VBE

Κάνοντας διπλό κλικ σε αυτή τη λειτουργική μονάδα στην Εξερεύνηση του Project, το πρόγραμμα επεξεργασίας της Visual Basic εμφανίζει τον κωδικό της συνάρτησης σας. Για να προσθέσετε μια νέα συνάρτηση, τοποθετήστε το σημείο εισαγωγής μετά την πρόταση της συνάρτησης end που τερματίζει την τελευταία συνάρτηση στο παράθυρο κώδικα και αρχίστε να πληκτρολογείτε. Μπορείτε να δημιουργήσετε όσες συναρτήσεις χρειάζεστε με αυτόν τον τρόπο και θα είναι πάντα διαθέσιμες στην κατηγορία καθορισμένο από το χρήστη στο παράθυρο διαλόγου Εισαγωγή συνάρτησης .

Αυτό το περιεχόμενο είχε αρχικά συνταχθεί από τον Mark Dodge και τον Craig Στίνσον ως μέρος του βιβλίου του Microsoft Office Excel 2007 Inside Out. Έκτοτε έχει ενημερωθεί ώστε να ισχύει και για νεότερες εκδόσεις του Excel.

Χρειάζεστε περισσότερη βοήθεια;

Μπορείτε ανά πάσα στιγμή να ρωτήσετε έναν ειδικό στην Κοινότητα τεχνικής υποστήριξης του Excel, να λάβετε υποστήριξη από την κοινότητα Answers ή να προτείνετε μια νέα δυνατότητα ή βελτίωση στο Excel User Voice.

Σημείωση:  Αυτή η σελίδα έχει μεταφραστεί μέσω αυτοματοποιημένης διαδικασίας και ενδεχομένως να περιέχει γραμματικά λάθη και ανακρίβειες. Ο σκοπός μας είναι αυτό το περιεχόμενο να σας φανεί χρήσιμο. Μπορείτε να μας πείτε εάν σας βοήθησαν αυτές οι πληροφορίες; Εδώ θα βρείτε το άρθρο στα Αγγλικά για να το συμβουλεύεστε.

Αναπτύξτε τις δεξιότητές σας στο Office
Εξερευνήστε το περιεχόμενο της εκπαίδευσης
Αποκτήστε πρώτοι τις νέες δυνατότητες
Γίνετε μέλος του Office Insider

Σας βοήθησαν αυτές οι πληροφορίες;

Σας ευχαριστούμε για τα σχόλιά σας!

Σας ευχαριστούμε για τα σχόλιά σας! Φαίνεται ότι μπορεί να είναι χρήσιμο να συνδεθείτε με έναν από τους συνεργάτες υποστήριξης του Office.

×