Az „Excel” fórum célja, hogy keretet adjon az Excel felhasználók széles táborának tapasztalataik megosztására, és lehetőséget a segítséget kérőknek. Az alábbi összefoglaló azért készült, hogy segítse a helyes kérdésfeltevést.
– Írd le szabatosan a problémát. Úgy fogalmazz, hogy ne csak te magad, de a szakértő is megértse, mire szeretnél választ kapni.
– Írd le, hogy milyen verziójú Excellel dolgozol. (Vagy ha nem – ill. nem csak – Excel, akkor micsoda?)
– Írd le, hogy milyen úton indultál el, és hol akadtál el rajta.
– A kérdés megértése szempontjából sokat segíthet, ha feltölteszt egy képet, amin látszik, hogy mit szeretnél, vagy illusztrálja azt.
– Még jobb, ha feltöltesz egy minta munkafüzetet valahová (pl. data.hu). Feltöltés előtt távolítsd el belőle a nem publikus adatokat.
– Ha a feladat jellege olyan, célszerű az "előtte" és "utána" állapotokat bemutatni. (Miből kellene csinálni mit?)
– Ha VBA kódon kell javítani, másold be a releváns kódrészt. Rövid kód mehet hozzászólásba, hosszú kód inkább ide: http://pastebin.com/
– Ha valami nem úgy működik, ahogy kellene, add meg a rendellenes viselkedés jellemzőit, a hibaüzenetet, és a hibát okozó programsort.
Private Sub Sorsolás() Dim StCount As Long, arrStations, rngStations As Range Dim i As Long, j As Long, sTemp As String, lTemp As Long, ListedOnes As String, Attempts As Long, Continue As Boolean Dim rngCol As Range, rngRow As Range Set rngStations = ThisWorkbook.Worksheets("Munka1").Range("F1").CurrentRegion.Resize(1) StCount = rngStations.Cells.Count ReDim arrStations(1 To StCount, 1 To 2) For i = 1 To StCount arrStations(i, 1) = rngStations.Cells(i) arrStations(i, 2) = Application.WorksheetFunction.CountA(rngStations.Cells(i).EntireColumn) - 1 Next Continue = True While Continue = True Continue = False For i = 1 To StCount - 1 If arrStations(i, 2) > arrStations(i + 1, 2) Then sTemp = arrStations(i, 1) lTemp = arrStations(i, 2) arrStations(i, 1) = arrStations(i + 1, 1) arrStations(i, 2) = arrStations(i + 1, 2) arrStations(i + 1, 1) = sTemp arrStations(i + 1, 2) = lTemp Continue = True End If Next Wend For j = 1 To 3 Randomize ListedOnes = "|" For i = 1 To StCount Attempts = 0 Set rngCol = rngStations.Find(what:=arrStations(i, 1), lookat:=xlWhole) Set rngRow = ThisWorkbook.Worksheets("Munka1").Range("A:A").Find(what:=arrStations(i, 1), lookat:=xlWhole) Do lTemp = Int(Rnd * arrStations(i, 2)) + 1 sTemp = rngCol.Offset(lTemp) Attempts = Attempts + 1 Loop Until ((InStr(ListedOnes, sTemp) = 0) And (Application.WorksheetFunction.CountIf(rngRow.Resize(, 4), sTemp) = 0)) Or (Attempts = 5000) If Attempts = 5000 Then MsgBox "Úgy tűnik, ezt a sorsolást nem tudom befejezni a feltételek sérülése nélkül. Lehet, hogy ha elölről kezdjük, akkor menni fog." Stop Else ListedOnes = ListedOnes & "|" & sTemp rngRow.Offset(, j) = sTemp End If Next Next End Sub
Jelzem, hogy ha van két vagy több dolgozó ugyanazzal a névvel (pl. két Kis János), azokat egyedi névvel (pl. Kis János I. és Kis János II.) meg kell különböztetni a listában.
Hát ezt így most nehéz, ennyi év után, de emlékeim szerint az Odalbeállítás ablakban a Lap fülön találod meg a nyomtatáskor fent ismétlődő sorok beállítását.
Ami a láblécet illeti, ott az élőfej/élőláb lapon az egyéni élőlábat kell választani, és ott a különböző építőlockákból összetenni azt a lábléc infót, amit akarsz.
Bocs, hogy beleszólok, de a két verzió kombinációját kérte a kérdező a későbbi hozzászólásában (ld. 33375): "egy sorba es oszlpoba se keruljon ugyanaz az ember"
Elkészült egy nagy táblázatom. Segítségetekkel megoldódott az 1-es sor rögzítése, benne adatokkal az oszlopcellák A1; B1; C1 stb. láthatósága görgetésnél.
1. Most szembesültem: nyomtatásnál az oldalakon viszont nem látszik ez a "fej" sor. Hol tudom beállítani a láthatóságát?
2. megoldható-e: a mentési file név automatikusan megjelenjen pl. lábjegyzetben? és nyomtatásban is látható legyen?
Gyorsan osszedobtam egy kis szemleltetot. (A jobb oldalon egy matrix lathato, h melyik operator melyik allomast tudja.)
Szoval egy olyan formula rengeteget keresek amivel a piros mezok automatikusan kitoltodnek (gombnyomasra) figyelembe veve azt, h melyik operator (vilagoskek) melyik station-t tudja csinalni, pluszba meg aztis figyelje, h egy sorba es oszlpoba se keruljon ugyanaz az ember.
Remelem igy mar elegendo informaciot tudtam szolgaltatni es tudtok erdemleges informacioval segitsegemre lenni :)
Ha csak ennyi a feladat, akkor a válasz igen, és szerintem ebben a körben valaki meg is tudja oldani, igaz, csak a pimre által is hiányolt kiegészítő információk birtokában.
Ha olyan rendszert akarsz, amely a sorsolásnál figyelembe veszi a Munka Törvénykönyve által előírt mindenféle dolgokat, pl. a műszakrendre vonatkozó szabályokat (ki dolgozik reggel/délután/éjszaka, ki a beugró, hány napot dolgozhat az ember egyhuzamban, kinek mikor kell pihenőnapot adni, ki mikor megy szabadságra stb.) az már necces, mert szerintem egyikünk sem munkajogász.
Sziasztok Egy olyan kerdessel fordulok hozzatok, amire eddig sehol sem talaltam megoldast. Egy random muszakbeosztas generatort szeretnek kesziteni, ami figyelembe veszi, hogy az adott operator (egy operator tudhat egy, vagy tobb allomast is) melyik allomast tudja es nem kerul az adott idoszakon belul tobb allomasra (mivel nemtud egyszerre 2 helyen lenni egy ember ugyebar) Letrehozhato-e barminemu formula ami egy gombnyomasra kisorsolja a fent emlitetteket figyelembeveve a muszakbeosztast? Elore is koszonom a valaszt. Udv: Szittyo
Adott egy tábla, ahol a G2 cellában lévő SZUM(A2:F2) függvényben az „F” -et változóként szeretném használni, úgy hogy a függvény lefele másolható legyen. Az H1-be írnám be a mindig változó értéket.
Ezzel próbálkoztam =SZUM(A2:INDIREKT($H$1&2)), az eredmény jó, de lefelé másolva az indirekt függvényben a sor azonosító nem változik.
Egy olyan táblához kellene ez a megoldás, ahol az összesen adatokat tartalmazó G oszlop mindig a H1-ben megadott oszlop betűjeléig adná Össze az adatokat.
Nem vagyok egy power pivot guru, de szerintem a hibaüzenet azt jelenti, hogy az IF kifejezésed kiértékelése IGAZ esetén szöveget ad vissza, HAMIS esetén numerikus értéket, és így az eredmény egységesen csak variant típusként értelmezhető, az meg neki nem teccik valamiért. Javaslom, próbáld meg szöveggé konvertálni a HAMIS feltételre visszaadott [Period Number] értéket, pl. a FORMAT függvénnyel, valahogy így:
van egy eleg szimpla excel formulam ami tok jol mukodik =IF(G8<9.9,CONCATENATE(G3,G8),G8)
nah most ezt szeretnem implementalni a power pivot-ba ahol elvileg igy nezne ki =IF([Period Number]<9.9,CONCATENATE(0,[Period Number]),[Period Number])
viszont powerpivot az alabbi error-t dobja:
Expressions that yield variant data-type cannot be used to define calculated columns.
amit idaig talaltam ott a formatum (jelen esetbe a period number) ra ter ki, hogy az helytelen. nah en a formatumot az adott oszlopra mar atallitottam mindenre, text,genera,decimal,whole, number, viszont nem sikerult megoldanom.
tudnatok segiteni hogy tudnam power pivot dax kompatibilassa tenni?
van 1 oszlopom period number ha erteke 1-9 kozott van akkor adjon hozza nullat eredmeny 01-09, ha 10 v felette akkor maradjon az eredeti.
a vegeredmeny amikor pivotba kiforgatom akkor olyan sorrendet szeretnek hogy 01-02-03-...10-11-12
ha nincs 01 akkor a sorrend alt ez: 1 10 11 12 2 3 45. ezt szeretnem elkerulni. esetleg van a pivot tablaba vmi beallitas?