Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Συναρτήσεις] Συνάρτηση inWords (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/229-synartisi-inwords.html)

Θανάσης 15-11-09 18:19

Συνάρτηση inWords
 
Αγαπητοί φίλοι,
είδα το αρχείο που ανεβάσετε στα Χρήσιμα αρχεία Μετατροπή αριθμού σε κείμενο ολογράφως.

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

Το =inwords(0,12) ή =inwords(0,12;TRUE) δουλεύει σωστά και μας δίνει "Δώδεκα λεπτά".
αλλά το =inwords(0,12;FALSE) δίνει "Δώδεκα" αντί "Μηδέν κόμα Δώδεκα" ή "Δώδεκα εκατοστά".

Για δείτο το μήπως μπορεί να διορθωθεί. :rolleyes:

Ευχαριστώ.
Θανάσης

Tasos 16-11-09 06:34

Αγαπητέ Θανάση, καλημέρα!
Αν στο δεύτερο όρισμα της συνάρτησης δώσουμε μηδενική τιμή (ή FALSE),
μπορουμε να προσθέσουμε τη λέξη/φράση που θέλουμε τροποποιώντας την ίδια τη συνάρτηση ως εξής:
Κώδικας:

=IF(INT(A1)=A1;inwords(A1;0);inwords(A1;0)&" "&IF(MOD(A1;1)<=0,01;"εκατοστό";"εκατοστά"))

gr8styl 17-11-09 21:47

Καλησπέρα σας και από μένα.

Πολύ σωστά είπε ο Τάσος πως μπορούμε να ορίσουμε εμείς το τι θα γράφει το αποτέλεσμα.
Για να είμαστε όμως ολόσωστοι θα έλεγα, εγώ προτείνω το:
Κώδικας:

=IF(INT(A1)=A1;inwords(A1;0);inwords(A1;0)&" "&IF(INT((A1-INT(A1))*100)<=1;"εκατοστό";"εκατοστά"))
δηλαδή INT αντί MOD.
Έτσι θα πάρουμε σωστό αποτέλεσμα για το 120,01 (ένα από τα χιλιάδες νούμερα που το Excel χειρίζεται "παράξενα" λόγω "αριθμητικής κινητής υποδιαστολής") !!! :wink:

Τα λέμε
Θανάσης.

Tasos 18-11-09 09:07

Καλημέρα σε όλους!
Θανάση μου,

Με τη δεύτερη συνάρτηση, παίρνουμε το σωστό αποτέλεσμα αλλά μόνο για την τιμή ???.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;"εκατοστό";"εκατοστά"))

gr8styl 18-11-09 19:14

Παράθεση:

Αρχική Δημοσίευση από Τάσος (Μήνυμα 784)
Θα πρότεινα λοιπόν:
Κώδικας HTML:

IF(TRUNC(A1)=A1;inwords(A1;0);inwords(A1;0)&" "&IF(ROUND(MOD(A1;1);2)=0,01;"εκατοστό";"εκατοστά"))

Πολύ σωστά Τάσο. Συμφωνώ απόλυτα. :cool:

ΥΓ. δεν κατάλαβα πως εξαφανίστηκε ο τύπος που είχα δώσει με INT στο προηγούμενο μήνυμά μου !!! :eek:

Θανάσης 19-11-09 22:03

Και πάλι ΜΠΡΑΒΟ παιδιά

Σας ΕΥΧΑΡΙΣΤΩ και τους δύο. :smile:

Gian15 17-11-10 20:47

παιδία ένα μεγάλο ΕΥΧΑΡΙΣΤΩ και από μένα.

NIKOLAOS68 13-03-11 10:29

Χρησιμοποιώ τη συγκεκριμένη συνάρτηση εδώ και καιρό.
Όμως από τη μέρα που πέρασα τα Windows 7 και το Office 2010, όταν ανοίγω το excel βγάζει μήνυμα ότι δεν τη βρίσκει και για να λειτουργήσει πρέπει να πάω στο κελί που έχω τη συνάρτηση, να διαγράψω τα περιεχόμενα και να ξαναορίσω τη συνάρτηση από την αρχή. Έτσι δουλεύει, αλλά αν κλείσω το Excel και το ξανανοίξω, κάνει τα ίδια.

gr8styl 13-03-11 13:25

Παράθεση:

Αρχική Δημοσίευση από NIKOLAOS68 (Μήνυμα 5551)
Χρησιμοποιώ τη συγκεκριμένη συνάρτηση εδώ και καιρό.
Όμως από τη μέρα που πέρασα τα Windows 7 και το Office 2010, όταν ανοίγω το excel βγάζει μήνυμα ότι δεν τη βρίσκει και για να λειτουργήσει πρέπει να πάω στο κελί που έχω τη συνάρτηση, να διαγράψω τα περιεχόμενα και να ξαναορίσω τη συνάρτηση από την αρχή. Έτσι δουλεύει, αλλά αν κλείσω το Excel και το ξανανοίξω, κάνει τα ίδια.

Φίλε μου
ακολούθησε τα δυο παρακάτω βήματα που νομίζω θα σου λύσουν το πρόβλημα.

Βήμα 1
θα πρέπει να εγκαταστήσεις και να ενεργοποιήσεις το πρόσθετο (Add-In) στο Excel 2010 αν δεν το έχεις ήδη κάνει.
  • Ξεκινάς το Excel
  • Μέσω τού Μενου File/Option/Add-Ins
  • Στο κάτω μέρος δίπλα από το Manage, όπου πρέπει να γράφει "Excel Add-Ins", πατάς "Go" και βρισκεις το αρχείο "Numbers2Text.xla" που πρέπει να έχεις κάπου πάνω στο δίσκο σου.
  • Πατάς Ok και έγινε.

