Προς το περιεχόμενο

Εξαίρεση σε συνάρτηση στο microsoft excel


oraiustepe

Προτεινόμενες αναρτήσεις

Καλησπέρα, 

Έχω γράψει την παρακάτω συνάρτηση στο excel για να μπορέσω να διαχωρίσω τις περιγραφές που έχουν μόνο κεφαλαία με αυτές που έχουν πεζά-κεφαλαία ή μόνο πεζά. Όταν είναι πεζά-κεφαλαία μου το εμφανίζει σαν other οπως βλέπετε στην εικόνα. Αυτό που θέλω να κάνω είναι αν γίνεται να προσθέσω μια εξαίρεση στη συνάρτηση ώστε όταν βρίσκει <br>, <h2> και <b> μέσα στην περιγραφή να το θεωρεί κεφαλαία και όχι πεζά-κεφαλαία όπως γίνεται τώρα. Δηλαδή το προϊόν 11172 να εμφανίζεται στην τρίτη στήλη ως "upper case" και όχι ως "other". Ψάχνοντας δε βρήκα κάτι για αυτό και απευθύνθηκα στο φόρουμ. 

Οποιαδήποτε βοήθεια ευπρόσδεκτη

=IF(EXACT(B289;UPPER(B289));"Upper Case";IF(EXACT(B289;LOWER(B289));"Lower Case";"Other"))

image.png.733ee9a80be08dbc7e0d74cba9a9427c.png

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Δοκίμασε με αυτόν:

=IF(ISERR(SEARCH("<??>";B289));IF(EXACT(B289;UPPER(B289));"Upper Case";IF(EXACT(B289;LOWER(B289));"Lower Case";"Other"));"Upper Case")

Εκτός κι αν θέλεις να βρίσκει μόνο τις ετικέτες <br>, <h2> και <b>.

Επεξ/σία από MastroGiannis
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

14 λεπτά πριν, MastroGiannis είπε

Δοκίμασε με αυτόν:

=IF(ISERR(SEARCH("<??>";B289));IF(EXACT(B289;UPPER(B289));"Upper Case";IF(EXACT(B289;LOWER(B289));"Lower Case";"Other"));"Upper Case")

Εκτός κι αν θέλεις να βρίσκει μόνο τις ετικέτες <br>, <h2> και <b>.

Ευχαριστώ για την απάντηση λειτουργεί γενικά αλλά θέλω συγκεκριμένα για τις ετικέτες <br>, <h2>, και <b>. Υπάρχει κάτι για αυτό; Δηλαδή αντί να γράψω <??> να γράψω αυτά τα 3 που προανέφερα

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Γίνεται, απλά μεγαλώνει λίγο ο τύπος.

IF(AND(ISERR(FIND("<b>";B289));ISERR(FIND("<br>";B289));ISERR(FIND("<h2>";B289)));IF(EXACT(B289;UPPER(B289));"Upper Case";IF(EXACT(B289;LOWER(B289));"Lower Case";"Other"));"Upper Case")

 

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Καλημέρα και πάλι, 

Δοκίμασα την τελευταία συνάρτηση και τώρα έχω το εξής πρόβλημα. Όπου βρίσκει br, b και h2 το κάνει upercase ακόμα και αν υπάρχει οποιοδήποτε άλλο γράμμα πεζό μέσα στο κείμενο. Θα ήθελα αν γίνεται να το επιτύχω μόνο όταν υπάρχουν μόνο κεφαλαία μέσα στο κείμενο. π.χ το παράδειγμα της εικόνας δε θα έπρεπε να το είχε σαν uppercase εφόσον υπάρχει το "Διαστάσεις" το οποίο περιέχει και πεζά μέσα.

image.png.3b2d0ae8daa54a228347424db942d5de.png

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Καλημέρα,

Συνεπώς, θα πρέπει να αφαιρεθούν οι συγκεκριμένες ετικέτες από το κείμενο με τον παρακάτω τύπο:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B289;"</b>";"");"<b>";"");"</h2>";"");"<h2>";"");"</br>";"")

και να εφαρμοστεί ο αρχικός σου τύπος πάνω σε αυτό το αποτέλεσμα.

Για να μην γίνει όμως τέρας ο αρχικός τύπος, μπορείς να εισάγεις τον ενδιάμεσο σε μια βοηθητική στήλη (πχ την C) κι ο αρχικός να αναφέρεται σε αυτήν τη στήλη. Δηλαδή:

=IF(EXACT(C289;UPPER(C289));"Upper Case";IF(EXACT(C289;LOWER(C289));"Lower Case";"Other"))

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

9 λεπτά πριν, MastroGiannis είπε

Καλημέρα,

Συνεπώς, θα πρέπει να αφαιρεθούν οι συγκεκριμένες ετικέτες από το κείμενο με τον παρακάτω τύπο:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B289;"</b>";"");"<b>";"");"</h2>";"");"<h2>";"");"</br>";"")

