Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [Συναρτήσεις] Συνάρτηση υπολογισμού μερικού αθροίσματος

Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ.

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 25-06-13, 19:52
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 25-06-2013
Μηνύματα: 232
Προεπιλογή Συνάρτηση υπολογισμού μερικού αθροίσματος

Γεια σε όλους.
Έχω στο Excel 2010 τις στήλες Α1:Α1000 και Β1:Β1000. Τα κελιά στις δυο αυτές στήλες περιέχουν όλων των τύπων τα δεδομένα. Ειδικότερα περιέχουν αριθμούς, ή κείμενο ή είναι άδεια ή (που δυσκολεύει και την όλη κατάσταση) περιέχουν σφάλματα όπως διαίρεση με το 0, #DIV/0!, #NAME?, κλπ.
Υπάρχει τρόπος στο κελί C1, να υπολογίζω το άθροισμα των θετικών αριθμών της στήλης Β1:Β1000, αλλά μόνο στην περίπτωση που και τα αντίστοιχα γειτονικά κελιά της στήλης Α1:Α1000, περιέχουν και αυτά θετικούς αριθμούς;
Ευχαριστώ.
Απάντηση με παράθεση
  #2  
Παλιά 26-06-13, 07:16
Το avatar του χρήστη gr8styl
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 758
Προεπιλογή

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

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

{=SUMPRODUCT(IF(ISNUMBER(A1:A1000); (A1:A1000>0)*(A1:A1000); 0); IF(ISNUMBER(B1:B1000); (B1:B1000>0)*(B1:B1000); 0))}
Απάντηση με παράθεση
  #3  
Παλιά 26-06-13, 10:05
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

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

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

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

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

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

Με εκτίμηση

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #4  
Παλιά 26-06-13, 18:14
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

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

Για εκδόσεις του 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)))

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

Τελευταία επεξεργασία από το χρήστη kapetang : 26-06-13 στις 19:04. Αιτία: προσθήκη 2ου τύπου
Απάντηση με παράθεση
  #5  
Παλιά 26-06-13, 20:02
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 25-06-2013
Μηνύματα: 232
Προεπιλογή

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

Ευχαριστώ.
Απάντηση με παράθεση
  #6  
Παλιά 28-06-13, 06:37
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 25-06-2013
Μηνύματα: 232
Προεπιλογή Αποτελέσματα δοκιμών των συναρτήσεων

Καλημέρα σε όλους

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

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

=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")
δούλεψε κανονικά με όλες τις συνθήκες.

Σας ευχαριστώ όλους
Απάντηση με παράθεση
  #7  
Παλιά 28-06-13, 09:14
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

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

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

Φιλικά/Γιώργος
Απάντηση με παράθεση
  #8  
Παλιά 28-06-13, 18:49
Το avatar του χρήστη gr8styl
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 758
Προεπιλογή

Γιώργο,
έχεις δίκιο για τον τύπο που σου πρότεινα.
Εκ παραδρομής υπολόγισα το άθροισμα του γινομένου ΣAi*Bi
απλά άλλαξε το (A1:A1000>0)*(A1:A1000) σε (A1:A1000>0)*1
όσο για τους τύπους του Γιώργου (kapetang) δουλεύουν σωστά αν καταχωρηθούν σαν τύποι πίνακα (Ctrl+Shift+Enter).
Απάντηση με παράθεση
  #9  
Παλιά 28-06-13, 21:29
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 25-06-2013
Μηνύματα: 232
Προεπιλογή

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

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

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

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

Ευχαριστώ όλους.
Απάντηση με παράθεση
  #10  
Παλιά 29-06-13, 09:05
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από George R Εμφάνιση μηνυμάτων
Όντως όλες οι συναρτήσεις δουλεύουν με αυτές τις αλλαγές.

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

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

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

Ευχαριστώ όλους.
Καλημέρα

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

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

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

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

Φιλικά/Γιώργος
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Συναρτήσεις] Θέλω να αφήσω εκτός υπολογισμού Σαββατοκύριακα και επίσημες αργίες dikatsu Excel - Ερωτήσεις / Απαντήσεις 4 04-07-16 19:02
[ Ερωτήματα ] Ερωτημα υπολογισμού steliosgr Access - Ερωτήσεις / Απαντήσεις 2 09-01-16 16:44
[ Ερωτήματα ] ΕΜΦΑΝΙΣΗ ΑΘΡΟΙΣΜΑΤΟΣ ΑΠΟ ΠΙΝΑΚΑ Alexandraadami Access - Ερωτήσεις / Απαντήσεις 11 22-07-15 09:57
[Γενικά] Λήψη δεδομένων από πολλά φύλλα υπολογισμού Χρήστος 79 Excel - Ερωτήσεις / Απαντήσεις 3 12-01-14 12:06
[ Φόρμες ] Αποθήκευση ενός πεδίου αθροίσματος σε άλλο πεδίο !!! artchrist73 Access - Ερωτήσεις / Απαντήσεις 3 11-04-13 06:32


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