Βήμα 2
θα πρέπει να αντικαταστήσεις τις εξωτερικές αναφορές της inwords() διαγράφοντας το path που βρίσκεται μπροστά της (αν υπάρχει).
Αυτό μπορείς να το κάνεις είτε χειροκίνητα κάνοντας επεξεργασία των κελιών που περιέχουν την inwords(...) (αν κατάλαβα καλά αυτό έκανες μέχρι τώρα), ή μέσω της ενημέρωσης των εξωτερικών συνδέσμων.
  • Μέσω του μενού Data/Edit Links Πατάς στο "Change source"
  • Ψάχνεις να βρεις και επιλέγεις το "Numbers2Text.xla" αρχείο που χρησιμοποίησες στο βήμα 1.
  • Πατάς Ok και έγινε

Το βήμα 1 χρειάζεται να γίνει μόνο μια φορά σε αντίθεση με το βήμα 2 που πρέπει να γίνει μια φορά για κάθε παλαιό αρχείο που χρησιμοποιεί την inwords()

Πες μας αν έγινε. :hmm:
Θανάσης

NIKOLAOS68 13-03-11 19:33

Τα είχα ήδη κάνει όλα αυτά.
Τα ξαναέκανα ακολουθώντας κατά γράμμα τις οδηγίες, έφτιαξα και νέο αρχείο για δοκιμή, αλλά κάνει τα ίδια.
Νομίζω ότι είναι πρόβλημα των W 7, γιατί στον φορητό μου έχω W7 με office 2007 και παρουσιάζει τα ίδια.

Tasos 13-03-11 22:35

Καλησπέρα Νίκο!
Αν το πρόσθετο έχει εγκατασταθεί σωστά τότε Η καρτέλα Πρόσθετα θα πρέπει να είναι εμφανής
και σε σε ένα πλαίσιο της (μπορεί να έχει παραπάνω από 1 πλαίσια αν έχεις φορτώσει περισσότερα πρόσθετα) θα πρέπει να φαίνεται η επιλογή "Αριθμοί Ολογράφως".

Αν δεν υπάρχει εκεί σημαίνει ότι δεν έχει εγκατασταθεί.

Πρέπει να εξετάσεις το θέμα ασφάλειας στην Excel δηλ.
Tο Numbers2Text.xla πρέπει να βρίσκεται σε θέση που θεωρείται αξιόπιστη από την Excel (Επιλογές Excel > Κέντρο Αξιοπιστίας >Ρυθμίσεις Κέντρου αξιοπιστίας, Αξιόπιστες θέσεις)
καθώς και την ενεργοποίηση μακροεντολών (επίσης στις Ρυθμίσεις Κέντρου αξιοπιστίας).

Αφού λοιπόν το Numbers2Text.xla βρίσκεται σε αξιόπιστη θέση και οι ρύθμισεις ασφάλειας των μακροεντολών επιτρέπουν την εκτέλεση κώδικα VBA, με διπλό κλικ θα εγκατασταθεί το αρχείο Numbers2Text.xla και η συνάρτηση InWords() θα λειτουργήσει κανονικά.
Ακόμα όμως κι αν εγκαταστήσεις το πρόσθετο κανονικά, δεν θα λειτουργήσουν οι συναρτήσεις τύπου: 'C:\Users\Username\Folder\Numbers2Text.xla'!inWord s(A1).

Όπως είπε και ο Θανάσης, θα χρειαστεί να αφαιρέσεις χειροκίνητα (Με Εύρεση και Αντικατάσταση) την παλαιά διαδρομή που προστίθεται στη συνάρτηση InWords() όταν δεν βρεθεί το πρόσθετο.
Δεν γίνεται να κάνει η Excel αυτή τη διαδικασία με δική της πρωτοβουλία.

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

Τάσος

NIKOLAOS68 14-03-11 16:49

Άλλαξα τη θέση του πρόσθετου, το αποθήκευσα στο φάκελο templates του office, έκανα και τις ρυθμίσεις που μου είπες και επιτέλους δουλεύει μια χαρά.
Ευχαριστώ για τη βοήθεια.:003:

ΧΡΗΣΤΟΣ_ 21-03-11 12:25

σας ευχαριστώ!
 
Καλησπέρα σας και ευχαριστώ πολύ για τη βοήθεια!

Υπάρχει περίπτωση το ίδιο να δουλεύει και σε word? (π.χ. μέσα σε πίνακες)

Chris 21-03-11 13:05

Παράθεση:

Αρχική Δημοσίευση από ΧΡΗΣΤΟΣ_ (Μήνυμα 5674)

Υπάρχει περίπτωση το ίδιο να δουλεύει και σε word? (π.χ. μέσα σε πίνακες)

Χρήστο καλησπέρα

Είχα ζητήσει και γω πιο παλιά κάτι τέτοιο και ο φίλος Τάσος έδωσε τη λύση δες εδώ

Αριθμητικό ποσό ή ημερομηνίες ολογράφως σε πίνακα Word.

Ελπίζω να σε βοηθήσει όπως βοήθησε και μένα.

ΧΡΗΣΤΟΣ_ 28-03-11 21:51

ευχαριστώ πάρα πολύ!!

Γιώργος Κ. 12-02-16 13:15

Εγκατέστησα την inwords σε office 2010 αλλά δεν μου γράφει τα δεκαδικά. Π.χ. το 138.75 το γράφει εκατόν τριάντα εννέα


Η ώρα είναι 08:50.

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


Search Engine Optimization by vBSEO 3.3.2