Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   Δημιουργία συναρτήσης μετατροπής συγκεκριμένων κειμενων σε αριθμό. (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/5627-dimioyrgia-synartisis-metatropis-sygkekrimenon-keimenon-se-arithmo.html)

Γεωργιος Πρ. 30-08-20 15:16

Δημιουργία συναρτήσης μετατροπής συγκεκριμένων κειμενων σε αριθμό.
 
1 Συνημμένο(α)
Καλησπέρα και πάλι. Αυτό είναι το δεύτερο μου μήνυμα στο φόρουμ.ο λόγος που αναρτώ...δεν καταλαβαίνω τι κάνω λάθος στο vba... ή μπορεί να εχω σχεδιάσει λαθος την συνάρτηση......Άρα την συμβουλή σας και τα φώτα σας. Στο vba ειμαι αρκετά "νέος "...με το ζόρι ένα μήνα την μαθαίνω..οπότε οποιαδήποτε συμβουλή στην δομή ,σύνταξη, τρόπο σχεδίασης θα είναι πολύτιμη. Παρακάτω επισυνάπτω αρχειο με το κώδικα vba . Ευχαριστώ πολύ εκ των προτέρων για τον χρόνο σας.

Γεωργιος Πρ. 30-08-20 15:21

Ξέχασα να αναφέρω...στην πρώτη σύγκριση μου δούλεψε μια χαρά...στην μετέπειτα..όχι. δλδ στο επόμενο κελί ενω η τιμή είναι ίδια μου επιστρέφει 1...δλδ ότι τα κείμενα ειναι ανόμοια...:confused1::cry4:

Tasos 31-08-20 11:08

Καλημέρα Γιώργο!

Πες μας σε παρακαλώ σε ποιο προγραμματιστικό περιβάλλον αναφέρεσαι;

Ευχαριστώ.

Με εκτίμηση

Τάσος

Γεωργιος Πρ. 01-09-20 23:02

Περιβάλλον excel 2007 έκδοση

Tasos 02-09-20 10:06

Καλημέρα!
Η συνάρτηση RankOf(strText As String) επιστρέφει το θέση στον (Array) που θα βρεθεί το όρισμα strText

Κώδικας:

Option Explicit

'Εδώ συμπληρώνεις με την ταξινόμηση που θέλεις
'τα στοιχεία προς σύγκριση διαχωρισμένα με ερωτηματικό.
Private Const AllStrings = "κείμενο1;κείμενο2;κείμενο3;κείμενο4;κείμενο5"

Function RankOf(strText As String) As Integer
    Dim i As Integer
    Dim MyStrings() As String
    MyStrings = Split(AllStrings, ";")
    For i = 0 To UBound(MyStrings)
        If MyStrings(i) = strText Then
            RankOf = i + 1
            Exit Function
        End If
    Next
    RankOf = 999
End Function

Θα μπορούσες αντί για συνάρτηση VBA να χρησιμοποιήσεις ένα φύλλο εργασίας για να επιτύχεις το στόχο σου.

Για δοκιμή:

Σε ένα νέο φύλλο βάλε τα κείμενα σου (κείμενο1, κείενο2 κλπ.) στη στήλη Α με την ταξινόμηση που θέλεις ξεκινώντας από το κελί Α1.

Κατόπιν στο κελί Β1 πληκτρολόγησε το ζητούμενο.

Η παρακάτω συνάρτηση που θα σου επιστρέψει τη θέση του ζητούμενου στη στήλη Α1:

=IFERROR(MATCH(B1;A:A;0);999)

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

Τάσος

Γεωργιος Πρ. 18-09-20 12:05

Τάσο Ευχαριστώ πάρα πολύ. Δούλεψε άψογα. :thanks::respect:Συγνωμη για την καθυστέρηση αλλα φτιάχνω ενα προγραμμα στο excel αρκετά εκτεταμένο...και με έχει "ρουφήξει"...


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

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


Search Engine Optimization by vBSEO 3.3.2