και να εφαρμοστεί ο αρχικός σου τύπος πάνω σε αυτό το αποτέλεσμα.

Για να μην γίνει όμως τέρας ο αρχικός τύπος, μπορείς να εισάγεις τον ενδιάμεσο σε μια βοηθητική στήλη (πχ την C) κι ο αρχικός να αναφέρεται σε αυτήν τη στήλη. Δηλαδή:

=IF(EXACT(C289;UPPER(C289));"Upper Case";IF(EXACT(C289;LOWER(C289));"Lower Case";"Other"))

 

Ευχαριστώ για την απάντηση. Το ξέρω ότι μπορούσα να τα βγάλω από την αρχή με το substitute. Σκοπός μου είναι να μην τα αφαιρέσω τα br και τα υπόλοιπα tags γιατί θέλω να τα ξανά κάνω import μετά σε erp. Απλά θέλω όταν βρίσκει μόνο τα tags μαζί με κεφαλαία όλα τα υπόλοιπα να το θεωρεί "upper case". Αν βρει έστω και ένα γράμμα που είναι μικρό πέραν των tags (που είναι μικρά), τότε να μην το βγάζει upper case να το βγάζει other ή Lower δε με ενδιαφέρει ποιο από τα δύο. Ξέρω σύνθετο πολύ απλά λέω μήπως υπάρχει λύση για να γλυτώσω αρκετή ταλαιπωρία από αυτό που θέλω να κάνω μιας και οι γραμμές είναι πολλές.  

13 λεπτά πριν, demessakis είπε

Αν σβήσεις τα <h2> και <b>, που είναι κριτήρια για να τα βγάλει ως κεφαλαία, πως το βγάζει;

Τι εννοείς δεν κατάλαβα. Από που να τα σβήσω;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
17 λεπτά πριν, oraiustepe είπε

Σκοπός μου είναι να μην τα αφαιρέσω τα br και τα υπόλοιπα tags γιατί θέλω να τα ξανά κάνω import μετά σε erp.

Μην ανησυχείς, δεν αφαιρείται κάτι μόνιμα από τα αρχικά κείμενα της στήλης Β. Οι SUBSTITUTEs επιστρέφουν ένα προσωρινό αποτέλεσμα για τον αρχικό τύπο. Τα αρχικά κείμενα μένουν άθικτα και αυτά είναι που θα εισάγεις στο erp.

Edit:

Απλά, πρότεινα τη χρήση βοηθητικής στήλης διότι δίχως αυτή ο αρχικός σου τύπος γίνεται έτσι:

=IF(EXACT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B289;"</b>";"");"<b>";"");"</h2>";"");"<h2>";"");"</br>";"");UPPER(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B289;"</b>";"");"<b>";"");"</h2>";"");"<h2>";"");"</br>";"")));"Upper Case";IF(EXACT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B289;"</b>";"");"<b>";"");"</h2>";"");"<h2>";"");"</br>";"");LOWER(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B289;"</b>";"");"<b>";"");"</h2>";"");"<h2>";"");"</br>";"")));"Lower Case";"Other"))

Αν δεν σε ενοχλεί το μέγεθός του, χρησιμοποίησέ τον έτσι.

 

Επεξ/σία από MastroGiannis
  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

10 λεπτά πριν, MastroGiannis είπε

Μην ανησυχείς, δεν αφαιρείται κάτι μόνιμα από τα αρχικά κείμενα της στήλης Β. Οι SUBSTITUTEs επιστρέφουν ένα προσωρινό αποτέλεσμα για τον αρχικό τύπο. Τα αρχικά κείμενα μένουν άθικτα και αυτά είναι που θα εισάγεις στο erp.

Σωστός. Πολύ καλός. Αυτό ήθελα ακριβώς. Να σαι καλά. 

14 λεπτά πριν, demessakis είπε

Από το κελί που αναφέρεται η συνάρτηση.

Δε θέλω να το σβήσω από το κελί. Ειδάλλως θα ήταν πιο εύκολο. Ευχαριστώ για τη βοήθεια. Βρέθηκε λύση. 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

4 λεπτά πριν, oraiustepe είπε

Δε θέλω να το σβήσω από το κελί. Ειδάλλως θα ήταν πιο εύκολο. Ευχαριστώ για τη βοήθεια. Βρέθηκε λύση. 

Μετά το είδα. Ένιγουεη, κι εμένα η πρώτη μου σκέψη ήταν με την SUMPRODUCT.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

2 ώρες πριν, demessakis είπε

κι εμένα η πρώτη μου σκέψη ήταν με την SUMPRODUCT.

Αν δεν σου κάνει κόπο, ρίξ' τη. Οι ιδέες όταν μοιράζονται πολλαπλασιάζονται.

Άλλωστε, εδώ είμαστε για να μαθαίνουμε, όχι να δίνουμε λύσεις. ;)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...