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/2594-synartisi-ypologismoi-merikoi-athroismatos.html)

George R 25-06-13 19:52

Συνάρτηση υπολογισμού μερικού αθροίσματος
 
Γεια σε όλους.
Έχω στο Excel 2010 τις στήλες Α1:Α1000 και Β1:Β1000. Τα κελιά στις δυο αυτές στήλες περιέχουν όλων των τύπων τα δεδομένα. Ειδικότερα περιέχουν αριθμούς, ή κείμενο ή είναι άδεια ή (που δυσκολεύει και την όλη κατάσταση) περιέχουν σφάλματα όπως διαίρεση με το 0, #DIV/0!, #NAME?, κλπ.
Υπάρχει τρόπος στο κελί C1, να υπολογίζω το άθροισμα των θετικών αριθμών της στήλης Β1:Β1000, αλλά μόνο στην περίπτωση που και τα αντίστοιχα γειτονικά κελιά της στήλης Α1:Α1000, περιέχουν και αυτά θετικούς αριθμούς;
Ευχαριστώ.

gr8styl 26-06-13 07:16

Φίλε Γιώργο,
Καλημέρα και καλώς όρισες στην παρέα μας.

Δοκίμασε τον τύπο πίνακα (κλείνεις με Ctrl+Shift+Enter):

{=SUMPRODUCT(IF(ISNUMBER(A1:A1000); (A1:A1000>0)*(A1:A1000); 0); IF(ISNUMBER(B1:B1000); (B1:B1000>0)*(B1:B1000); 0))}

Tasos 26-06-13 10:05

Καλημέρα Γιώργο και καλωσόρισες στο φόρουμ!

Για εκδόσεις Excel μεγαλύτερες του 2003 μπορεί να χρησιμοποιηθεί ο τύπος :

=SUMIFS(B1:B1000;A1:A1000;">=0";B1:B1000;">=0")

με την προϋπόθεση ότι στις στήλες αυτές δεν υπάρχουν ημερομηνίες.

Καλή συνέχεια!

Με εκτίμηση

Τάσος

kapetang 26-06-13 18:14

Καλησπέρα στην παρέα

Για εκδόσεις του excel πριν από την 2007 θα πρότεινα τον τύπο πίνακα:

=SUM(IF(ISERROR(A1:A1000>0)+ISERROR(B1:B1000>0)=0; (A1:A1000>0)*(B1:B1000>0)*(B1:B1000)))

και: =SUM(IF(ISNUMBER(A1:A1000)*ISNUMBER(B1:B1000);(A1: A1000>0)*(B1:B1000>0)*(B1:B1000)))

Φιλικά/Γιώργος

George R 26-06-13 20:02

Ευχαριστώ πολύ όλους σας για τις άμεσες απαντήσεις σας.
Θα δοκιμάσω όλες τις προτεινόμενες λύσεις και θα αναφέρω τα αποτελέσματα σύντομα.

Ευχαριστώ.

George R 28-06-13 06:37

Αποτελέσματα δοκιμών των συναρτήσεων
 
Καλημέρα σε όλους

Κοίταξα και έκανα δοκιμές με όλες τις παραπάνω συναρτήσεις. Τα αποτελέσματα ήταν:

Οι συναρτήσεις

=SUM(IF(ISERROR(A1:A1000>0)+ISERROR(B1:B1000>0)=0; (A1:A1000>0)*(B1:B1000>0)*(B1:B1000)))

και

=SUM(IF(ISNUMBER(A1:A1000)*ISNUMBER(B1:B1000);(A1: A1000>0)*(B1:B1000>0)*(B1:B1000)))

Βγάζουν 0 σταθερά

Η συνάρτηση

{=SUMPRODUCT(IF(ISNUMBER(A1:A1000); (A1:A1000>0)*(A1:A1000); 0); IF(ISNUMBER(B1:B1000); (B1:B1000>0)*(B1:B1000); 0))}

Λαμβάνει μεν υπόψιν της τους αριθμούς της στήλης Β1:Β1000 με τις συνθήκες που θέλουμε, αλλά μετά τους πολλαπλασιάζει με τους γειτονικούς Ai και αθροίζει τα γινόμενα. Δεν βγάζει δηλαδή μόνο το άθροισμα των Bi. Μοιάζει να λειτουργεί σαν την απλή μορφή της SUMPRODUCT().

Πάντως οι παραπάνω συναρτήσεις είναι ενδιαφέροντες και κάνω αλλαγές για να δω τα αποτελέσματα.

Η συνάρτηση του Τάσου

=SUMIFS(B1:B1000;A1:A1000;">=0";B1:B1000;">=0")
δούλεψε κανονικά με όλες τις συνθήκες.

Σας ευχαριστώ όλους

kapetang 28-06-13 09:14

Καλημέρα

Όπως γράφω στο μήνυμά μου οι συναρτήσεις που πρότεινα είναι τύπου πίνακα.

Δηλαδή αφού πληκτρολογηθούν θα πατηθεί ο συνδυασμός πλήκτρων Ctrl +Shift+ Enter ,ώστε να εγκλειστούν σε άγκιστρα.

Φιλικά/Γιώργος

gr8styl 28-06-13 18:49

Γιώργο,
έχεις δίκιο για τον τύπο που σου πρότεινα.
Εκ παραδρομής υπολόγισα το άθροισμα του γινομένου ΣAi*Bi
απλά άλλαξε το (A1:A1000>0)*(A1:A1000) σε (A1:A1000>0)*1
όσο για τους τύπους του Γιώργου (kapetang) δουλεύουν σωστά αν καταχωρηθούν σαν τύποι πίνακα (Ctrl+Shift+Enter).

George R 28-06-13 21:29

Όντως όλες οι συναρτήσεις δουλεύουν με αυτές τις αλλαγές.

Απλά η συνάρτηση:

=SUM(IF(ISERROR(A1:A1000>0)+ISERROR(B1:B1000>0)=0; (A1:A1000>0)*(B1:B1000>0)*(B1:B1000)))

φαίνεται να μην δουλεύει όταν τα κελιά περιέχουν απλό κείμενο, αν δεν υπάρχει κείμενο δουλεύει καλά.

Ευχαριστώ όλους.

kapetang 29-06-13 09:05

Παράθεση:

Αρχική Δημοσίευση από George R (Μήνυμα 15169)
Όντως όλες οι συναρτήσεις δουλεύουν με αυτές τις αλλαγές.

Απλά η συνάρτηση:

=SUM(IF(ISERROR(A1:A1000>0)+ISERROR(B1:B1000>0)=0; (A1:A1000>0)*(B1:B1000>0)*(B1:B1000)))

φαίνεται να μην δουλεύει όταν τα κελιά περιέχουν απλό κείμενο, αν δεν υπάρχει κείμενο δουλεύει καλά.

Ευχαριστώ όλους.

Καλημέρα

Γιώργο έχεις δίκιο.

Όταν πρότεινα τον τύπο πίστευα ότι η σύγκριση μιας τιμής κειμένου με το μηδέν θα επέστρεφε λάθος, όπως στην VBA.

Αυτό όμως δεν ισχύει στους τύπους του excel.

Εκεί οποιοδήποτε κείμενο, ακόμα και του μηδενικού μήκους (' ή =""), θεωρείται μεγαλύτερο από οποιοδήποτε αριθμό και δεν επιστρέφεται λάθος.

Φιλικά/Γιώργος


Η ώρα είναι 11:11.

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


Search Engine Optimization by vBSEO 3.3.2