Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

EXCEL - formuła MOD największy dzielnik

michu14031 16 Jan 2017 23:33 1623 4
  • #1
    michu14031
    Level 14  
    Witam,
    czy ktoś może podpowie jakiej formuły użyć by przykładowo podzielić wartość
    dzieli i wypisuje pierwszą drugą wartość w kolejnej wolnej komórce( wartości jakie mogą być 1, 5, 10, 15, 20 i jej wielokrotność, oraz 200)

    150 = 140, 10
    25 = 20, 5
    13= 10, 3
    210=200, 10
  • Helpful post
    #2
    Prajz
    Level 1  
    Cześć,

    Ja bym to tak zrobił:
    w komórce A1: liczba
    w komórce B1: =JEŻELI(A1>=209;209;JEŻELI(A1>=200;200;JEŻELI(A1>=180;180;... itd. przez wszystkie dzielniki. To znajdzie pierwszy największy dzielnik.
    w komórce C1: =JEŻELI(A1-B1>=209;209;JEŻELI(A1-B1>=200;200;.. itd, znajdzie drugi dzielnik.
  • Helpful post
    #3
    dt1
    Admin of Computers group
    michu14031 wrote:
    podejrzewam że najlepszym wyborem było by próbować w vba

    Czytając Kolegi opis problemu prawie nic nie rozumiem. Moje podejście do VBA na podstawie domysłów z Kolegi opisu i rozwiązania Kolegi Prajz w załączniku. Makro osadzone jest w module w skoroszycie, będzie działać na wersji Excela 2003 i wyżej.

    Makro udostępnia w arkuszu funkcję Q (byłem leniwy i nie chciało mi się wymyślić dłuższej nazwy), która przyjmuje 3 parametry:

    =Q(liczba, indeks, sortowanie)
    liczba to liczba, którą męczymy.
    indeks to liczba od 1 do n, funkcja będzie zwracać n'ty dzielnik liczby. Jeśli będzie większa niż liczba dostępnych dzielników to zwróci zero.
    sortowanie - jeśli ustawimy fałsz (lub 0) to będzie rosnące, jeśli prawda (lub 1) to malejące. W zasadzie w przypadku oprogramowania tego w arkuszu jest to parametr bez znaczenia.

    W tabelce pozyskiwałem numer indeksu z numeru kolumny, co nie wyszło elegancko, ale skutecznie. Pod tabelką na piechotę policzone 6 dzielników dla liczby 100 (przy czym liczba ma 5 dzielników - 1, 5, 10, 20, 100, więc szósty wynik będzie zerem.

    Dzielniki, które są sprawdzane to 1, 5, 10, 15, 20, 40, 60, 80, ... (dalej co 20), 180, 200, 209, 220, 240, ... (dalej co 20 do około 32000) - dalej program się wywali.

    Pewnie da się to jakoś bardziej elegancko napisać, ale tu zostawię Koledze miejsce na poprawki.
  • Helpful post
    #4
    JRV
    VBA, Excel specialist
    michu14031 wrote:
    1, 5, 10, 15, 20 i jej wielokrotność, oraz 209
    michu14031 wrote:
    210=200, 10
    jaka może być maksymalna wartość ?
    Co byłoby wynikiem od np. 237, od 420 ?

    Dodano po 4 [minuty]:

    michu14031 wrote:
    oraz 209
    To nie literówka? (200)

    Dodano po 26 [minuty]:

    Co na to?
    B1=A1-C1
    C1=JEŻELI(A1>=20;MOD(A1;20);JEŻELI(A1>=15;MOD(A1;15);JEŻELI(A1>=10;MOD(A1;10);JEŻELI(A1>=5;MOD(A1;5);A1-1))))
  • #5
    michu14031
    Level 14  
    Nie kolego nie literówka takie jest opakowanie 209



    JRV wrote:
    michu14031 wrote:
    1, 5, 10, 15, 20 i jej wielokrotność, oraz 209
    michu14031 wrote:
    210=200, 10
    jaka może być maksymalna wartość ?
    Co byłoby wynikiem od np. 237, od 420 ?
    Dodano po 4 [minuty]:
    michu14031 wrote:
    oraz 209
    To nie literówka? (200)
    Dodano po 26 [minuty]:
    Co na to?
    B1=A1-C1
    C1=JEŻELI(A1>=20;MOD(A1;20);JEŻELI(A1>=15;MOD(A1;15);JEŻELI(A1>=10;MOD(A1;10);JEŻELI(A1>=5;MOD(A1;5);A1-1))))