![]() |
Συνάρτηση inWords Αγαπητοί φίλοι, είδα το αρχείο που ανεβάσετε στα Χρήσιμα αρχεία Μετατροπή αριθμού σε κείμενο ολογράφως. Αφού πρώτα από όλα σας πω Μπράβο πολύ καλή δουλειά, θα ήθελα να πω πως νομίζω ότι υπάρχει ένα πρόβλημα με τους αριθμούς όταν το ακέραιο μέρος είναι μηδέν. :redface: Το =inwords(0,12) ή =inwords(0,12;TRUE) δουλεύει σωστά και μας δίνει "Δώδεκα λεπτά". αλλά το =inwords(0,12;FALSE) δίνει "Δώδεκα" αντί "Μηδέν κόμα Δώδεκα" ή "Δώδεκα εκατοστά". Για δείτο το μήπως μπορεί να διορθωθεί. :rolleyes: Ευχαριστώ. Θανάσης |
Αγαπητέ Θανάση, καλημέρα! Αν στο δεύτερο όρισμα της συνάρτησης δώσουμε μηδενική τιμή (ή FALSE), μπορουμε να προσθέσουμε τη λέξη/φράση που θέλουμε τροποποιώντας την ίδια τη συνάρτηση ως εξής: Κώδικας: =IF(INT(A1)=A1;inwords(A1;0);inwords(A1;0)&" "&IF(MOD(A1;1)<=0,01;"εκατοστό";"εκατοστά")) |
Καλησπέρα σας και από μένα. Πολύ σωστά είπε ο Τάσος πως μπορούμε να ορίσουμε εμείς το τι θα γράφει το αποτέλεσμα. Για να είμαστε όμως ολόσωστοι θα έλεγα, εγώ προτείνω το: Κώδικας: =IF(INT(A1)=A1;inwords(A1;0);inwords(A1;0)&" "&IF(INT((A1-INT(A1))*100)<=1;"εκατοστό";"εκατοστά"))Έτσι θα πάρουμε σωστό αποτέλεσμα για το 120,01 (ένα από τα χιλιάδες νούμερα που το Excel χειρίζεται "παράξενα" λόγω "αριθμητικής κινητής υποδιαστολής") !!! :wink: Τα λέμε Θανάσης. |
Καλημέρα σε όλους! Θανάση μου, Με τη δεύτερη συνάρτηση, παίρνουμε το σωστό αποτέλεσμα αλλά μόνο για την τιμή ???.01 Αν βάλουμε ???,02 συνεχίζει να εμφανίζει: "εκατοστό" αντι για "εκατοστά":undecided: Αν βάλουμε ???,03+ εμφανίζει κανονικά: "εκατοστά" Με την πρώτη συνάρτηση, με την τιμή ???.01 εμφανίζει: "εκατοστά" (Excel και δεκαδικοί....):undecided: Θα πρότεινα λοιπόν: Κώδικας: =IF(TRUNC(A1)=A1;inwords(A1;0);inwords(A1;0)&" "&IF(ROUND(MOD(A1;1);2)=0,01;"εκατοστό";"εκατοστά")) |
Παράθεση:
ΥΓ. δεν κατάλαβα πως εξαφανίστηκε ο τύπος που είχα δώσει με INT στο προηγούμενο μήνυμά μου !!! :eek: |
Και πάλι ΜΠΡΑΒΟ παιδιά Σας ΕΥΧΑΡΙΣΤΩ και τους δύο. :smile: |
παιδία ένα μεγάλο ΕΥΧΑΡΙΣΤΩ και από μένα. |
Χρησιμοποιώ τη συγκεκριμένη συνάρτηση εδώ και καιρό. Όμως από τη μέρα που πέρασα τα Windows 7 και το Office 2010, όταν ανοίγω το excel βγάζει μήνυμα ότι δεν τη βρίσκει και για να λειτουργήσει πρέπει να πάω στο κελί που έχω τη συνάρτηση, να διαγράψω τα περιεχόμενα και να ξαναορίσω τη συνάρτηση από την αρχή. Έτσι δουλεύει, αλλά αν κλείσω το Excel και το ξανανοίξω, κάνει τα ίδια. |
Παράθεση:
ακολούθησε τα δυο παρακάτω βήματα που νομίζω θα σου λύσουν το πρόβλημα. Βήμα 1 θα πρέπει να εγκαταστήσεις και να ενεργοποιήσεις το πρόσθετο (Add-In) στο Excel 2010 αν δεν το έχεις ήδη κάνει.
Βήμα 2 θα πρέπει να αντικαταστήσεις τις εξωτερικές αναφορές της inwords() διαγράφοντας το path που βρίσκεται μπροστά της (αν υπάρχει). Αυτό μπορείς να το κάνεις είτε χειροκίνητα κάνοντας επεξεργασία των κελιών που περιέχουν την inwords(...) (αν κατάλαβα καλά αυτό έκανες μέχρι τώρα), ή μέσω της ενημέρωσης των εξωτερικών συνδέσμων.
Το βήμα 1 χρειάζεται να γίνει μόνο μια φορά σε αντίθεση με το βήμα 2 που πρέπει να γίνει μια φορά για κάθε παλαιό αρχείο που χρησιμοποιεί την inwords() Πες μας αν έγινε. :hmm: Θανάσης |
Τα είχα ήδη κάνει όλα αυτά. Τα ξαναέκανα ακολουθώντας κατά γράμμα τις οδηγίες, έφτιαξα και νέο αρχείο για δοκιμή, αλλά κάνει τα ίδια. Νομίζω ότι είναι πρόβλημα των W 7, γιατί στον φορητό μου έχω W7 με office 2007 και παρουσιάζει τα ίδια. |
Καλησπέρα Νίκο! Αν το πρόσθετο έχει εγκατασταθεί σωστά τότε Η καρτέλα Πρόσθετα θα πρέπει να είναι εμφανής και σε σε ένα πλαίσιο της (μπορεί να έχει παραπάνω από 1 πλαίσια αν έχεις φορτώσει περισσότερα πρόσθετα) θα πρέπει να φαίνεται η επιλογή "Αριθμοί Ολογράφως". Αν δεν υπάρχει εκεί σημαίνει ότι δεν έχει εγκατασταθεί. Πρέπει να εξετάσεις το θέμα ασφάλειας στην Excel δηλ. Tο Numbers2Text.xla πρέπει να βρίσκεται σε θέση που θεωρείται αξιόπιστη από την Excel (Επιλογές Excel > Κέντρο Αξιοπιστίας >Ρυθμίσεις Κέντρου αξιοπιστίας, Αξιόπιστες θέσεις) καθώς και την ενεργοποίηση μακροεντολών (επίσης στις Ρυθμίσεις Κέντρου αξιοπιστίας). Αφού λοιπόν το Numbers2Text.xla βρίσκεται σε αξιόπιστη θέση και οι ρύθμισεις ασφάλειας των μακροεντολών επιτρέπουν την εκτέλεση κώδικα VBA, με διπλό κλικ θα εγκατασταθεί το αρχείο Numbers2Text.xla και η συνάρτηση InWords() θα λειτουργήσει κανονικά. Ακόμα όμως κι αν εγκαταστήσεις το πρόσθετο κανονικά, δεν θα λειτουργήσουν οι συναρτήσεις τύπου: 'C:\Users\Username\Folder\Numbers2Text.xla'!inWord s(A1). Όπως είπε και ο Θανάσης, θα χρειαστεί να αφαιρέσεις χειροκίνητα (Με Εύρεση και Αντικατάσταση) την παλαιά διαδρομή που προστίθεται στη συνάρτηση InWords() όταν δεν βρεθεί το πρόσθετο. Δεν γίνεται να κάνει η Excel αυτή τη διαδικασία με δική της πρωτοβουλία. Καλή συνέχεια! Τάσος |
Άλλαξα τη θέση του πρόσθετου, το αποθήκευσα στο φάκελο templates του office, έκανα και τις ρυθμίσεις που μου είπες και επιτέλους δουλεύει μια χαρά. Ευχαριστώ για τη βοήθεια.:003: |
σας ευχαριστώ! Καλησπέρα σας και ευχαριστώ πολύ για τη βοήθεια! Υπάρχει περίπτωση το ίδιο να δουλεύει και σε word? (π.χ. μέσα σε πίνακες) |
Παράθεση:
Είχα ζητήσει και γω πιο παλιά κάτι τέτοιο και ο φίλος Τάσος έδωσε τη λύση δες εδώ Αριθμητικό ποσό ή ημερομηνίες ολογράφως σε πίνακα Word. Ελπίζω να σε βοηθήσει όπως βοήθησε και μένα. |
ευχαριστώ πάρα πολύ!! |
Εγκατέστησα την inwords σε office 2010 αλλά δεν μου γράφει τα δεκαδικά. Π.χ. το 138.75 το γράφει εκατόν τριάντα εννέα |
| Η ώρα είναι 08:50. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.