- Macrodroid
- Motorola Edge 30 Neo - wake up, Jr...
- Motorola Moto Tag - nyomom, követ
- One mobilszolgáltatások
- Samsung Galaxy A54 - türelemjáték
- Xiaomi 14T - nem baj, hogy nem Pro
- India felől közelít egy 7550 mAh-s Redmi
- Samsung Galaxy S23 Ultra - non plus ultra
- Vivo X200 Pro - a kétszázát!
- Xiaomi 14T Pro - teljes a család?
-
Mobilarena
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
föccer
nagyúr
válasz
#77257183 #53409 üzenetére
Rakd össze úgy a munka1 munkalapot, ahogy a képen van. A oszlopban sorszám, Boszlopban a sorozat elemei. F2-be a lépések száma, F3 F4 eredményt ad. Gomb legyen kirakva fejlesztő eszköz menöből. Ha kiraktad, akkor jobb klikk rajta, makró hozzárendelése, ott rányomsz az újra gombra. Nyílik a VBA editor. A megjeleö üres részen megjeleik egy Sub Gomb1_Click() End Sub sorok. E közé kell berakni az általam írt kódot. (vigyázz az én kódomban is benne van a Sub ---- End Sub sorok, ezt nem kell bemásolni.
Ha minden okás, akkor visszalépsz a munkafözetre és ha megnyomod a gombot, akkor már számol is.
Bármekkora lépésszámot beírhat, ami belefér az integerbe. A kód nem számolja ki a fibonachi számot, csak kiveszi a B oszlopból a megfelelő elemet.
üdv, föccer
-
Mutt
senior tag
válasz
#77257183 #53400 üzenetére
Szia,
Itt az én makrós változatom.
Option Explicit
Dim fibonacci(1000) As Variant 'megtalált fibonacci számok listája
Sub Valaszt()
Dim c As Long
Dim r As Double
Dim pozicio As Long
'Rnd() függvénynek kell, különben nem lesz igazán véletlenszám
Randomize
'1-es poziciótól indulunk
pozicio = 1
With ActiveSheet
'fejléc a füzetre
.Range("A1") = "Lépés"
.Range("B1") = "Pozíció"
.Range("C1") = "Véletlen szám"
.Range("D1") = "Fibonacci szám"
'100 lépéses ciklus
For c = 1 To 100
r = Rnd()
'fel-le lépkedünk a listában
If r < 0.5 Then
pozicio = pozicio + 1
Else
If pozicio > 2 Then
pozicio = pozicio - 2
Else
pozicio = 1
End If
End If
'kiírtajuk a kapott eredeményeket
.Cells(c + 1, "A") = c
.Cells(c + 1, "B") = pozicio
.Cells(c + 1, "C") = r
.Cells(c + 1, "D") = FibonacciNum(pozicio)
Next c
End With
End Sub
'rekurzív fibonacci szám generátor
Function FibonacciNum(n As Long)
If Not IsEmpty(fibonacci(n)) Then
FibonacciNum = fibonacci(n)
Exit Function
End If
If n = 0 Then
FibonacciNum = 0
fibonacci(0) = 0
Exit Function
End If
If n = 1 Then
FibonacciNum = 1
fibonacci(1) = 1
Exit Function
End If
FibonacciNum = FibonacciNum(n - 1) + FibonacciNum(n - 2)
fibonacci(n) = FibonacciNum
End Function
üdv
-
föccer
nagyúr
válasz
#77257183 #53400 üzenetére
Makró beszúrása, ha a munkalapon vagy, akkor alt+F11.
Gombot a fejlesztőeszközök menöből lehet kirakni.Munka1 munkafüzeten, ez a makró:
Sub Gomb1_Click()
Dim Fib_sorszam As Integer
Dim Lepes_szam As Integer
Dim i As Integer
Fib_sorszam = 1
Lepes_szam = Sheets("Munka1").Range("F2").Value
For i = 1 To Lepes_szam
If Application.RandBetween(0, 1) = 0 Then
Fib_sorszam = Fib_sorszam + 1
End If
Next
Sheets("Munka1").Range("F3").Value = Sheets("Munka1").Cells(Fib_sorszam, 2).Value
Sheets("Munka1").Range("F4").Value = Fib_sorszam
End Sub
ps: egyébként nagyon érzékeny az eredmény arra, hogy az első 1-2-3 lépésben mennyi pozitív lépés van. -
Mutt
senior tag
válasz
#77257183 #51411 üzenetére
Szia,
"...a kiszámolt dátum az legyen ahová már megtörtént a gólos oszlopokba az adatbevitel..."
Ha a gólok oszlopa alapból üres és csak akkor kerül kitöltésre (akár 0-val ha már lement a mecs), akkor ez a képlet.
=NAGY(SZŰRŐ($A$1:$A$1000;(($B$1:$B$1000=J2)+($C$1:$C$1000=J2))*($D$1:$D$1000<>""));5)Kis magyarázat: vannak olyan feltételek, amelyek ha egyszerre teljesülnek az jó nekünk (pl. 2 számot eltaláltunk az 5-ös lottón), illetve olyanok amelyek egymástól függetlenül teljesülnek az a jó (pl. beakarok menni a lakásba, akkor az is jó ha van lakáskulcsom, de az is jó ha van vki otthon aki be fog engedni).
Az első az ÉS kapcsolat, a másik a VAGY.Excelben ÉS és VAGY függvények léteznek és érdemes használni őket, de nem műkődnek több cellán.
Ha több cellán kell ÉS kapcsolatot használnunk, akkor a SZORZÁS jelet kell használni.
(pl. (A1:A10="szombat")*(B1:B10="utazás") azon kombinációt adja vissza, ahol egy sorban szerepel szombat és melette utazás).VAGY-ot pedig az összeadással lehet szimulálni.
(pl. (A1:A10="szombat")+(B1:B10="utazás") azon sorokat adja vissza, ahol egyik oszlopban van szombat, és másikban bármi más, illetve azokat ahol a második oszlopban van az utazás és az elsőben bármi.)A focis esetben előbb megkeressük, hogy B és C-oszlopokban mikor látható a keresett csapat neve. Ez VAGY (összeadás) feltétel. Ezek után ahol IGAZ-at kaptunk megnézzük, hogy a gól oszlop nem üres-e. Ez már ÉS lesz, mert csak azok kellenek ahol van eredmény rögzítve.
üdv
-
Mutt
senior tag
válasz
#77257183 #51386 üzenetére
Szia,
Excel verzió számot nem írtál, de 2 megoldás, amelyik mindegyike használ egy segédoszlopot.
1. MS365 esetén SZŰRŐ (FILTER) függvénnyel megkeressük, hogy mikor volt a csapat legkorábbi mérkőzése az utolsó 5-ből.I2-ben a képlet (az első 1000 sort nézi, bővítsd ha szükséges, illetve nézi hogy otthon vagy vendégként játszott, ha csak egyik kell akkor a plusz jel előtti vagy utáni rész törölhető):
=NAGY(SZŰRŐ($A$1:$A$1000;($B$1:$B$1000=J2)+($C$1:$C$1000=J2));5)2. Korábbi verzió esetén az I2 képlete (itt csak otthon játszást nézi a képlet!):
=SZORZATÖSSZEG(NAGY(($B$2:$B$1000=J2)*($A$2:$A$1000);5))Ezek után a többi értéket SZUMHATÖBB és DARABHATÖBB-el lehet számolni.
Győzelem: =DARABHATÖBB(B:B;J2;F:F;1;A:A;">="&I2)+DARABHATÖBB(C:C;J2;F:F;2;A:A;">="&I2)
Vereség: =DARABHATÖBB(B:B;J2;F:F;2;A:A;">="&I2)+DARABHATÖBB(C:C;J2;F:F;1;A:A;">="&I2)
Szerzett gólok: =SZUMHATÖBB(D:D;B:B;J2;A:A;">="&I2)+SZUMHATÖBB(E:E;C:C;J2;A:A;">="&I2)
Kapott gólok: =SZUMHATÖBB(E:E;B:B;J2;A:A;">="&I2)+SZUMHATÖBB(D:D;C:C;J2;A:A;">="&I2)
Pontok: =SZUMHATÖBB(G:G;B:B;J2;A:A;">="&I2)+SZUMHATÖBB(G:G;C:C;J2;A:A;">="&I2)A képletekben az első rész otthoni, a második a vendégként elért értéket adja. Ha csak egyik kell akkor töröld a nem kívánt részt.
Ha szeretnél Excel-t tanulni, akkor ezt a feladatot Power Query-ben csoportosítással, majd sorbarendezéssel és pár oszlop beszúrásával is meg lehet oldani. Ehhez legalább Excel 2013-as verzió kell.
üdv
-
Fferi50
Topikgazda
válasz
#77257183 #51400 üzenetére
Szia!
A DARABHATÖBB függvény minden kritérium tartománya mindig a segédoszlopban megadott sortól a tartomány végéig tart: pl.=DARABHATÖBB(INDIREKT("$B"&F2):$B$127;$E2;INDIREKT("$C" & $F2):$C$127;$F2)
Ugyanígy a SZUMHATÖBB függvénynél is a kritérium tartományokat így kell meghatározni:=SZUMHATÖBB(INDIREKT("$D" & $F2):$D$127;INDIREKT("$B"&F2):$C$127;$E2)
Üdv. -
Fferi50
Topikgazda
válasz
#77257183 #51391 üzenetére
Szia!
Arra van szükséged, hogy a legutolsó x mérkőzés kezdő sorát meghatározd a tartományod számára. Csak a tartomány meghatározásra egyszerűsítve a feladatot segédoszloppal lehet megoldani szerintem:F2 cella képlete:
=NAGY(HA($B$2:$B$127=$E2;SOR($B$2:$B$127);HA($C$2:$C$127=$E2;SOR($B$2:$B$127);""));5)
Ez a tömbképlet megadja, hol található a tartomány végétől visszafelé számolva az 5. olyan sor, amelyben az adott csapat neve van. Mivel mindkét oszlopban szerepelhet, ezért kell a kétszeres ha függvény. Ha csak az egyik oszlopot (hazai/vendég) szeretnéd tudni - utolsó x hazai ill. vendég eredményt, akkor csak az adott oszlopra kell a ha függvényt felírni.
A tömbképletet Shift+Ctrl+Enter kombóval kell lezárni, az Excel pedig kapcsos zárójelbe teszi.
A H2 cella képlete:=DARABTELI(INDIREKT("$B"&F2):$C$127;$E2)
Ez is húzható lefelé.
Mutatja, hogyan alkalmazd a tartomány meghatározásához a segédoszlopot az indirekt függvénnyel. Itt csak azt mutatja, hogy valóban 5 darab tétel van az adott sortól kezdődő tartományban.
Üdv.
Új hozzászólás Aktív témák
Hirdetés
- Gyermek PC játékok
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Új, bontatlan World of Warcraft gyűjtői kiadások
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap - NYÁRI AKCIÓ!
- Huawei P20 Lite 64GB, Kártyafüggetlen, 1 Év Garanciával
- AKCIÓ! Sapphire Nitro+ RX 6800 XT 16GB videokártya garanciával hibátlan működéssel
- Azonnali készpénzes Intel i3 i5 i7 i9 12/13/14 gen processzor felvásárlás személyesen / csomagküldés
- Bomba ár! Lenovo ThinkPad T460 - i5-6GEN I 8GB I 256SSD I 14" FHD I Cam I W10 I Garancia!
- Xbox Ultimate előfizetések
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged