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.

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

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

George R 29-06-13 22:37

Ωραία, τώρα που απαντήθηκε το θέμα κάνουμε κάτι άλλο για να το κλείσουμε ή αυτό το κάνουν οι Admin;

Tasos 29-06-13 23:00

Καλησπέρα Γιώργο!

Μπορείς να κλείσεις το θέμα που άνοιξες αφού κρίνεις ότι οι απαντήσεις σε κάλυψαν.

Εάν το θέμα παραμείνει ανοιχτό, θα κλείσει αυτόματα μετά από 15 ημέρες αδράνειας.

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

Με εκτίμηση

Τάσος

Spirosgr 30-06-13 09:02

1 Συνημμένο(α)
Καλημέρα
Το βιβλίο που ακολουθεί περιέχει 2 παραδείγματα για το ζητούμενο με χρήση IF το πρώτο και SUMIFS ( excel 2007 και νεώτερο ) το δεύτερο
Χρησιμοποιήθηκε και η συνάρτηση CELL με σκοπό να μπει σαν κριτήριο και η περίπτωση ημερομηνίας για κάποιον που θα το χρειαστεί
Το άθροισμα το οποίο αποδίδεται είναι από την 2 η στήλη ( θετικός ) εφ' όσον στην 1 η υπάρχει θετικός παραβλέποντας κείμενο, κενά, αρνητικούς, ημερομηνίες
Περισσότερα και αναλυτικά στο βιβλίο
Καλή συνέχεια!

George R 02-07-13 06:22

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


Η ώρα είναι 17:39.

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


Search Engine Optimization by vBSEO 3.3.2