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/1358-athroisma-kelion.html)

manolis 10-09-11 09:02

Άθροισμα κελιών
 
1 Συνημμένο(α)
Καλημέρα σε όλη την παρέα

Σε ένα φύλλο έχω περίπου 5000 εγγραφες. Στην στήλη Ε είναι η αξία .
Θέλω να κάνω άθροιση μέχρι ένα ορισμένο ποσό.
Στο παράδειγμα που επισυνάπτω θέλω να κάνω άθροιση μέχρι το 330 . Αν δέν βγαίνει ακριβώς το νούμερο να γίνει η άθροιση μέχρι το κοντινότερο νούμερο , είτε προς τα πάνω , είτε προς τα κάτω και να μου δείχνει την τελευταία γραμμη των κελιών που έγινε η αθροιση .

Ευχαριστώ

Tasos 10-09-11 11:52

1 Συνημμένο(α)
Καλημέρα Μανώλη!

Σου προτείνω να δοκιμάσεις το συνημμένο παρακάτω (ανήκει στο θέμα http://www.ms-office.gr/forum/excel-...o-oroys-2.html με κάποιες οπτικές αλλαγές όμως).

Δοκίμασε και πες μας.

Φιλικά

Τάσος

kapetang 10-09-11 12:17

1 Συνημμένο(α)
Καλησπέρα, στην παρέα

Ενώ ετοίμαζα την απάντηση είδα την καταπληκτική λύση του Τάσου.
Μανώλη δεν ξέρω τι ακριβώς θέλεις. Υπάρχουν δύο ενδεχόμενα:
1. Από ένα σύνολο αριθμών να επιλέγουμε μία ομάδα που το άθροισμά τους θα πλησιάζει περισσότερο σε έναν αριθμό στόχο.
2. Σε μία στήλη αριθμών να αθροίζουμε από την αρχή μέχρι το άθροισμα να πλησιάσει περισσότερο σε έναν αριθμό στόχο.
Η δική μου προσέγγιση αναφέρεται στη δεύτερη περίπτωση.
Στο αρχείο, που επισυνάπτω υπάρχουν δύο προσεγγίσεις στο ζητούμενο.
Η πρώτη περιγράφει αναλυτικά τα βήματα για να πετύχουμε μία λύση (να βρούμε το κελί μέχρι το οποίο θα γίνει η άθροιση και το άθροισμα).
Η δεύτερη είναι αυτοματοποιημένη και βασίζεται σε μία προσαρμοσμένη συνάρτηση, που δημιούργησα με VBA.

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

manolis 10-09-11 12:46

Γεια σας και πάλι

Γιώργο παροτι δεν εξήγησα καλά το ζητουμενο μου:wall: εσυ το έπιασες :thumbup1:
αυτό είναι που ήθελα
Παράθεση:

2. Σε μία στήλη αριθμών να αθροίζουμε από την αρχή μέχρι το άθροισμα να πλησιάσει περισσότερο σε έναν αριθμό στόχο.
Το δοκίμασα στο αρχείο μου και δούλεψε μια χαρά

Βέβαια ο δάσκαλος για άλλη μια φορά μας άφησε κατάπληκτους :worthy: με το αρχείο που έφτιαξε και ίσως λάβει υπόψη και την παραπάνω παράμετρο και το βελτιώσει

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

Φιλικά
Μανώλης

Tasos 10-09-11 15:13

1 Συνημμένο(α)
Καλησπέρα σε όλους!

Γιώργο, πάρα πολύ έξυπνη η λύση σου!

Μανώλη, θέλεις βρεις σε ποιο κελί θα σταματήσει να αθροίσει η Excel προκειμένου να βρεθεί η πλησιέστερη προς το ζητούμενο τιμή (330)
όταν προσθέτεις αριθμούς από μια λίστα με κατεύθυνση από επάνω προς τα κάτω.

Αν κατάλαβα σωστά τότε δες άλλη μια πρόταση στο συνημμένο παρακάτω.

Φιλικά

Τάσος

kapetang 10-09-11 18:18

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

Τάσο διδάσκεις.
Έψαχνα να βρω πώς κάνοντας κλικ σ’ ένα κελί θα μεταφερθούμε σε άλλο και δε σκέφτηκα τις υπερσυνδέσεις.
Δοκιμάζοντας την προσαρμοσμένη συνάρτηση με τα δεδομένα του Τάσου διαπίστωσα ότι δε δίνει σωστά αποτελέσματα.
Υπάρχει μία αβλεψία. Αντέγραψα τον κώδικα της IF στην πρόταση ELSE, αλλά ξέχασα να τον προσαρμόσω.
Ο σωστός κώδικας είναι ο παρακάτω:
Κώδικας:

Public Function SumToTarget(Target As Range, SumRange As Range) As String
    Dim c As Range, Sum1 As Double, Sum2 As Double, j As Long
    Sum1 = 0: j = 0
    For Each c In SumRange
        Sum2 = Sum1 + c.Value: j = j + 1
        If Sum2 >= Target.Value Then Exit For
        Sum1 = Sum2
    Next
    If (Target.Value - Sum1) < (Sum2 - Target.Value) Then
        SumToTarget = SumRange.Cells(j - 1, 1).Address
    Else
        SumToTarget = SumRange.Cells(j, 1).Address
    End If
End Function

Τέλος άλλαξα και το συνημμένο στο προηγούμενο μήνυμά μου.

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


Η ώρα είναι 07:36.

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


Search Engine Optimization by vBSEO 3.3.2