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/5988-athroisma-basi-xromatos-alloy-kelioi.html)

minas84 30-10-21 18:47

Άθροισμα Βάση χρώματος άλλου κελιού
 
1 Συνημμένο(α)
Kαλησπέρα έχω αυτό το test file που βάση ημερομηνίας μετράει πόσα κελιά απ' το κάθε χρώμα υπάρχουν "δίπλα" σε κάθε ημερομηνία.
Με τον παρακάτω κώδικα για κάθε ένα απ τα τρία χρώματα

Κώδικας:

Function DailyWin(MyColors As range, MyDates As range, Str As range) As Double
    Dim R  As Long: R = MyColors(1, 1).Row - MyDates(1, 1).Row
    Dim C  As Long: C = MyColors(1, 1).Column
    Dim Dt As range
   
    Application.Volatile
    With MyColors.Parent
        For Each Dt In MyDates
            If InStr(Dt.Value, Str.Value) Then
                If .Cells(Dt.Row + R, C).Interior.Color = RGB(198, 239, 206) Then
                    DailyWin = DailyWin + 1
                Else
                    DailyWin = DailyWin
                End If
            End If
        Next
    End With
End Function


Function DailyLost(MyColors As range, MyDates As range, Str As range) As Double
    Dim R  As Long: R = MyColors(1, 1).Row - MyDates(1, 1).Row
    Dim C  As Long: C = MyColors(1, 1).Column
    Dim Dt As range
   
    Application.Volatile
    With MyColors.Parent
        For Each Dt In MyDates
            If InStr(Dt.Value, Str.Value) Then
                If .Cells(Dt.Row + R, C).Interior.Color = RGB(255, 199, 206) Then
                    DailyLost = DailyLost + 1
                Else
                    DailyLost = DailyLost
                End If
            End If
        Next
    End With
End Function




Function DailyVoid(MyColors As range, MyDates As range, Str As range) As Double
    Dim R  As Long: R = MyColors(1, 1).Row - MyDates(1, 1).Row
    Dim C  As Long: C = MyColors(1, 1).Column
    Dim Dt As range
   
    Application.Volatile
    With MyColors.Parent
        For Each Dt In MyDates
            If InStr(Dt.Value, Str.Value) Then
                If .Cells(Dt.Row + R, C).Interior.Color = RGB(255, 235, 156) Then
                    DailyVoid = DailyVoid + 1
                Else
                    DailyVoid = DailyVoid
                End If
            End If
        Next
    End With

Θα ηθέλα να κάνω το ίδιο, αλλά αντί για ημερομηνιές να διαβάζει παλί χρώμα.

minas84 30-10-21 18:51

1 Συνημμένο(α)
Στο test2 φαίνεται πιο καθαρά αυτό που ζητάω. Ευχαριστώ πολύ για τον χρόνο σας!

kapetang 31-10-21 09:04

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

Δες το συνημμένο.

minas84 31-10-21 18:31

1 Συνημμένο(α)
Παράθεση:

Αρχική Δημοσίευση από kapetang (Μήνυμα 33167)
Καλημέρα

Δες το συνημμένο.

Υπέρ υπέρ ευχαριστώ! Και μια τελευταία ερώτηση, αν θέλω να κοιτάει 2 χρώματα;
Σαν το παρακάτω excel.

kapetang 31-10-21 23:06

1 Συνημμένο(α)
Μηνά, δες το συνημμένο.

Εφαρμόζω τη συνάρτηση 2 φορές (μία με τη στήλη Α και μία με τη Β) και αθροίζω τα αποτελέσματα.

Κάνε έλεγχο. Εγώ δεν τα πάω καλά με τα χρώματα.

minas84 01-11-21 07:57

Παράθεση:

Αρχική Δημοσίευση από kapetang (Μήνυμα 33174)
Μηνά, δες το συνημμένο.

Εφαρμόζω τη συνάρτηση 2 φορές (μία με τη στήλη Α και μία με τη Β) και αθροίζω τα αποτελέσματα.

Κάνε έλεγχο. Εγώ δεν τα πάω καλά με τα χρώματα.

Ευχαριστώ και πάλι για την απάντηση. Μάλλον όμως δεν εξήγησα καλά εγώ το τι θέλω να κάνω. Θέλω να ισχύουν και οι 2 ταυτόχρονα για "κοιτάξει" μετά το χρώμα της Ε και να αρχίσει να μετράει. Στο 1ο παράδειγμα δηλαδή να είναι πράσινο και το κελί της στήλης Α και της Β, στο 2ο να είναι πράσινο το Α και κόκκινο το Β και στο 3ο μπλε το Α και κόκκινο το Β.

