![]() |
Μετατροπή ελληνικών γραμμάτων σε αντίστοιχους αριθμούς Καλησπέρα σε όλους, αυτό που θέλω να κάνω είναι να μπορώ να μετατρέψω τα γράμματα μιας λέξης σε αριθμούς σύμφωνα με την αντιστοιχία (Α=1,Β=2,Γ=3,Δ=4,Ε=5, F=6, Ζ=7 ,Η=8 Θ=9 Ι=10 ,Κ=20 Λ=30 Μ=40 Ν=50 Ξ=60 Ο=70 Π=80 Q=90 Ρ=100 , Σ=200 Τ=300 Υ=400 Φ=500 Χ=600 Ψ=700 Ω=800 Π*=900) και να τα αθροίσω στη συνέχεια. Με τα λίγα που ξέρω χρησιμοποιώ απλές συναρτήσεις κειμένου ώστε να απομονώσω τα γράμματα. Δεν έχω βρει τρόπο να κάνω την μετατροπή. Ευχαριστώ για το χρόνο και τις γνώσεις σας Δημήτρης |
1 Συνημμένο(α) Δημήτρη δες μια πρόταση στο συνημμένο. Στις στήλες Α και Β ορίζεις τα γράμματα και την αξία τους, και μια συνάρτηση πίνακα (array formula) στην στήλη C κάνει την δουλειά. Καταχωρείς στο κίτρινο κελί F3 την λέξη/πρόταση που θέλεις. Πες μας αν έγινε ή αν σε βοήθησε να βρεις άλλη λύση. Θανάσης. |
1 Συνημμένο(α) Καλημέρα Στην εναλλακτική λύση που ακολουθεί έχουν παραληφθεί οι αριθμοί 6, 90, 900 επειδή αντιστοιχούν σε σύμβολα που δεν χρησιμοποιούνται στο σημερινό αλφάβητο (με ποιο γνωστό το Δίγαμμα (F) μετ' έπειτα Στίγμα (S) μετ' έπειτα ΣΤ' = 6, Κόππα = 90 και Δίσιγμα = 900...) Οι τύποι που χρησιμοποιήθηκαν είναι MID και VLOOKUP χωρίς τύπο πίνακα Τα γράμματα Σ, σ, ς έχουν την ίδια αξία = 200 Τα κεφαλαία ή πεζά δεν λαμβάνονται υπ' όψιν αλλά λαμβάνετε υπ' όψιν ο τονισμός των φωνηέντων Καλή συνέχεια! |
Μετατροπή 1 Συνημμένο(α) Ευχαριστώ πολύ για τις απαντήσεις. Συγκεκριμένα για τη δική σου που την βρήκα πιο κοντά σε αυτό που ήθελα, χρειαζόμουν κάποιες αλλαγές ειδικά για το σκοπό του να φτιάχνω λίστες με ισοδύναμα και όχι μόνο για μια λέξη ή φράση. Παράλειψη μου που δεν το είπα. Πάντως πάνω στη δική σου ιδέα έκανα μια αλλαγή και θα ήθελα αν δεν σε κουράζω να το δεις. Μήπως έχω κάνει κάποιο λάθος στην μεταφορά των τύπων και προκύψει σφάλμα μετά. Δημήτρης |
Καλημέρα Η μεταφορά και μετατροπή έχει γίνει σωστά καθώς και η αντικατάσταση Row() με Column() Ακόμα βλέπω πρέπει να διορθωθεί και η τελική Sum() που είχα κάνει λάθος εκ παραδρομής και εγώ (προσθέτει λιγότερα κελιά απ' όσα πρέπει ) Βρες ένα τρόπο να αποφύγεις τις συγχωνεύσεις κελιών που έχεις Όλα μια χαρά Καλή συνέχεια! |
1 Συνημμένο(α) Καλημέρα στην παρέα Στο αρχείο που επισυνάπτω έχω προσθέσει ένα φύλλο εργασίας στο αρχείο που ανέβασε ο Θανάσης, όπου παρουσιάζεται μια άλλη μέθοδος αποτίμησης του αθροίσματος της αξίας των ελληνικών χαρακτήρων. Η αποτίμηση γίνεται με τον τύπο: =SUMPRODUCT(($B$2:$B$30)*(LEN(E2)-LEN(SUBSTITUTE(UPPER(E2);$A$2:$A$30;"")))). Στους υπολογισμούς περιλαμβάνονται κεφαλαία, πεζά, άτονα, τονισμένα και με διαλυτικά. Φιλικά/Γιώργος |
Μετατροπή και νέα ζητούμενα (ανοίξαμε πληγές...) 1 Συνημμένο(α) Σας ευχαριστώ πολύ, πραγματικά όλες οι περιπτώσεις που στείλατε είναι πάρα πολύ καλές. Ειδικά η τελευταία που άνοιξα και μελέτησα καλύτερα νομίζω ότι θα με βολέψει σε κάτι που δεν είχα σκοπό να κάνω, αλλά τώρα που το είδα είναι πολύ χρήσιμο. Αναφέρομαι στο ότι δεν χρειάζεται πίνακα χαρακτήρων στην ανάλυση και μπορεί να μετατρέψει μια φράση όσο μεγάλη και αν είναι Πιστεύω να μην κατάλαβα λάθος. Θα ήθελα μόνο να ξέρω αν μπορώ να προσθέσω επιπλέον χαρακτήρες στον πίνακα-ευρετήριο. (απλά διευρύνοντας τη λίστα στον τύπο;) Επίσης μάλλον θα χρειαστεί να προσθέτω Χ αριθμό λέξεων μιας φράσης (πχ οι 3 πρώτες λέξεις). Πως θα μπορώ να δείξω στον τύπο ότι μετά το 3ο κενό δεν θα προσθέτει πια άλλους χαρακτήρες. Ακόμα θα χρειαστεί να προσθέτω την 1η πρόταση μιας μεγάλης παραγράφου με περισσότερες προτάσεις. Εκεί θα πρέπει να μπορεί να εντοπίσει την τελεία. Ξέρω ότι από ένα πολύ απλό ερώτημα που έθεσα, ζητώ πολλά, αλλά έχω ενθουσιαστεί με τις προοπτικές που μου δίνουν οι λύσεις που προτείνατε και είναι όλες πολύ καλές. Προσπαθώ να βρω έναν αυτοματοποιημένο τρόπο ώστε ένα κείμενο που βρίσκω στο internet ή σε ένα έγγραφο του word να μπορώ να το επικολλήσω εύκολα στο κελί του excel που κάνει τις μετατροπές. Αν έχετε να προτείνετε κάτι θα με βοηθούσατε πολύ. Σκέφτομαι μια μακροεντολή που να εντοπίζει το πρώτο διαθέσιμο κελί της λίστας και με ένα πλήκτρο ή κουμπί να έκανε την επικόλληση. Δημήτρης |
Καλησπέρα Σχετικά με τα ερωτήματα: 1) Η μέθοδος μπορεί να εφαρμοστεί σε οποιοδήποτε μέγεθος κειμένου που μπορεί να αποθηκευτεί σε ένα κελί (υπάρχει όριο). 2) Θα μπορούσαν να προστεθούν κεφαλαίοι χαρακτήρες, εφόσον δεν καλύπτονται από την λίστα. Για να βρούμε τους μη καλυπτόμενους από τη λίστα χαρακτήρες θα πρέπει να λάβουμε υπόψη μας πως η συνάρτηση UPPER μετατρέπει τους πεζούς χαρακτήρες (ιδίως τα φωνήεντα) σε κεφαλαίους και να προσθέσουμε μόνο αυτούς που δεν καλύπτονται. Αν τα πεζά, κεφαλαία, άτονα, τονισμένα κλπ έχουν διαφορετική αξία θα πρέπει να γίνει νέα λίστα με όλους τους διαφορετικούς χαρακτήρες και να αφαιρεθεί η συνάρτηση UPPER από τον τύπο. 3, 4) Κατά τη γνώμη μου (αν τα τμήματα δεν είναι σε διαφορετικά κελιά) θα μπορούσες να ξεχωρίσεις το πρώτο τμήμα του κειμένου από το υπόλοιπο προσθέτοντας ανάμεσα ένα απίθανο συνδυασμό χαρακτήρων, και ακολούθως να απομονώσεις το πρώτο μέρος και να εφαρμόσεις εκεί τον τύπο. Για παράδειγμα ο τύπος: =LEFT(E10;FIND("ώώ";E10)-1) βρίσκει στο κελί E10 το απίθανο κείμενο ώώ και επιστρέφει το κείμενο που είναι πριν απ’ αυτό. 5) Αν χρησιμοποιηθεί κώδικας, κατά τη γνώμη μου, θα έπρεπε να αντιμετωπίσει συνολικά το θέμα. Φυσικά τα παραπάνω θα πρέπει να τα ελέγξεις σε πραγματικές συνθήκες. Φιλικά/Γιώργος |
Μικρή διόρθωση 1 Συνημμένο(α) Καλημέρα σε όλους, με την πολύτιμη βοήθειά σας έχω φτάσει σε πολύ καλό σημείο. Το πρόβλημά μου προς το παρόν είναι το λάθος #ΤΙΜΗ! σε 2 στήλες δεξιά. Πρόκειται για μια ιδέα πολύ χρήσιμη σύμφωνα με την οποία όταν υπάρχει μια απίθανη ακολουθία χαρακτήρων να γίνεται αποτίμηση μέχρι εκεί. Διάλεξα σαν ακολουθία το "**" (2 αστερίσκους). Αν έχετε κάποια λύση σχετικά με το λάθος αυτό βοηθήστε με. Πιστεύω ότι θα καταλάβετε τη λειτουργία του προγράμματος, άλλωστε στις δικές σας ιδέες και λύσεις είναι βασισμένο. Οι στήλες με γκρι χρώμα είναι προς απόκρυψη Επίσης λείπει η καρτέλα "Προς ταξινόμιση" η οποία ταξινομεί τις λίστες, Την αφαίρεσα για να μην υπερβώ το μέγεθος του αρχείου. Ευχαριστώ, Δημήτρης |
Καλησπέρα Μια ερώτηση θα ήθελα να κάνω σχετικά με το όλο θέμα βλέποντας το τελευταίο αρχείο σου και το ότι κάνεις και καταμετρήσεις λέξεων, χαρακτήρων, με ή χωρίς διαστήματα κλπ Μήπως το όλο θέμα θα έπρεπε να αναλυθεί στο WORD με τον μετρητή του (και όχι μόνο) και όχι στην EXCEL ? |
Καλησπέρα Θα πρέπει να αντικατασταθεί ο τύπος: =LEFT(A3;FIND("**";A3)-1) με τον ακόλουθο: =IF(ISNUMBER(FIND("**";A3));LEFT(A3;FIND("**";A3)-1);A3), για να μη προκύπτει λάθος όταν η συμβολοσειρά «**» δεν υπάρχει. Αν και ο τύπος λειτουργεί, καλό είναι να μη χρησιμοποιήσεις τον αστερίσκο. Ο αστερίσκος (*) το ερωτηματικό (?) και η περισπωμένη (~), αποτελούν ειδικούς χαρακτήρες (μπαλαντέρ) και, για να μη δημιουργηθούν προβλήματα, θα πρέπει να χρησιμοποιούνται όπως προβλέπεται στη βοήθεια του excel. Φιλικά/Γιώργος |
Καλησπέρα Δημήτρη, παρατήρησα, στο τελευταίο αρχείο σου, ότι πρόσθεσες αρκετά ελληνικά γράμματα. Διαπίστωσα όμως ότι λείπουν τα κεφαλαία τονούμενα. Στο κελί A36 και Α37 υπάρχει ο ίδιος χαρακτήρας, με αποτέλεσμα να αποτιμάται δύο φορές και ο τύπος να δίνει λάθος αποτελέσματα Γενικά στον πίνακα θα πρέπει να μπουν όσοι χαρακτήρες μετατρέπονται με τη συνάρτηση UPPER σε χαρακτήρα που δεν υπάρχει στον πίνακα. Φιλικά/Γιώργος |
Διορθώσεις Καλησπέρα Γιώργο, σχετικά με τα λάθη στον πίνακα για να είμαι σίγουρος ότι θα κάνω τις σωστές διορθώσεις μπορείς να μου πεις ακριβώς τι πρέπει να αλλάξω; Όσο για τους χαρακτήρες ** να βάλω κάτι άλλο. Ίσως ]] που να υποδηλώνει και το τέλος της φράσης προς αποτίμηση. |
Καλησπέρα Δημήτρη, οι χαρακτήρες που πρέπει να βάλεις εξαρτώνται από τους χαρακτήρες που μπορεί να περιέχουν τα κείμενα που θα αποτιμήσεις. Έτσι δεν μπορώ να σου πω ποιους συγκεκριμένα θα βάλεις. Για να τους προσδιορίσεις μπορείς να εργαστείς ως εξής: 1) Σε μια στήλη βάλε όλα τα γράμματα πεζά και κεφαλαία με όλους τους συνδυασμούς τόνων, πνευμάτων, διαλυτικών, υποδιαστολών, που μπορεί να υπάρχουν στα κείμενα. 2) Στη διπλανή στήλη με τη συνάρτηση UPPER προσπάθησε να τα κάνεις κεφαλαία. 3) Από τη δεύτερη στήλη διάλεξε όλες τις διαφορετικές τιμές, χωρίς διπλότυπες. Έτσι θα καλύψεις όλους τους χαρακτήρες που θα μπορούσε να έχει ένα κείμενο μετά την επεξεργασία του με τη συνάρτηση UPPER Φιλικά/Γιώργος |
Άλλη μια βοήθεια παρακαλώ 1 Συνημμένο(α) Καλησπέρα σε όλη την παρέα, κάθε μέρα βασιζόμενος στις ιδέες που μου δώσατε αλλά και τις λύσεις σας προχωράω το πρόγραμμα και ένα βήμα πιο κάτω. Και αυτή τη φορά κόλλησα σε κάτι που είμαι σίγουρος ότι θα με βοηθήσετε. Στο αρχείο που στέλνω, θέλω να διορθώσω την κίτρινη περιοχή (3 στήλες). Συγκεκριμένα θέλω από το σύνολο της φράσης που βρίσκεται στη στήλη Α ή με την trim στη στήλη Ι να μπορώ σύμφωνα με το περιεχόμενο της στήλης J να εμφανίζω τις αντίστοιχες J λέξεις. πχ αν το J3 είναι 17 να εμφανίζονται στο L3 οι 17 πρώτες λέξεις του I3. Το κείμενο που θα εισάγω στην αρχική στήλη Α θα είναι ή σύγχρονο ελληνικό ή αρχαίο ελληνικό. Υπάρχει τρόπος να αφαιρείται αυτόματα κάθε άλλος χαρακτήρας που τυχόν υπάρχει; ($, %, αριθμοί, +, / κλπ); Ευχαριστώ!!! |
1 Συνημμένο(α) Καλησπέρα Στο αρχείο που επισυνάπτω, έχω προσθέσει τις ακόλουθες συναρτήσεις χρήστη (συναρτήσεις που δημιουργήθηκαν με VBA): 1) Την EvaluateText(strCell As String, ValueRange As Range) As Variant, που επιστρέφει την αξία του κειμένου strCell. 2) Την LeftNWords(strCell As String, Optional N As Long = 0) As Variant, η οποία επιστρέφει τις N πρώτες λέξεις του κειμένου strCell. 3) Την RemoveCharacters(strCell As String, CharsRemove As Range) As Variant, η οποία απομακρύνει τους ανεπιθύμητους χαρακτήρες. 4) Την SumDigits(strCell As String, Optional OneDigit As Boolean = False) As Variant, η οποία αθροίζει τα ψηφία που υπάρχουν στο κείμενο strCell. Επίσης πρόσθεσα στον πίνακα τα κεφαλαία τονούμενα, που λείπουν. Όλες οι συναρτήσεις χρήστη έχουν προστεθεί στη λειτουργική μονάδα «Functions». Στο φύλλο «VBA» του βιβλίου γίνεται εφαρμογή των παραπάνω συναρτήσεων και δίνονται κάποιες πληροφορίες για τη χρήση τους. Δημήτρη σου εύχομαι καλή συνέχεια και περιμένω το ανέβασμα στο φόρουμ της ολοκληρωμένης εφαρμογής. Προσθήκη Για τον περιορισμό των γραμμών, στον πίνακα με την αξία των χαρακτήρων, δεν περιλαμβάνονται τα πεζά τα οποία μετατρεπόμενα σε κεφαλαία υπάρχουν στον πίνακα. Αυτό επιβάλλει, πριν από την αποτίμηση ενός κειμένου, τη μετατροπή του σε κεφαλαία. Επειδή η μετατροπή του κειμένου στο περιβάλλον της VBA με τις συναρτήσεις UPPER και UCase παρουσίασε προβλήματα τις αφαίρεσα από τον κώδικα. Συνεπώς η μετατροπή θα γίνεται στο περιβάλλον του excel και η σχετική συνάρτηση θα εφαρμόζεται ως εξής:=EvaluateText(UPPER(A2);ValueChars) Φιλικά/Γιώργος |
Ευχαριστώ πολύ, το αποτέλεσμα είναι απλό και εντυπωσιακό. Δυστυχώς δεν φτάνουν οι γνώσεις μου για να καταλάβω ακριβώς τον τρόπο που το σχεδίασες. πχ θα ήθελα να ξέρω πως μπορώ να δω ή να επεξεργαστώ την περιοχή RemoveChars. Επίσης πως μπορώ να δω την λειτουργική μονάδα Functions που έχεις φτιάξει; Ελπίζω να ρωτάω σωστά. Δημήτρης |
Καλησπέρα Σχετικά με τα ερωτήματα: 1) Ονόματα περιοχών (excel 2003) Στο μενού «Εισαγωγή» κλικ στην επιλογή «Όνομα» και στο «Ορισμός …» Στο παράθυρο «Ορισμός ονόματος» βλέπουμε τα ονόματα που έχουν οριστεί. Κάνουμε κλικ στο όνομα που θέλουμε και στη συνέχεια στο πλαίσιο «Αναφορά σε:» Στο φύλλο εργασίας η αντίστοιχη περιοχή περιβάλλεται με διακεκομμένη γραμμή. Μπορούμε να αλλάξουμε την περιοχή προσαρμόζοντας την τιμή του πλαισίου «Αναφορά σε:». 2) Εμφάνιση κώδικα Με Alt+F11 μεταβαίνουμε στο περιβάλλον του κώδικα. Στο αριστερό παράθυρο φαίνονται τα στοιχεία του έργου. Κάνουμε κλικ στα + για να εμφανιστούν όλα τα στοιχεία του έργου. Κάτω από το φάκελο «Modules» βρίσκεται η λειτουργική μονάδα «Functions». Με διπλό κλικ στη λειτουργική μονάδα «Functions» στο δεξιό παράθυρο θα εμφανιστεί ο κώδικας και οι σχετικές συναρτήσεις. Για να μη παίρνουμε λάθος αποτελέσματα, επισημαίνω και πάλι ότι θα πρέπει στο φύλλο του πίνακα να διαγραφεί η γραμμή 37 (έχει ίδιο γράμμα με τη γραμμή 36). Φιλικά/Γιώργος |
| Η ώρα είναι 20:51. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.