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/6386-mi-leitoyrgia-synartiseon.html)

BizosDim 24-10-23 12:21

Μη λειτουργία συναρτήσεων
 
1 Συνημμένο(α)
χαίρετε,

μπορεί να μου πει κάποιος/-α για ποιο λόγο στο επισυναπτόμενο αρχείο:
1) Στο κελί B3 δεν δέχεται τη συνάρτηση: =IF(B2="";"";IF(B2=A;T1;IF(B2=B;T2;IF(B2=C;T3;IF(B 2=D;T4))))

2) Δεν λειτουργούν οι συναρτήσεις στα κελιά C3, E3 και O3;;;

Ευχαριστώ εκ των προτέρων

ChrisGT7 24-10-23 12:43

Καλησπέρα Δημήτρη,

Οι συνθήκες ελέγχου για συμβολοσειρές (κείμενο) πρέπει να μπαίνουν μέσα σε "αυτάκια" (π.χ. Α5="Χρήστος" και όχι Α5=Χρήστος), ενώ στους αριθμούς χωρίς "αυτάκια" (π.χ. Α5=1).

Επομένως, δοκίμασε να διορθώσεις τις συναρτήσεις σύμφωνα με τα παραπάνω, π.χ. =IF(B2="Α";T1).

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

BizosDim 25-10-23 07:30

Παράθεση:

Αρχική Δημοσίευση από ChrisGT7 (Μήνυμα 35089)
Καλησπέρα Δημήτρη,

Οι συνθήκες ελέγχου για συμβολοσειρές (κείμενο) πρέπει να μπαίνουν μέσα σε "αυτάκια" (π.χ. Α5="Χρήστος" και όχι Α5=Χρήστος), ενώ στους αριθμούς χωρίς "αυτάκια" (π.χ. Α5=1).

Επομένως, δοκίμασε να διορθώσεις τις συναρτήσεις σύμφωνα με τα παραπάνω, π.χ. =IF(B2="Α";T1).

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


Σ' ευχαριστώ,

Οι συναρτήσεις στα κελιά B3 και O3 λειτουργούν.
Μπορείς να μου εξηγήσεις γιατί δε λειτουργούν άμεσα οι συναρτήσεις στα κελιά C3 και E3; Βέβαια λειτουργούν αν καταχωρήσω τιμή (αριθμό) στα κελιά C2 και E2 (πχ 1,2,3). Οι τιμές στα C2 και E2 προκύπτουν με συνάρτηση (αναλόγως του κωδικού που καταχωρείται στο κίτρινο κελί Α2).

ChrisGT7 25-10-23 07:49

Καλημέρα Δημήτρη,

Αν έχω καταλάβει σωστά, θεωρείς πως οι οι συναρτήσεις των C3 και E3 δε λειτουργούν, γιατί επιστρέφουν FALSE. Αυτό συμβαίνει γιατί δεν έχεις ορίσει το αποτέλεσμα σε περίπτωση που η IF() βρει ψηφία εκτός των 1,2,3,4,5.

Δοκίμασε για αρχή τους παρακάτω τύπο αν σε καλύπτουν:

Στο C3: =IF(C2="";"";IF(C2=1;U1;IF(C2=2;U2;IF(C2=3;U3;IF(C 2=4;U4;"Λάθος ψηφίο!")))))
Στο E3: =IF(E2="";"";IF(E2=1;V1;IF(E2=2;V2;IF(E2=3;V3;IF(E 2=4;V4;IF(E2=5;V5;"Λάθος ψηφίο!"))))))

BizosDim 25-10-23 08:34

1 Συνημμένο(α)
Παράθεση:

Αρχική Δημοσίευση από ChrisGT7 (Μήνυμα 35091)
Καλημέρα Δημήτρη,

Αν έχω καταλάβει σωστά, θεωρείς πως οι οι συναρτήσεις των C3 και E3 δε λειτουργούν, γιατί επιστρέφουν FALSE. Αυτό συμβαίνει γιατί δεν έχεις ορίσει το αποτέλεσμα σε περίπτωση που η IF() βρει ψηφία εκτός των 1,2,3,4,5.

Δοκίμασε για αρχή τους παρακάτω τύπο αν σε καλύπτουν:

Στο C3: =IF(C2="";"";IF(C2=1;U1;IF(C2=2;U2;IF(C2=3;U3;IF(C 2=4;U4;"Λάθος ψηφίο!")))))
Στο E3: =IF(E2="";"";IF(E2=1;V1;IF(E2=2;V2;IF(E2=3;V3;IF(E 2=4;V4;IF(E2=5;V5;"Λάθος ψηφίο!"))))))

Όντως η τιμή που επιστρέφεται είναι FALSE. Το πρόβλημα είναι ότι θα ήθελα (στο συγκεκριμένο παράδειγμα του επισυναπτόμενου αρχείου) στο κελί C3 να επιστρέφει τη τιμή του κελιού U3="Μέσης κοκκομετρικής SCL (Αμμοαργιλοπηλώδη),CL(αργιλο πηλώδη),SiCL (ιλυοαργιλοπηλώδη) μετρίως λεπτόκοκκα" και όχι FALSE (από τη στιγμή που C2=3). Μάλλον κάτι γίνεται επειδή ουσιαστικά η τιμή στο C2 επιστρέφεται από συνάρτηση, της οποίας το αποτέλεσμα είναι 3 στο συγκεκριμένο παράδειγμα. Το παράξενο είναι ότι όταν πληκτρολογώ στο C2 τον αριθμό 3 τότε στο C3 μου επιστρέφει το επιθυμητό αποτέλεσμα. Οπότε μικρό το κακό (απλά θα χρειάζεται να καταχωρώ 2 αριθμούς κάθε φορά στα κελιά C2 και E2). Απλά σκεφτόμουν αν μπορούσα να αποφύγω τις επιπλέον καταχωρήσεις.

