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/6582-athroisma-timon-poy-periexoyn-simbolo-toy.html)

gfevran 07-11-24 09:28

άθροισμα τιμών που περιέχουν σύμβολο του €
 
1 Συνημμένο(α)
Καλημέρα.
Πως αθροίζω σε μια στήλη με τιμές που περιέχουν το σύμβολο του "€"
Χρήστο καλημέρα.
αναζητώντας τη λύση πρόσεξα ότι σε παλαιότερη ανάρτηση είχα ζητήσει βοήθεια λύση μου έδωσες εσύ
εδώ:
Public Function Eval(Rng As Range) As Currency
Eval = Evaluate("SUM(" & Replace(Replace(Rng, "€", ""), ",", ".") & ")")
End Function

Έβαλα στο module1 την πιο πάνω συνάρτηση αλλά δεν δούλεψε
δες Φύλλο2
Συνημμένο

gfevran 07-11-24 10:15

Είναι σε μορφή Νομισματική
ανέβασα συνημμένο πιο πάνω!

ChrisGT7 07-11-24 10:40

Καλημέρα Γιώργο,

Η παραπάνω συνάρτηση Eval() αναφέρεται σε εύρος κελιών.

Τι ακριβώς θέλεις να προσθέσεις; Τιμές από το Listbox; Γιατί τότε χρειαζόμαστε λίγο διαφορετική προσέγγιση.

gfevran 07-11-24 14:40

Καλησπέρα Χρήστο.
Θέλω να αθροίσω σε μια στήλη, (E2:E100) που περιέχει αριθμητικές τιμές ακολουθούμενες με το σύμβολο του €
π.χ. Ε2 10€ έως :Ε20 και να πάρω το αποτέλεσμα του αθροίσματος στο κελί D1
δες στο πιο πάνω στο συνημμένο στο φύλλο2 στο κελί D1 που βγαίνει σφάλμα #ΤΙΜΗ!
όταν υπάρχει το σύμβολο του € δεν μου κάνει άθροιση, χωρίς αυτό βέβαια είναι μια απλή SUM

ChrisGT7 07-11-24 16:14

Αυτή η Eval() δέχεται μόνο ένα κελί ως εύρος και όχι πολλά.

Αντικατέστησε τον παλιό κώδικα της Eval() με τον παρακάτω να δεις αν έχεις σωστά αποτελέσματα:
Κώδικας:

Public Function Eval(Rng As Range) As Currency
    Dim MyCell As Range
    For Each MyCell In Rng
        Eval = Eval + Evaluate("SUM(" & Replace(Replace(MyCell, "€", ""), ",", ".") & ")")
    Next
End Function


gfevran 07-11-24 17:25

Καλησπέρα Χρήστο.
Θέλω να αθροίσω σε μια στήλη, (E2:E100) που περιέχει αριθμητικές τιμές ακολουθούμενες με το σύμβολο του €
π.χ. Ε2 10€ έως :Ε20 και να πάρω το αποτέλεσμα του αθροίσματος στο κελί D1
δες στο πιο πάνω στο συνημμένο στο φύλλο2 στο κελί D1 που βγαίνει σφάλμα #ΤΙΜΗ!
όταν υπάρχει το σύμβολο του € δεν μου κάνει άθροιση, χωρίς αυτό βέβαια είναι μια απλή SUM

ChrisGT7 07-11-24 19:11

Δοκίμασε αυτόν τον τροποποιημένο κώδικα για την Eval():
Κώδικας:

Public Function Eval(Rng As Range) As Currency
    Dim MyCell As Range, TtlSum As Currency
    For Each MyCell In Rng
        If Len(MyCell.Value) Then _
            If IsNumeric(Evaluate("SUBSTITUTE(" & MyCell.Address & ",""€"","""")") + 0) Then _
                TtlSum = TtlSum + Evaluate("SUBSTITUTE(" & MyCell.Address & ",""€"","""")")
    Next
    Eval = TtlSum
End Function

Επίσης, στο D1 δοκίμασε αυτόν τον τύπο:
Κώδικας:

=" Σύνολο: "&TEXT(Eval(E2:E100);"#.###0,00 €")
Υποθέτω πως τα δεδομένα στο Φύλλο2 γίνονται επικόλληση από κάποια εξωτική πηγή και γι' αυτό δεν θεωρούνται ως αριθμοί.

Θεωρώ όμως, στη στήλη Ε πως με μια απλή αντικατάσταση του "€" με τίποτα, οι τιμές θα γίνουν αριθμοί και με μια απλή SUM() έχεις το ίδιο αποτέλεσμα χωρίς να μπλέκεις με κώδικα.

gfevran 08-11-24 08:35

Καλημέρα Χρήστο,
με την τελευταία πρόταση σου δούλεψε τέλεια!
Σε υπερευχαριστώ.


Η ώρα είναι 19:00.

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


Search Engine Optimization by vBSEO 3.3.2