logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Excel 2013 Kombinacje bez powtórzeń

22 Sie 2014 23:31 27711 19
REKLAMA
  • #1 13899817
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #2 13900059
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    W załączniku rozwiązanie bez użycia VBA, z wykorzystaniem funkcji LOS i wiersza pomocniczego. Prawdopodobieństwo wystąpienia powtórzeń istnieje tylko w teorii.
    Załączniki:
    • Zbigu.xls (18 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #3 13900200
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #4 13902128
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Skoro już rozpisałeś, to użyj jej jako tabelki pomocniczej.
    Np:
    wpisz rozpiskę w L1:O15
    w H1 wpisz =PRZESUNIĘCIE($A$1;0;L1-1) i skopiuj 4 w prawo i 15 w dół
    w h16 =PRZESUNIĘCIE($A$2;0;L1-1) i skopiuj 4 w prawo i 15 w dół
    etc, etc

    Excel 2013 Kombinacje bez powtórzeń

    Ostatecznie możesz sobie napisać proste makro z wykorzystaniem tej rozpiski: pętla 'Do' z licznikiem wg kolumny A, wewnątrz której umieść podwójną 'For' (zewnętrzna 15 kroków, wewnętrzna 4) z przypisaniem: Cells(x + ((licznik'Do' -1)*15), y) = Cells(licznik'Do', liczba_z_tabelki)
  • #5 13902469
    Konto nie istnieje
    Poziom 1  
  • #6 13905217
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    ZbiguZbigu napisał:
    szkoda mi teraz czasu na uczenie się tego
    Cóż, forum stworzono dla tych, którym tego czasu nie szkoda...

    Przy porannej kawie naszło mnie znaleźć rozwiązanie bez rozpiski i wyszła taka pętelka
    Kod: text
    Zaloguj się, aby zobaczyć kod
    Może przyda się poszukującym w podobnych kwestiach.

    Z tabelką (którą nota bene przepisałem z błędem /rys/), w układzie jak opisano wyżej, sprawę załatwia takie makro (skoro zacząłem, niech skończę)
    Kod: text
    Zaloguj się, aby zobaczyć kod
    I to byłoby wszystko, jeśli chodzi o gotowiznę. Proponuję jednak spróbować własnych sił. To nie jest bolesne...
  • #7 13905436
    Konto nie istnieje
    Poziom 1  
  • #8 13907957
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    ZbiguZbigu napisał:
    niestety to makro nie działa
    Bo napisane w kodzie arkusza. Jeśli umieściłeś w module, zmień na
    Kod: text
    Zaloguj się, aby zobaczyć kod
    lub coś podobnego.
  • #9 14590682
    wachuwach
    Poziom 2  
    Posty: 2
    Ocena: 2
    Witam,

    mam podobny problem. Rzecz wygląda następująco:
    Mam x klas od 1 do n. Trzeba każdą porównać za sobą bez powtórzeń.
    Byłbym wdzięczny gdyby ktoś mi opisał i wyjaśnił ogólny algorytm.
    Będę to implementował w C++.

    Pozdrawiam
  • #10 14590737
    -psiak-
    Poziom 32  
    Posty: 1185
    Pomógł: 259
    Ocena: 107
    wachuwach napisał:
    ... każdą porównać za sobą ...

    No to jaki problem?
    W pętli po I od 1 do n porównujesz tb[I] z tb[I]
  • #11 14592442
    wachuwach
    Poziom 2  
    Posty: 2
    Ocena: 2
    problem jest taki, że to jest w jednej tablicy

    przykładowo mam 6 klas(elementów) {1,2,3,4,5,6} i powiedzmy chcę je wyświetlić tak:

    1,2
    1,3
    1,4
    1,5
    1,6
    2,3
    2,4
    2,5
    2,6
    3,4
    3,5
    3,6
    4,5
    4,6
    5,6

    Na pewno jest na to jakiś prosty algorytm tylko nic mi do głowy nie przychodzi.
    Oczywiście ma to być dla dowolnej ilości klas.

    Wesołych Świąt ;)

    Dodano po 29 [minuty]:

    Zrobiłem :D Prostsze niż myślałem.

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #12 14592671
    -psiak-
    Poziom 32  
    Posty: 1185
    Pomógł: 259
    Ocena: 107
    Po pierwsze to się nie nazywa każdy ze sobą bez powtórzeń, zaś wszystkie pary bez powtórzeń.
    Po drugie, nie stosuj i++ tam gdzie możesz zastosować ++i, to się zemści
    Po trzecie, nie używaj pojedynczych znaków 'l' do nazywania zmiennych, to się zemści
    Po czwarte, jak zastosujesz dobrodziejstwa C++ to wyjdzie:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #13 15092011
    oceanic24
    Poziom 2  
    Posty: 3
    adamas_nt napisał:
    W załączniku rozwiązanie bez użycia VBA, z wykorzystaniem funkcji LOS i wiersza pomocniczego. Prawdopodobieństwo wystąpienia powtórzeń istnieje tylko w teorii.



    Witam, szukam gotowego programu, który pokaże mi wszystkie możliwe kombinacje liczb.
    Czy jest ktoś łaskaw zrobić w Excelu wszystkie kombinację 3 liczb z puli 42 liczb i 49 oraz oraz to samo tylko z 2 liczb.

    Ktoś tutaj dodał załącznik tylko jest to 5 liczb z 10 i nie wiem jak to można zmodyfikować, iż się nie znam za bardzo na tym programie.

    Jestem gotowy nawet kupić przez allegro gotowy taki projekt, jeśli było by w tym dużo pracy stworzyć coś takiego.

    Chodzi mi o :
    (3) z 42 liczb wszystkich kombinacji
    (3) z 49 liczb wszystkich kombinacji
    oraz to samo, lecz tylko (2) z 42 i 49


    pozdrawiam i czekam na jakąś odpowiedź, kto się zna na tym programie i potrafiłby mi pomóc.

    W załączniku umieszczam projekt, który dodał adamas_nt.
    Załączniki:
    • Zbigu.xls (18 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #14 15092154
    -psiak-
    Poziom 32  
    Posty: 1185
    Pomógł: 259
    Ocena: 107
    Albo naucz się elementarnych podstaw narzędzia którego używasz, albo zapomnij o projekcie.

    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
  • #15 15092259
    JRV
    Specjalista - VBA, Excel
    Posty: 2724
    Pomógł: 805
    Ocena: 455
    -psiak- napisał:
    For i = 1 To 42
    For j = i+1 To 42

    Myslim że [code:1] For i = 1 To 42
    For j = i+1 To 41[/code:1]
  • #16 15092275
    -psiak-
    Poziom 32  
    Posty: 1185
    Pomógł: 259
    Ocena: 107
    JRV napisał:
    Myslim ze
     For i = 1 To 42
        For j = i+1 To 41
    Źle myślisz, jeżeli już to:
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
    ale i tak nie ma sensu tego robić, ponieważ dla i=42 pętla po j będzie od 43 do 42 czyli się nie wykona.
  • #17 15092811
    oceanic24
    Poziom 2  
    Posty: 3
    Niestety zbyt zielony jestem, abym chociaż wiedział gdzie te kody wkleić w Excelu. Chodziło mi o edycję tego pliku co podał autor powyżej. Wszystko pięknie tylko zamiast 42 licz jest 10 i jeszcze nie nie w kolejności tylko od 11-20.
    Chciałem co jakąś wypłatę zaszaleć i zagrać, aby były możliwe w 100%, że trafię trójkę. Jak podaję strona lotto prawdopodobieństwo wynosi od 1:128 czyli jakieś 160zł na kupony mini lotto musiałbym wydać.
  • #18 15093730
    -psiak-
    Poziom 32  
    Posty: 1185
    Pomógł: 259
    Ocena: 107
    A próbowałeś wpaść na forum malarski i powiedzieć: - Niestety zbyt zielony jestem, abym ... więc kto pomaluje mi mieszkanie?
  • #19 15098669
    oceanic24
    Poziom 2  
    Posty: 3
    Szukałem poradników w internecie jak zrobić w Excelu wszystkie kombinacje trójek w mini lotto. Tak, żeby mieć 100% pewności, że trafię trójkę. Nigdzie nie ma takich poradników, są tylko chyba na c++, ale to język dla profesjonalnych informatyków i na pewno zwykły zielony kowalski tego nie ogarnie w jeden dzień.
    Na Chomikuj są do pobrania wszystkie kombinacje dużego lotka czyli prawie 14 mln kombinacji, ale to nawet dla milionera jest nie osiągalne, ani nie opłacalne kiedy nie ma dużej kumulacji. Chyba, że podczas dużej kumulacji będzie miał ekipę, która w całej Polsce będzie oddawać blankiety do terminalów jak w ogóle nadążą z tak dużą ilością losów.

    Prawdopodobieństwo trafienia trójki w mini lotto jest od 1 do 128.

    Czyli trzeba obstawić 128 kombinacji. Czyli licząc jeden los za 1,25 trzeba na to wydać 160zł, aby mieć gwarancje na trafienie trójki.
  • #20 15098704
    -psiak-
    Poziom 32  
    Posty: 1185
    Pomógł: 259
    Ocena: 107
    Naucz się jakiegokolwiek języka programowania i zrób ten projekt samodzielnie, tym bardziej że ten projekt nie potrzebuje jakichś wygórowanych umiejętności. Lub zwyczajnie zamów wykonanie projektu.

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik poszukiwał pomocy w napisaniu makra w Excel 2013, które generowałoby wszystkie kombinacje 4 liczb z 6 podanych liczb, bez powtórzeń. W odpowiedziach zaproponowano różne podejścia, w tym wykorzystanie funkcji Excel oraz VBA. Użytkownicy sugerowali stworzenie tabeli pomocniczej oraz pisanie prostych pętli w VBA do generowania kombinacji. Pojawiły się również prośby o pomoc w rozbudowie makra, aby generowało unikalne szóstki z wcześniej wygenerowanych czwórek. W dyskusji poruszono również problemy z działaniem makr oraz potrzebę ich dostosowania do konkretnego arkusza.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA