Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 70510 Skopiuj do schowka Jeżeli wartość spadnie poniżej 20% to.., poniżej 10% to..
Autor Wiadomość
stingtanner
ExcelGaduła 500+


Wersja: Win Office 2013
Pomógł: 6 razy
Posty: 543
Wysłany: 25-03-2021, 09:55   Jeżeli wartość spadnie poniżej 20% to.., poniżej 10% to..

Witajcie

Potrzebuje rozwiązania, które obliczy mi biorąc pod uwagę 2 kolumny, czy dana wartość z kolumny "Stan", spadła poniżej wartości procentowej np. 10% biorąc po uwagę wartość 2 kolumny "Potrzeba".

Trójstopniowa skala.

Czyli jeśli "Stan" większy o 30% wartości z kolumny "Potrzeba" wtedy pojawi się tekst "Zielony", jeśli poniżej 20% to "Żółty", poniżej 10% "Czerwony"

Nie chcę tu formatowania warunkowego, bo dalsza obróbka idzie do Userformy.

Wartosc ponizej procentu.xlsx
Pobierz Plik ściągnięto 12 raz(y) 15.49 KB

ID posta: 402727 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 3139 razy
Posty: 10389
Wysłany: 25-03-2021, 10:25   

Wydaje się, że w ten sposób
Kod:
=JEŻELI(N2<J2*0,1;"Czerwony";JEŻELI(N2<=J2*0,2;"Żółty";"Zielony"))
Jeżeli wynik będzie potem przetwarzany, to raczej zastosowałbym wartości liczbowe zamiast tekstów.

Ale jak znam życie, fachowcy znajdą Ci jeszcze lepszą formułę. :-)

Artik
_________________
Persistence is a virtue in the world of programming.
ID posta: 402729 Skopiuj do schowka
 
 
umiejead 
Excel Expert


Wersja: Win Office 2013
Pomógł: 797 razy
Posty: 4311
Wysłany: 25-03-2021, 13:08   

"Jak to zrobić?" >> VBA.
1. Przestawiłem przedziały:<10%; 10%-20%; >20%.
2. Zamieniłem teksty na liczby.
3. Dodałem kolory.
4. Pustą komórkę "Potrzeba" kod traktuje jako 0 - niezależnie ile jest na stanie pojawi się 3 na zielonym tle.
5. Na potrzebę testu dodałem wartości w wierszu 36.
Kod:
Private Sub CommandButton1_Click()
Dim i&, d&, proc As Double

d = Cells(Rows.Count, "J").End(xlUp).Row

For i = 2 To d
    If Cells(i, 10).Value = 0 Then
        Cells(i, 17).Value = 3
        Cells(i, 17).Interior.Color = vbGreen
    Else
        proc = Cells(i, 14).Value / Cells(i, 10).Value
        Select Case proc
            Case Is >= 1.2
                Cells(i, 17).Value = 3
                Cells(i, 17).Interior.Color = vbGreen
            Case 1.1 To 1.2
                Cells(i, 17).Value = 2
                Cells(i, 17).Interior.Color = vbYellow
            Case Else
                Cells(i, 17).Value = 1
                Cells(i, 17).Interior.Color = vbRed
        End Select
    End If
Next i

End Sub


Wersja reagująca natychmiast na zmianę wartości komórki w kolumnie J lub N:
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i&, d&, proc As Double
Dim r As Range

Set r = Application.Union(Columns("J"), Columns("N"))

If Not Intersect(Target, r) Is Nothing Then

    d = Cells(Rows.Count, "J").End(xlUp).Row
   
    For i = 2 To d
        If Cells(i, 10).Value = 0 Then
            Cells(i, 17).Value = 3
            Cells(i, 17).Interior.Color = vbGreen
        Else
            proc = Cells(i, 14).Value / Cells(i, 10).Value
            Select Case proc
                Case Is >= 1.2
                    Cells(i, 17).Value = 3
                    Cells(i, 17).Interior.Color = vbGreen
                Case 1.1 To 1.2
                    Cells(i, 17).Value = 2
                    Cells(i, 17).Interior.Color = vbYellow
                Case Else
                    Cells(i, 17).Value = 1
                    Cells(i, 17).Interior.Color = vbRed
            End Select
        End If
    Next i
End If

End Sub


Wartosc ponizej procentu.xlsm
Pobierz Plik ściągnięto 6 raz(y) 22.44 KB

_________________
.
Jak poprawnie opisać problem: http://www.excelforum.pl/...ika-vt59262.htm
Chcesz precyzyjną odpowiedź - zadaj precyzyjne pytanie.
ID posta: 402742 Skopiuj do schowka
 
 
stingtanner
ExcelGaduła 500+


Wersja: Win Office 2013
Pomógł: 6 razy
Posty: 543
Wysłany: 26-03-2021, 06:59   

Artik,
Nie podejrzewałem Cię o takie formuły (w ogóle o jakiekolwiek formuły ;-) )

umiejead,
Dziękuję za propozycję.

Jak teraz patrzę to wydaje się to proste :-)
ID posta: 402763 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 3139 razy
Posty: 10389
Wysłany: 27-03-2021, 00:09   

stingtanner napisał/a:
Nie podejrzewałem Cię o takie formuły
Kochany, nie takie rzeczy potrafię, np. umiem też używać SUMA(). :mrgreen:

Jednak na moje
Artik napisał/a:
Ale jak znam życie, fachowcy znajdą Ci jeszcze lepszą formułę.
jakoś brak innych propozycji. Czyżbym wymyślił coś genialnego :?: :mrgreen:

Ale, ale...
Teraz patrzę na makro umiejeada
Cytat:
Kod:
            Select Case proc
                Case Is >= 1.2
                    (...) vbGreen
                Case 1.1 To 1.2
                    (...) vbYellow
Czas zdecydować, czy dokładnie 20% to zielony, czy żółty. Bo teraz jest zielony. I zawsze będzie gdyż Is >= 1.2 jest pierwsze.
Raczej nie powinno się doprowadzać do takich niejednoznaczności w zapisie.
Równie dobrze można byłoby ułożyć tak:
Kod:
            Case Is < 1.1
              (...) vbRed
            Case Is < 1.2
              (...) vbYellow
            Case Else
              (...) vbGreen

Jednak ja święty też nie jestem.
Zadanie mówiło m.in.
Cytat:
jeśli poniżej 20% to "Żółty"
Czyli w formule powinno być
Kod:
(...);JEŻELI(N2<J2*0,2;"Żółty";(...)


Artik
_________________
Persistence is a virtue in the world of programming.
ID posta: 402794 Skopiuj do schowka
 
 
stingtanner
ExcelGaduła 500+


Wersja: Win Office 2013
Pomógł: 6 razy
Posty: 543
Wysłany: 27-03-2021, 12:31   

Panowie temat ogarnięty, pokazaliście mi kierunek.
Rozwiązanie wdrożone, kolory zamienione na ikonki unicode, ładnie obrazują stany.
Dziekuje
ID posta: 402829 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe