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

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

Δημοσ.

Καλησπέρα σε όλους! Αρχικά να προειδοποιήσω ότι με το excel έχω ασχοληθεί απειροελάχιστα στη ζωή μου.

 

Λοιπόν, έχω βάρη και ύψη που τα μετατρέπω σε δείκτες BMI (στήλη Ε) και αυτούς με τη σειρά τους σε αξιολόγηση σωματικού βάρους (στήλη F). Θα ήθελα να κάνω μια συνάρτηση με τα εξής δεδομένα:

 

Αν

- BMI<18,5, να εμφανίζει στη στήλη F τη λέξη "Ελλιποβαρής"

- 18,5<=ΒΜΙ<25 "Νορμοβαρής"

- 25<=ΒΜΙ<30 "Υπέρβαρη"

- 30<=BMI<35 "Παχύσαρκη τύπου Ι"

- 35<=BMI<40 "Παχύσαρκη τύπου ΙΙ"

- BMI>=40 "Νοσηρά παχύσαρκη"

 

Με λίγο ψάξιμο κατέληξα στη συνάρτηση 

=IF(E2<18,5;"Ελλιποβαρής";IF(AND(18,5<=E2;E2<25);"Νορμοβαρής";IF(AND(25<=E2;E2<30);"Υπέρβαρη";IF(AND(30<=E2;E2<35);"Παχύσαρκη τύπου Ι";IF(AND(35<=E2;E2<40);"Παχύσαρκη τύπου ΙΙ";IF(E2>=40;"Νοσηρά παχύσαρκη"))))))

 

Και εδώ έρχονται οι ερωτήσεις:

1) Η συνάρτηση δείχνει σωστή, γιατί μου επιστρέφει σωστά αποτελέσματα. Μήπως όμως υπάρχει κάποια πιο απλή εκδοχή της; Γιατί μου φαίνεται ότι το πήγα λίγο "μέσω Λαμίας".

2) Οι δείκτες BMI, που υπολογίζονται βάσει του ύψους και του βάρους μέσα στο ίδιο φύλλο του excel, θέλω να έχουν 1 δεκαδικό. Έχω μια περίπτωση, όμως, που το BMI βγαίνει 24,97, οπότε θεωρητικά η κοπέλα ανήκει στην κατηγορία "Νορμοβαρής", όμως με τη στρογγυλοποίηση με 1 δεκαδικό βγαίνει 25,0 άρα είναι "Υπέρβαρη". Το excel δε λαμβάνει υπ' όψιν αυτό που "φαίνεται" αλλά αυτό που "είναι". Γι' αυτό και το 25,0 μου το εμφανίζει "Νορμοβαρής", κάτι που δεν ισχύει. Μπορώ να κάνω κάτι γι' αυτό;

3) Υπάρχει τρόπος με το που εισάγονται νέα δεδομένα στη στήλη E να σέρνεται αυτόματα και η στήλη F ώστε να μην το κάνω κάθε φορά χειροκίνητα; Αν ήταν μόνο μία στήλη δε θα ήταν κόπος, αλλά πρέπει να το κάνω για αρκετές ακόμα οπότε θα με βόλευε να γίνεται αυτόματα.

 

Ευχαριστώ που διαβάσατε το σεντονάκι  :-)

  • Like 1
Δημοσ.

Καλησπέρα !

 

Όπως τη βλέπω τη συνάρτηση που έχεις γράψει, φαίνεται να είναι πολύ σωστή. Δυστυχώς στο Excel δεν υπάρχει συνάρτηση τύπου between(A,B) που να ελέγχει αν μία τιμή είναι μεταξύ δύο άλλων. Οπότε πρέπει σώνει και καλά να υλοποιηθεί με IF και AND.

Τώρα αν θέλεις μια λίγο πιο σύντομη μορφή αυτού που έγραψες, μπορείς ας πούμε να γράψεις ως εξής : =AND(value>num1,value<num2) για να ελέγξεις αν η τιμή value είναι μεταξύ των num1,num2.

Δυστυχώς δεν βλέπω να υπάρχει κάτι απλούστερο.

 

Να είσαι καλά,

Ο Άσπρος Γάτος

  • Like 1
Δημοσ.

Τα παρακάτω είναι δοκιμασμένα στο LibreOffice, αλλά φαντάζομαι και στο Excel θα ισχύουν.

 

1) Μήπως όμως υπάρχει κάποια πιο απλή εκδοχή της;

 

Όταν έχεις πολλές IF μπορείς να χρησιμοποιήσεις την IFS, που παίρνει ζευγάρια παραμέτρων (έλεγχος/αποτελέσμα). Ο έλεγχος γίνεται με τη σειρά, οπότε αρκεί να τσεκάρεις μόνο το ανώτερο όριο. Επιπλέον, βάζεις στο τέλος ένα TRUE για να πιάσεις όλες τις υπόλοιπες περιπτώσεις (Ε2>=40). Κάπως έτσι δηλαδή:

 

=IFS(E2<18.5, "Ελλιποβαρής", E2<25, "Νορμοβαρής", E2<30, "Υπέρβαρη", E2<35, "Παχύσαρκη τύπου Ι", E2<40, "Παχύσαρκη τύπου ΙΙ", TRUE, "Νοσηρά παχύσαρκη")

 

2) Οι δείκτες BMI, που υπολογίζονται βάσει του ύψους και του βάρους μέσα στο ίδιο φύλλο του excel, θέλω να έχουν 1 δεκαδικό.

 

Η TRUNC κάνει αυτό ακριβώς: κόβει δεκαδικά χωρίς στρογγυλοποίηση. Π.χ. TRUNC(45.6789, 1) => 45.6

 

3) Υπάρχει τρόπος με το που εισάγονται νέα δεδομένα στη στήλη E να σέρνεται αυτόματα και η στήλη F ώστε να μην το κάνω κάθε φορά χειροκίνητα; Αν ήταν μόνο μία στήλη δε θα ήταν κόπος, αλλά πρέπει να το κάνω για αρκετές ακόμα οπότε θα με βόλευε να γίνεται αυτόματα.

 

Κι εγώ το ήθελα αυτό, αλλά όταν έψαξα δεν βρήκα λύση χωρίς τη χρήση μακροεντολών και γι' αυτό παραιτήθηκα. :unsure:

  • Like 1
Δημοσ.

Η συνάρτηση IFS, υπάρχει μόνο στο office365. Αν τα έχεις, τότε είναι μονόδρομος. Αν όχι, τότε...

 

Για το πρώτο ερώτημα, δεν χρειάζονται τα AND καθώς και το τελευταίο IF. Μπορείς να την γράψεις κι έτσι:

=IF(E2<18,5;"Ελλιποβαρής";IF(E2<25;"Νορμοβαρής";IF(E2<30;"Υπέρβαρη";IF(E2<35;"Παχύσαρκη τύπου Ι";IF(E2<40;"Παχύσαρκη τύπου ΙΙ";"Νοσηρά παχύσαρκη")))))

 

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

=IF(E2="";"";IF(E2<18,5;"Ελλιποβαρής";IF(E2<25;"Νορμοβαρής";IF(E2<30;"Υπέρβαρη";IF(E2<35;"Παχύσαρκη τύπου Ι";IF(E2<40;"Παχύσαρκη τύπου ΙΙ";"Νοσηρά παχύσαρκη"))))))

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

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

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

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

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

Σύνδεση

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

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