Ευχαριστώ,
Δημήτρης

ChrisGT7 25-10-23 09:42

Δημήτρη,

Δοκίμασε τον τύπο στο C3: =IF(C2="";"";IF(C2=1;U1;IF(C2=2;U2;IF(C2=3;U3;IF(C 2=4;U4;U3)))))

H IF(συνθήκη;αληθές;ψευδές) επιστρέφει το αποτέλεσμα του "αληθές" αν η συνθήκη ισχύει και το "ψευδές" αν δεν ισχύει. Επειδή δεν είχες το U3, η IF() δε βρήκε το δικό σου όρισμα, οπότε επέστρεψε το εξ' ορισμού όρισμα, δηλαδή FALSE.

BizosDim 25-10-23 12:45

Παράθεση:

Αρχική Δημοσίευση από ChrisGT7 (Μήνυμα 35093)
Δημήτρη,

Δοκίμασε τον τύπο στο C3: =IF(C2="";"";IF(C2=1;U1;IF(C2=2;U2;IF(C2=3;U3;IF(C 2=4;U4;U3)))))

H IF(συνθήκη;αληθές;ψευδές) επιστρέφει το αποτέλεσμα του "αληθές" αν η συνθήκη ισχύει και το "ψευδές" αν δεν ισχύει. Επειδή δεν είχες το U3, η IF() δε βρήκε το δικό σου όρισμα, οπότε επέστρεψε το εξ' ορισμού όρισμα, δηλαδή FALSE.

Συνεχίζει να μη λειτουργεί.
Με τη συνάρτηση που μου πρότεινες μου επιστρέφει τη τιμή του U3 (=Μέσης κοκκομετρικής SCL (Αμμοαργιλοπηλώδη),CL(αργιλο πηλώδη),SiCL (ιλυοαργιλοπηλώδη) μετρίως λεπτόκοκκα) σε όλες τις περιπτώσεις (δηλαδή έχω το ίδιο αποτέλεσμα αν C2=1 ή 2 ή 3 ή 4).
Εγώ θέλω:
αν C2=1 (το 1 προκύπτει από τη συνάρτηση MID($A$2;2;1)) στο C3 να επιστρέφεται η τιμή του U1 (=Πολύ χονδρόκοκκο S (αμμώδη),LS (πηλοαμμώδη),SL (Αμμοπηλώδη))

αν C2=2 (το 2 προκύπτει από τη συνάρτηση MID($A$2;2;1)) στο C3 να επιστρέφεται η τιμή του U2 (=Χονδρόκοκκο L (Πηλώδη),SiL (Ιλυοπηλώδη),Si (Ιλυώδη),fSL (λεπτή αμμοπηλώδης) μέσης κοκκομετρικής σύστασης)

αν C2=3 (το 3 προκύπτει από τη συνάρτηση MID($A$2;2;1)) στο C3 να επιστρέφεται η τιμή του U3 (=Μέσης κοκκομετρικής L (Πηλώδη),SiL (Ιλυοπηλώδη),Si (Ιλυώδη),fSL (λεπτή αμμοπηλώδης))

αν C2=4 (το 4 προκύπτει από τη συνάρτηση MID($A$2;2;1)) στο C3 να επιστρέφεται η τιμή του U4 (=Μετρίως λεπτόκοκκο, Λεπτόκοκκα SiC (Ιλυοαργιλωπηλώδη),C (αργιλώδη),SC (αμμοαργιλώδη))

Σε κάθε άλλη περίπτωση το C3 να είναι κενό.

Η συνάρτηση που χρησιμοποίσα εξ' αρχής νομίζω ότι είναι σωστή, απλά πρέπει να καταχωρήσω τη τιμή 1 στο κελί C2, τη τιμή 2 στο κελί C2 (κοκ). Όταν δηλαδή σβήνω τη συνάρτηση του κελιού C2 (=MID($A$2;2;1) και καταχωρώ τις τιμές που θέλω (1,2,3,4), η συνάρτηση μου επιστρέφει τα επιθυμητά αποτελέσματα. Δεν το κάνει όμως όταν οι τιμές στο C2 υπολογίζονται από τη συνάρτηση MID($A$2;2;1 (όπου στο Α2 καταχωρείται ένας κωδικός).

ChrisGT7 25-10-23 13:29

Δημήτρη,

Θεωρώ πως μπορείς να το αντιμετωπίσεις με δύο τρόπους:

1. Βάλε τις MID() που επιστρέφουν ψηφία μέσα σε μια VALUE() ώστε να μετατρέψει το κείμενο σε αριθμό ή
2. Βάλε τους αριθμούς των συνθηκών στις IF() μέσα σε "αυτάκια" ώστε να τους "διαβάζει" ως κείμενο.

Η MID() επιστρέφει κείμενο, οπότε όταν βλέπεις π.χ. 1 είναι κανονικά "1", δηλαδή κείμενο. Γι' αυτό η IF() δεν το "διαβάζει" σωστά.

BizosDim 25-10-23 13:38

Σ' ευχαριστώ πολύ Χρήστο

και οι 2 λύσεις που μου πρότεινες λειτουργούν.


Η ώρα είναι 02:26.

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


Search Engine Optimization by vBSEO 3.3.2