Εμφάνιση ενός μόνο μηνύματος
  #6  
Παλιά 27-06-11, 13:44
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.250
Προεπιλογή

Καλησπέρα σε όλους!

Γιώργο μου, παίρνουμε για παράδειγμα το περιεχόμενο του κελιού A1 στο συνημμένο του Τζίμη:

Πέτρος Γεωργίου του ΧρήστουChar(10)
Char(32)με ΑΦΜ 7777777777


Ο τύπος είναι: =TRIM(SUBSTITUTE(SUBSTITUTE(A1;CHAR(10);" ");" ";" "))

Ξεκινάμε με την συνάρτησηπου εκτελείται πρώτη (τη μεσαία)SUBSTITUTE(A1;CHAR(10);" ")
Aντικαθιστά τυχόν συμβολο της αναδιπλωσης CHAR(10)του κελιού A1 με κενό CHAR(32).

Το αποτέλεσμα θα είναι: Πέτρος Γεωργίου του ΧρήστουChar(32)Char(32)με ΑΦΜ 7777777777
δηλαδή έχουμε δημιουργήσει 2 κενά που θα προκαλέσουν πρόβλημα στη διάσπαση του περιεχομένου του κελιού (αφήνει κενά κελιά).

Αυτό με ώθησε να περικλείσω την πρώτη SUBSTITUTE() στην εξωτερική SUBSTITUTE()
Η εξωτερική SUBSTITUTE() αντικαθιστά τα δυο διαστήματα της πρώτης με ένα διάστημα.

Έτσι είμαι σίγουρος ότι δεν θα ανάμεσα στις λέξεις υπάρχει μόνο ένα διάστημα.

Επειδή τέτοιου είδους δεδομένα έρχονται συνήθως από εξωτερικές πηγές δεδομένων
ή με αντιγραφή επικόλληση από το χρήστη,
καλό είναι το αποτέλεσμα της SUBSTITUTE(SUBSTITUTE(...)) να το ελέγξουμε με την TRIM() για τυχόν διαστήματα στην αρχή ή στο τέλος.

Τα λέμε!

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση