Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Συναρτήσεις] Συνάρτηση με πολλαπλά IF (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/4426-synartisi-me-pollapla-if.html)

GEORGE1 19-01-17 22:02

Συνάρτηση με πολλαπλά IF
 
1 Συνημμένο(α)
Καλησπέρα,
Επειδή έχω κολλήσει … θα ήθελα την όπως πάντα πολύτιμη βοήθειά σας ,
Λοιπόν τα ζητούμενα είναι :
Η τιμή στην στήλη «Ι» (που εξαρτάται – διαμορφώνεται από τις τιμές των “D” “G”) θα πρέπει να είναι :
1. Αν η τιμή στο ανάλογο κελί της “D” πχ “D2” μεγαλύτερη από 70 τότε στο “I2” θα επιστρέφει την τιμή του “D2” ενώ αν είναι μικρότερη να προσθέτει ένα 5% στην τιμή του “D2” με την προϋπόθεση όμως ότι το “G2” είναι πάνω από 11%
2. Αν η τιμή πχ στο “G2” είναι 10% τότε να προσθέτει ένα επιπλέον 5% ανεξάρτητα της τιμής στο “D2”
3. Αν η τιμή πχ στο “G2” είναι 0% τότε να προσθέτει ένα επιπλέον 10%
ανεξάρτητα της τιμής στο “D2”
Χρησιμοποιώ το Ελληνικό Excel 2007 σε Win10
Για κάθε πληροφορία ή διευκρίνιση είμαι στην διάθεσή σας.
Ευχαριστώ,
Γιώργος

ChrisGT7 19-01-17 22:45

Στο κελί I2 γράψε την παρακάτω συνάρτηση:
=IF($G2=0;$D2*1,1;IF($G2=0,1;$D2*1,05;IF($D2>70;$D 2;IF($G2>0,11;$D2*1,05))))

η οποία κάνει τα παρακάτω:
Αν G2=0%, τότε αυξάνει το D2 κατά 10%,
αλλιώς αν G2=10%, τότε αυξάνει το D2 κατά 5%,
αλλιώς αν D2>70, τότε επιστρέφει την τιμή του D2,
αλλιώς αν G2>11%, τότε αυξάνει το D2 κατά 5%.

Σύμφωνα με τα κριτήρια που θέτεις, το αποτέλεσμα είναι FALSE στα άλλα δύο κελιά της στήλης I, γιατί το ποσοστό στη στήλη G προέρχεται από τύπο και δεν είναι ακριβώς 0% ή 10%. Οπότε θα πρέπει να δεις το εναλλακτικό αποτέλεσμα σ' αυτήν την περίπτωση.

GEORGE1 19-01-17 23:37

1 Συνημμένο(α)
Ευχαριστώ ChrisGT7 για την άμεση απάντηση, :thanks:

Εφαρμόζοντας την συνάρτηση (την διόρθωσα λίγο ως προς τα ποσοστά και ένα D2 που είχε ένα κενό μεταξύ του D και του 2) και δουλεύει σωστά όπως θα δεις και στο επισυναπτόμενο αρχείο στις γραμμές από 7 έως 17. Όταν όμως το εφάρμοσα στις γραμμές 20-22 δούλεψε μόνο στην 20 ενώ στις 21 & 22 επιστρέφει FALSE …

Θα μπορούσες να ρίξεις μια ματιά ???

Γιώργος

ChrisGT7 19-01-17 23:50

Επιστρέψει FALSE για τον ίδιο λόγο, όπως και προηγουμένως:

Το 0% και 10% προέρχονται από τύπο και "εμφανισιακά" μπορεί να φαίνονται ως 0 και 10 αλλά στην πραγματικότητα είναι οι αριθμοί -0,110028653295124% και 10,0137123745819% αντίστοιχα, οπότε ο τύπος δεν μπορεί να τα πιάσει σύμφωνα με τα κριτήρια που του δώσαμε. Στις γραμμές 7-17 έχεις βάλεις τα ποσοστά με το χέρι, οπότε δεν υπάρχει πρόβλημα.

Θα σου πρότεινα τη συνάρτηση ROUND() σε αποτελέσματα που επιστρέφουν τόσα πολλά δεκαδικά. Δηλαδή: =ROUND(1-(F21/E21);2) και =ROUND(1-(F22/E22);2) αντίστοιχα στα κελιά G21 και G22.

GEORGE1 19-01-17 23:53

Και πάλι ευχαριστώ,

Το δοκιμάζω και επιστρέφω ...

Γιώργος

GEORGE1 19-01-17 23:57

Διορθώθηκε !!! :yahoo:

Ευχαριστώ πολύ ChrisGT7 για την άμεση ανταπόκριση :thanks::thanks::thanks:

Γιώργος

Spirosgr 20-01-17 08:32

Καλημέρα.
Πριν δούμε κάποιο τύπο, θα πρέπει να επανεξετάσεις τα όρια σου, γιατί έχουν «κενά»..
1
«Αν η τιμή στο ανάλογο κελί της “D” πχ “D2” μεγαλύτερη από 70 τότε στο “I2” θα επιστρέφει την τιμή του “D2” ενώ αν είναι μικρότερη ...»

Αν είναι =70; τι...

«με την προϋπόθεση όμως ότι το “G2” είναι πάνω από 11%...»

Αν είναι =11%; τι...
2
«Αν η τιμή πχ στο “G2” είναι 10% τότε να προσθέτει ένα ...»

Αν είναι μεταξύ 10% και 11%; τι...
3
«Αν η τιμή πχ στο “G2” είναι 0% τότε να προσθέτει...»

Αν είναι μεταξύ 0% και 10%; τι...

GEORGE1 20-01-17 09:47

Καλημέρα Σπύρο,

Ευχαριστώ για τις εύστοχες επισημάνσεις - παρατηρήσεις σου , θα επανέλθω σε λίγο με περισσότερες λεπτομέρειες .

Γιώργος

GEORGE1 20-01-17 12:52

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

Αρχική Δημοσίευση από Spirosgr (Μήνυμα 25161)
Καλημέρα.
Πριν δούμε κάποιο τύπο, θα πρέπει να επανεξετάσεις τα όρια σου, γιατί έχουν «κενά»..
1
«Αν η τιμή στο ανάλογο κελί της “D” πχ “D2” μεγαλύτερη από 70 τότε στο “I2” θα επιστρέφει την τιμή του “D2” ενώ αν είναι μικρότερη ...»

Αν είναι =70; τι...

«με την προϋπόθεση όμως ότι το “G2” είναι πάνω από 11%...»

Αν είναι =11%; τι...
2
«Αν η τιμή πχ στο “G2” είναι 10% τότε να προσθέτει ένα ...»

Αν είναι μεταξύ 10% και 11%; τι...
3
«Αν η τιμή πχ στο “G2” είναι 0% τότε να προσθέτει...»

Αν είναι μεταξύ 0% και 10%; τι...


Λοιπόν ,

Θέλουμε η τιμή στην στήλη “I” να διαμορφώνεται από την τιμή της στήλης “D” σε συνάρτηση με την τιμή στην στήλη “G”

Παραδοχή πρώτη , σε όλες τις τιμές της στήλης “D” που είναι μικρότερες και ίσες με 69,99 να προσθέτει ένα 5% στην στήλη ”I” (άλλως δηλαδή πάνω από 69,99 στην “D”) να επιστρέφει την τιμή της στήλης “D”

Παραδοχή δεύτερη , αν η τιμή στην στήλη “G” είναι ίση με 0% να προσθέτει επιπλέον ένα 10% (δηλαδή 5% από την πρώτη παραδοχή + 10% = 15% για ποσά μέχρι 69,99 και μόνο 10% για ποσά πάνω από 69,99) της τιμής στην στήλη ”D”

Παραδοχή τρίτη , αν η τιμή στην στήλη “G” είναι ίση με 10% να προσθέτει επιπλέον ένα 5% (δηλαδή 5% από την πρώτη παραδοχή + 5% = 10% για ποσά μέχρι 69,99 και 5% για ποσά πάνω από 69,99) της τιμής στην στήλη ”D”

Ενδιάμεσες τιμές της στήλης ”G” εκτός από τις : 0%, 10%, 25% προς το παρόν δεν υπάρχουν , οπότε το πάνω από 10% θα πρέπει να συμπεριφέρεται όπως και το 25% …

Ο γενικός κανόνας είναι : α) ότι είναι ίσο και μικρότερο από 69,99 στην “D” επιβαρύνεται στην “I” με ένα 5% , ότι είναι ίσο και μεγαλύτερο από 70,00 στην “D” μεταφέρεται στην “I” ως έχει, β) αν η τιμή στο “G” είναι 0% τότε όλα έχουν (επιπλέον της προηγούμενης που περιγράφετε στην α περίπτωση) επιβάρυνση + 10% και γ) αν η τιμή στο “G” είναι 10% τότε όλα έχουν (επιπλέον της προηγούμενης που περιγράφετε στην α περίπτωση) επιβάρυνση + 5%

Ελπίζω ότι τα έχω γράψει - αποτυπώσει σωστά , αν όχι πάλι εδώ είμαι …

Από την προηγούμενη υλοποίηση, όπως θα δεις και στο συνημμένο αρχείο, κοιτάζοντας καλύτερα βλέπω ότι υπάρχει πρόβλημα στις γραμμές 7 & 8 …

Ευχαριστώ για την βοήθεια,

Γιώργος :wink:

ChrisGT7 20-01-17 20:03

Δοκίμασε την παρακάτω συνάρτηση στο I2:
=IF($G2=0;IF($D2<=69,99;$D2*1,05;$D2)+$D2*0,1;IF($ G2=0,1;IF($D2<=69,99;$D2*1,05;$D2)+$D2*0,05;IF($D2 <=69,99;$D2*1,05;$D2)))

Αν κατάλαβα καλά από το παράδειγμα στις γραμμές 7-17 και λέγοντας "οπότε το πάνω από 10% θα πρέπει να συμπεριφέρεται όπως και το 25% …", θεώρησα ότι μόνο οι αριθμοί που είναι μικρότεροι ή ίσοι του 69,99 θα πάρουν μια επιβάρυνση 5%.

Ελπίζω να το "πιάσαμε" αυτή τη φορά. :)

GEORGE1 20-01-17 20:29

Καλησπέρα Χρήστο,

Πράγματι το πιάσαμε !!!! :yahoo:

Θα το δεις και στο συνημμένο αρχείο !

Σε ευχαριστώ πολύ και πάλι, :thanks:


Γιώργος

GEORGE1 21-01-17 14:45

1 Συνημμένο(α)
Αυτό είναι το νέο τελικό αρχείο !!!

Το κανονικό έχει πάνω από 5.000 εγγραφές ...

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

Γιώργος :thanks:

Spirosgr 23-01-17 09:55

Καλημέρα
Έχω μια ερώτηση-ένσταση

50,00..........0%..........57,50 €..........5%+10%

Σε μια περίπτωση σαν κι αυτή,
με βάση τον τρόπο που το θέτεις (5+10) το αποτέλεσμα δεν είναι σωστό.

Είναι 5% επί του 50 + άλλο ένα 10% επί του αποτελέσματος = 57,75

Το 57,50 είναι αποτέλεσμα του 50 + 15%

GEORGE1 23-01-17 10:38

Καλημέρα Σπύρο,

Το αποτέλεσμα είναι σωστό 57,50, διότι όλα τα ποσοστά υπολογίζονται επί του αρχικού ποσού δηλαδή στο παράδειγμα 50,00 € ……. 0% τότε έχουμε 50,00 * 5% (50,00*5% = 2,50) + 10% (50,00*10%=5,00) = 50,00 + (2,50+5,00) = 57,50

Ίσως δεν το είχα θέσει σωστά από την αρχή …

Ευχαριστώ πολύ και πάλι :001_smile:

andreaspatra 05-04-17 10:16

1 Συνημμένο(α)
Καλημέρα σας και καλώς σας βρήκα. Για τη περίπτωση των πολλαπλών IF, έχω την επισυναπτόμενη απλή λίστα όπου στο φύλλο 2 επιλέγω από τη λίστα το όνομα του εργαζομένου και μου φέρνει αυτόματα το ποσό του ημερομησθίου. Η συγκεκριμένη περίπτωση είναι εύκολη με δεδομένο ότι ο αριθμός των εργαζομένων είναι μικρός, οπότε και η σύνταξη του IF τύπου εύκολος. Στη περίπτωση όμως που οι εργαζόμενοι είναι εκατοντάδες και η λίστα με τα δεδομένα στο φύλλο 1 είναι μακρυά, αυτό σημαίνει ότι θα πρέπει να βάλω στο τύπο μου ανάλογα εκατοντάδες IF περιπτώσεις ή υπάρχει κάποιος τύπος που μπορεί να κάνει αναζήτηση και να φέρει το ανάλογο ποσό;

Spirosgr 05-04-17 14:20

Ανδρέα καλώς όρισες στο ms-office.gr

Καμία σχέση η =IF()
Εδώ δουλεύεις με =INDEX() & =MATCH()

andreaspatra 05-04-17 21:34

Σε ευχαριστώ για το καλωσόρισμα και για την απάντηση. Τελικά νομίζω ότι τη πιο απλή και όπως δείχνει καλή και αξιόπιστη λύση για τη δικιά μου περίπτωση τη βρήκα με την =VLOOKUP().

Spirosgr 05-04-17 21:38

Ναι οκ, σωστό.
Αλλά έχουμε πεί πολλές φορές στο forum, σχετικά με τα «ελαττώματα» της vlookup...

andreaspatra 07-04-17 09:15

Η αλήθεια είναι ότι ως νέος εδώ, δεν έχω προλάβει να δει τα σχετικά σχόλια που αναφέρεσαι. Σε ευχαριστώ πάντως, θα κάνω μια αναζήτηση να δω ποια είναι αυτά.


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

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


Search Engine Optimization by vBSEO 3.3.2