kapetang 01-11-21 17:50

Καλησπέρα

Μηνά όταν χρησιμοποιούμε χρώματα και βασιζόμαστε σ’ αυτά για την εξαγωγή συγκεντρωτικών στοιχείων, έχουμε περιορισμένες δυνατότητες και συχνά οδηγούμαστε σε λύσεις με κώδικα.

Φυσικά υπάρχει και η περίπτωση να μη γίνονται αντιληπτά και σε κάποιους με αχρωματοψίες

Αν κατάλαβα καλά, έχεις κάποιες στήλες πχ A, B, C, D, κλπ με χρώματα και θέλεις το πλήθος των γραμμών που στη στήλη Α έχουν χρώμα Χα, στη στήλη Β Χβ, κλπ.

Θα σου πρότεινα το εξής:

Να δημιουργήσεις ένα πίνακα με όσες στήλες θέλεις και αντί να χρωματίζεις τα κελιά να καταχωρείς τα ονόματα των χρωμάτων (ΚΟΚΚΙΝΟ, ΠΡΑΣΙΝΟ, κλπ).

Για την ευκολία και την ακρίβεια της καταχώρησης οι τιμές να επιλέγονται από λίστα.

Αν θέλουμε χρώματα, μπορούμε να εφαρμόσουμε μορφοποίηση υπό όρους, ώστε αυτόματα τα κελιά με τη λέξη ΚΟΚΚΙΝΟ να χρωματίζονται κόκκινα, αυτά με τη λέξη ΚΙΤΡΙΝΟ κίτρινα, κλπ.

Αυτό μας δίνει μεγάλες δυνατότητες ταξινόμησης, εφαρμογής φίλτρων, εφαρμογής συγκεντρωτικών συναρτήσεων πχ CountIFs(), ακόμα και δημιουργίας συγκεντρωτικών πινάκων.

Έτσι αυτό που ζητάς, για παράδειγμα, θα μπορούσες να το πετύχεις χωρίς κώδικα με τη συνάρτηση CountIFs().

minas84 02-11-21 05:43

Παράθεση:

Αρχική Δημοσίευση από kapetang (Μήνυμα 33183)
Καλησπέρα

Μηνά όταν χρησιμοποιούμε χρώματα και βασιζόμαστε σ’ αυτά για την εξαγωγή συγκεντρωτικών στοιχείων, έχουμε περιορισμένες δυνατότητες και συχνά οδηγούμαστε σε λύσεις με κώδικα.

Φυσικά υπάρχει και η περίπτωση να μη γίνονται αντιληπτά και σε κάποιους με αχρωματοψίες

Αν κατάλαβα καλά, έχεις κάποιες στήλες πχ A, B, C, D, κλπ με χρώματα και θέλεις το πλήθος των γραμμών που στη στήλη Α έχουν χρώμα Χα, στη στήλη Β Χβ, κλπ.

Θα σου πρότεινα το εξής:

Να δημιουργήσεις ένα πίνακα με όσες στήλες θέλεις και αντί να χρωματίζεις τα κελιά να καταχωρείς τα ονόματα των χρωμάτων (ΚΟΚΚΙΝΟ, ΠΡΑΣΙΝΟ, κλπ).

Για την ευκολία και την ακρίβεια της καταχώρησης οι τιμές να επιλέγονται από λίστα.

Αν θέλουμε χρώματα, μπορούμε να εφαρμόσουμε μορφοποίηση υπό όρους, ώστε αυτόματα τα κελιά με τη λέξη ΚΟΚΚΙΝΟ να χρωματίζονται κόκκινα, αυτά με τη λέξη ΚΙΤΡΙΝΟ κίτρινα, κλπ.

Αυτό μας δίνει μεγάλες δυνατότητες ταξινόμησης, εφαρμογής φίλτρων, εφαρμογής συγκεντρωτικών συναρτήσεων πχ CountIFs(), ακόμα και δημιουργίας συγκεντρωτικών πινάκων.

Έτσι αυτό που ζητάς, για παράδειγμα, θα μπορούσες να το πετύχεις χωρίς κώδικα με τη συνάρτηση CountIFs().

Ok, θα το κοιτάξω, ευχαριστώ πολύ!


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

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


Search Engine Optimization by vBSEO 3.3.2