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/3520-diaxorisi-perigrafis.html)

manolis 14-01-15 20:33

Διαχώριση περιγραφής
 
1 Συνημμένο(α)
Καλησπέρα σε όλη την παρέα

Εχω μια λίστα με υλικά.
Η τελευταία λέξη της περιγραφής του υλικού αφορά το μοντέλο του αυτοκινήτου.
Θα ήθελα αν γίνεται αυτή την λέξη να την παίρνω σε μια ξεχωριστή στήλη ωστε να μπορω την φιλτράρω.



Ευχαριστώ

Zounds 14-01-15 21:16

Καλησπέρα,

Κώδικας:

    Sub Break_String()
    Dim WrdArray() As String
    Dim text_string As String
    text_string = Cells(3, "C")
   
   
    WrdArray() = Split(text_string)
    For i = LBound(WrdArray) To UBound(WrdArray)
      strg = strg & vbNewLine & "Part No. " & i & " - " & WrdArray(i)
    Next i
    MsgBox strg
   
   
    'με αυτο εμφανίζεται η τελευταια λέξη σε messagebox του κελιου c3
    MsgBox WrdArray(UBound(WrdArray))
       
       

    End Sub


Spirosgr 14-01-15 21:28

Καλησπέρα
Φίλε Μάνο

Ο τύπος, βρίσκει την τελευταία λέξη, σε μια οποιοδήποτε συμβολοσειρά (string).

=TRIM(RIGHT(SUBSTITUTE(C3;" ";REPT(" ";LEN(C3)));LEN(C3)))

Συμπληρωματικά:

Ο πιο κάτω τύπος, δίνει την νιοστή λέξη, σε μια συμβολοσειρά.

=TRIM(MID(SUBSTITUTE(C3;" ";REPT(" ";LEN(C3)));(i-1)*LEN(C3)+1;LEN(C3)))

Αντικαταστήστε το i με τον αριθμό λέξης που ψάχνετε.
πχ i=3 για να βρείτε την 3η κατά σειρά λέξη.

Spirosgr 14-01-15 21:42

Γεια σας και πάλι.
Άλκηστη, πολύ ενδιαφέρον ο κώδικας που μας παρουσιάζεις και με κάποιες μετατροπές θα είναι σίγουρα χρήσιμος σε κάποια έργα μας.
Θα πρέπει να μην ξεχνάς να δηλώνεις όλες τις μεταβλητές σου.
Εδώ θα πρέπει να δηλώσεις ακόμα τα :
Dim i As Long, και
strg As String

Για να μην «ξεφεύγουν» κάποιες μεταβλητές ρύθμισε από τα
Tools ► Options ► Editor ► το 2ο checkbox (Require Variable Declaration) να είναι ενεργοποιημένο.
Θα εμφανίζεται στο επάνω μέρος των module ► Option Explicit

Spirosgr 14-01-15 22:26

Ακόμη μια περίπτωση, όπου προβλέπει και το λάθος, να έχουμε κενό (space)
στο τέλος της πρότασης.
Κώδικας:

=IF(ISERR(FIND(" ";TRIM(C3)));TRIM(C3);TRIM(MID(C3;LOOKUP(LEN(C3);FIND(" ";TRIM(C3);ROW($A$1:$A$255)))+1;LEN(C3))))
Σε περίπτωση που στο κελί, υπάρχει πρόταση με περισσότερους από 255 χαρακτήρες, τότε:

Αντικαταστήστε το ROW($A$1:$A$255) ,με κάτι μεγαλύτερο.
Αν για παράδειγμα η πρόταση έχει 285 χαρακτήρες ► ROW($A$1:$A$300) κ.ο.κ

manolis 15-01-15 18:57

Σας ευχαριστώ πού για τις λύσεις που μου δώσατε . Με βοήθησαν πάρα πολύ

Με εκτίμηση
Μανώλης

Zounds 15-01-15 21:25

Σπύρο,

σε ευχαριστώ για τις επικοδομητικές παρατηρήσεις σου στην απάντησή μου.


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

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


Search Engine Optimization by vBSEO 3.3.2