Η ακόλουθη συνάρτηση υπολογίζει τη συνολική τιμή όλων των κελιών σε μια συγκεκριμένη περιοχή που έχουν ένα συγκεκριμένο χρώμα:
Δυστυχώς, δεν υπάρχει συνάρτηση SUMIF για άθροιση με βάση το χρώμα του κελιού. Εάν θέλετε να αθροίσετε ανά χρώμα, θα χρειαστεί να δημιουργήσετε μια συνάρτηση στο VBA.
Για να χρησιμοποιήσετε αυτόν τον κωδικό: Ανοίξτε το Visual Basic Editor (Alt + F11), Εισαγάγετε μια νέα μονάδα (Εισαγωγή> Ενότητα) και αντιγράψτε και επικολλήστε τον επιθυμητό κώδικα στη μονάδα.
Συνάρτηση στο άθροισμα κατά χρώμα
1234567891011121314151617181920 | Λειτουργία Color_By_Numbers (Color_Range As Range, Color_Index As Integer) Ως διπλό'Dim Color_By_Numbers As DoubleDim Cell«Θα εξετάσει τα κελιά που βρίσκονται στην περιοχή και αν«η ιδιότητα εσωτερικού χρώματος ταιριάζει με το απαιτούμενο χρώμα κελιούτότε θα αθροιστεί'Εμβέλεια Loop ThroughΓια κάθε κελί σε εύρος χρώματοςΑν (Cell.Interior.ColorIndex = Color_Index) ΤότεColor_By_Numbers = Color_By_Numbers + Cell.ValueΤέλος εανΕπόμενο κελίΛειτουργία Τέλους |
Αυτό είναι στην πραγματικότητα "άθροισμα ανά χρώμα" - οπότε αν γνωρίζετε την παλέτα 56 χρωμάτων του Excel και γνωρίζετε για παράδειγμα ότι το χρώμα 4 είναι ανοιχτό πράσινο τότε η ακόλουθη κλήση:
Color_By_Numbers ("A1: P20", 4)
θα αθροίσει τις τιμές για όλα τα κελιά της περιοχής A1: P20 που έχουν ανοιχτό πράσινο χρώμα.
Για να διευκολυνθεί η χρήση της συνάρτησης, η ακόλουθη υπορουτίνα θα υπολογίσει τη συνολική τιμή για καθένα από τα 56 χρώματα του excel. Δίνει επίσης ολόκληρη την παλάτα έτσι ώστε να είναι εύκολο να δείτε τον αριθμό ευρετηρίου για κάθε χρώμα.
Η υπορουτίνα επικαλείται στο φύλλο 1 και εξετάζει το εύρος
12345678910111213141516171819202122 | Private Sub CommandButton1_Click ()«Θα εξετάσει κάθε χρώμα και θα παράγει συνοπτικό πίνακα τιμώνστο φύλλο 1 στο κελί Α1 και κάτωΑσταθής τρέχουσα_Χρώμα_αριθμός ως ακέραιοςDim Color_Total As DoubleΓια Current_Color_Number = 1 έως 56Color_Total = Color_By_Numbers (Φύλλα ("Φύλλο2"). Εύρος ("a11: aa64"), Current_Color_Number)Φύλλα εργασίας ("Sheet1"). Εύρος ("A1"). Offset (Current_Color_Number, 0) = Current_Color_NumberΦύλλα εργασίας ("Sheet1"). Εύρος ("A1"). Offset (Current_Color_Number, 0) .Interior.ColorIndex = Current_Color_NumberΑν Color_Total 0# ΤότεΦύλλα εργασίας ("Sheet1"). Εύρος ("a1"). Offset (Current_Color_Number, 1). Value = Color_TotalΤέλος εανΕπόμενο Current_Color_NumberΤέλος υπο |
Για να κατεβάσετε το αρχείο XLS, κάντε κλικ εδώ