Hirdetés

2021. január 21., csütörtök

Gyorskeresés

Hozzászólások

(#1) DrojDtroll


DrojDtroll
addikt

nyitva

(#2) 7


7
addikt

Jelen formájában semmit nem csinál, mert hiányzik a vége.

(#3) DrojDtroll válasza 7 (#2) üzenetére


DrojDtroll
addikt

az egészet kimásoltad?

=IFERROR(2014-(LEN(LEFT(IF(IFERROR(IF(SEARCH(",";P26);1;0);-1)=-1;P26&",";P26)&"|"&IF(IFERROR(IF(SEARCH(",";O26);1;0);-1)=-1;O26&",";O26)&"|"&IF(IFERROR(IF(SEARCH(",";N26);1;0);-1)=-1;N26&",";N26)&"|"&IF(IFERROR(IF(SEARCH(",";M26);1;0);-1)=-1;M26&",";M26)&"|"&IF(IFERROR(IF(SEARCH(",";L26);1;0);-1)=-1;L26&",";L26)&"|"&IF(IFERROR(IF(SEARCH(",";K26);1;0);-1)=-1;K26&",";K26)&"|"&IF(IFERROR(IF(SEARCH(",";J26);1;0);-1)=-1;J26&",";J26)&"|"&IF(IFERROR(IF(SEARCH(",";I26);1;0);-1)=-1;I26&",";I26)&"|"&IF(IFERROR(IF(SEARCH(",";H26);1;0);-1)=-1;H26&",";H26)&"|"&IF(IFERROR(IF(SEARCH(",";G26);1;0);-1)=-1;G26&",";G26)&"|"&IF(IFERROR(IF(SEARCH(",";F26);1;0);-1)=-1;F26&",";F26)&"|"&IF(IFERROR(IF(SEARCH(",";E26);1;0);-1)=-1;E26&",";E26)&"|"&IF(IFERROR(IF(SEARCH(",";D26);1;0);-1)=-1;D26&",";D26)&"|"&IF(IFERROR(IF(SEARCH(",";C26);1;0);-1)=-1;C26&",";C26)&"|"&IF(IFERROR(IF(SEARCH(",";B26);1;0);-1)=-1;B26&",";B26)&"|";SEARCH("|"&IF(IFERROR(IF(SEARCH(",";MAX(B26:P26));1;0);-1)=-1;MAX(B26:P26)&",";MAX(B26:P26))&"|";IF(IFERROR(IF(SEARCH(",";P26);1;0);-1)=-1;P26&",";P26)&"|"&IF(IFERROR(IF(SEARCH(",";O26);1;0);-1)=-1;O26&",";O26)&"|"&IF(IFERROR(IF(SEARCH(",";N26);1;0);-1)=-1;N26&",";N26)&"|"&IF(IFERROR(IF(SEARCH(",";M26);1;0);-1)=-1;M26&",";M26)&"|"&IF(IFERROR(IF(SEARCH(",";L26);1;0);-1)=-1;L26&",";L26)&"|"&IF(IFERROR(IF(SEARCH(",";K26);1;0);-1)=-1;K26&",";K26)&"|"&IF(IFERROR(IF(SEARCH(",";J26);1;0);-1)=-1;J26&",";J26)&"|"&IF(IFERROR(IF(SEARCH(",";I26);1;0);-1)=-1;I26&",";I26)&"|"&IF(IFERROR(IF(SEARCH(",";H26);1;0);-1)=-1;H26&",";H26)&"|"&IF(IFERROR(IF(SEARCH(",";G26);1;0);-1)=-1;G26&",";G26)&"|"&IF(IFERROR(IF(SEARCH(",";F26);1;0);-1)=-1;F26&",";F26)&"|"&IF(IFERROR(IF(SEARCH(",";E26);1;0);-1)=-1;E26&",";E26)&"|"&IF(IFERROR(IF(SEARCH(",";D26);1;0);-1)=-1;D26&",";D26)&"|"&IF(IFERROR(IF(SEARCH(",";C26);1;0);-1)=-1;C26&",";C26)&"|"&IF(IFERROR(IF(SEARCH(",";B26);1;0);-1)=-1;B26&",";B26)&"|")))-LEN(SUBSTITUTE(LEFT(IF(IFERROR(IF(SEARCH(",";P26);1;0);-1)=-1;P26&",";P26)&"|"&IF(IFERROR(IF(SEARCH(",";O26);1;0);-1)=-1;O26&",";O26)&"|"&IF(IFERROR(IF(SEARCH(",";N26);1;0);-1)=-1;N26&",";N26)&"|"&IF(IFERROR(IF(SEARCH(",";M26);1;0);-1)=-1;M26&",";M26)&"|"&IF(IFERROR(IF(SEARCH(",";L26);1;0);-1)=-1;L26&",";L26)&"|"&IF(IFERROR(IF(SEARCH(",";K26);1;0);-1)=-1;K26&",";K26)&"|"&IF(IFERROR(IF(SEARCH(",";J26);1;0);-1)=-1;J26&",";J26)&"|"&IF(IFERROR(IF(SEARCH(",";I26);1;0);-1)=-1;I26&",";I26)&"|"&IF(IFERROR(IF(SEARCH(",";H26);1;0);-1)=-1;H26&",";H26)&"|"&IF(IFERROR(IF(SEARCH(",";G26);1;0);-1)=-1;G26&",";G26)&"|"&IF(IFERROR(IF(SEARCH(",";F26);1;0);-1)=-1;F26&",";F26)&"|"&IF(IFERROR(IF(SEARCH(",";E26);1;0);-1)=-1;E26&",";E26)&"|"&IF(IFERROR(IF(SEARCH(",";D26);1;0);-1)=-1;D26&",";D26)&"|"&IF(IFERROR(IF(SEARCH(",";C26);1;0);-1)=-1;C26&",";C26)&"|"&IF(IFERROR(IF(SEARCH(",";B26);1;0);-1)=-1;B26&",";B26)&"|";SEARCH("|"&IF(IFERROR(IF(SEARCH(",";MAX(B26:P26));1;0);-1)=-1;MAX(B26:P26)&",";MAX(B26:P26))&"|";IF(IFERROR(IF(SEARCH(",";P26);1;0);-1)=-1;P26&",";P26)&"|"&IF(IFERROR(IF(SEARCH(",";O26);1;0);-1)=-1;O26&",";O26)&"|"&IF(IFERROR(IF(SEARCH(",";N26);1;0);-1)=-1;N26&",";N26)&"|"&IF(IFERROR(IF(SEARCH(",";M26);1;0);-1)=-1;M26&",";M26)&"|"&IF(IFERROR(IF(SEARCH(",";L26);1;0);-1)=-1;L26&",";L26)&"|"&IF(IFERROR(IF(SEARCH(",";K26);1;0);-1)=-1;K26&",";K26)&"|"&IF(IFERROR(IF(SEARCH(",";J26);1;0);-1)=-1;J26&",";J26)&"|"&IF(IFERROR(IF(SEARCH(",";I26);1;0);-1)=-1;I26&",";I26)&"|"&IF(IFERROR(IF(SEARCH(",";H26);1;0);-1)=-1;H26&",";H26)&"|"&IF(IFERROR(IF(SEARCH(",";G26);1;0);-1)=-1;G26&",";G26)&"|"&IF(IFERROR(IF(SEARCH(",";F26);1;0);-1)=-1;F26&",";F26)&"|"&IF(IFERROR(IF(SEARCH(",";E26);1;0);-1)=-1;E26&",";E26)&"|"&IF(IFERROR(IF(SEARCH(",";D26);1;0);-1)=-1;D26&",";D26)&"|"&IF(IFERROR(IF(SEARCH(",";C26);1;0);-1)=-1;C26&",";C26)&"|"&IF(IFERROR(IF(SEARCH(",";B26);1;0);-1)=-1;B26&",";B26)&"|"));",";"")));2014)

???

[ Szerkesztve ]

(#4) föccer


föccer
nagyúr

Valami szövegből szedegeti ki a paramétere cellában megadott szövegrészletben pozíciójához tartozó szövegrészletet.

Így első ránézésre, 2 sec alatt. a konkrét táblázat fájl nélkül többet ne kívánj. :D

(#5) DrojDtroll válasza föccer (#4) üzenetére


DrojDtroll
addikt

Segítek akkor egy kicsit. A cellák amikkel dolgozik számokat tartalmaznak. (ez következik a max függvényből)

(#6) proci985 válasza DrojDtroll (#5) üzenetére


proci985
MODERÁTOR

tizedesvesszőket számol asszem a B26: P26 mezőkön vagy hibát dob. azt hiszem, de nem volt türelmem rendesen kiindentálni. tippre valami általános error checking lehet.

maintainability/olvashatatlanság szempontjából ez majdnem annyira ronda, mint amit egy C decompiler tud generálni, mármint kb ugyanazt a lépést meghívja 15ször,
IF(
IFERROR(
IF(
SEARCH(",";P26)
;1;0)
;-1)
=-1;
P26&",";P26)

de legalább 4x3mas lépésben használja a köztes értékeket is (tehát ahol nem B26: P26 között számol).

[ Szerkesztve ]

Social distancing in lagom amount.

(#7) 7 válasza DrojDtroll (#3) üzenetére


7
addikt

Valószínűleg én voltam a figyelmetlen (pedig kétszer is megnéztem), de nem láttam a képlet végét. Így már más a leányzó fekvése, de proci már úgyis kivesézte. :)

Ha jól olvasom, 2014-ből kivonja a B26:P26 cellatartományból a legnagyobb értékű cella értékének vessző előtti hosszát(?). Ha ilyen nincs, 2014-et köp vissza válaszként.

De amilyen katyvaszos, simán lehet, hogy félreolvasom.

[ Szerkesztve ]

(#8) DrojDtroll válasza 7 (#7) üzenetére


DrojDtroll
addikt

pontosan ezt csinálja

A lényeg, hogy egy versenyen az volt a feladat az adott sorban lévő maximum legutolsó előfordulásának évszámát kilistázzuk segédcella használata nélkül

Kijöttem a versenyről és barátaimmal értekezve megtudtam, hogy kb 20-szor rövidebb az ideális megoldás.

(#9) 7 válasza DrojDtroll (#8) üzenetére


7
addikt

Es az idealis megoldas valoszinuleg kevesbe hajlamos work environmenttol fuggoen elhasalni. Nekem pl. nem is mukodik a sajat gepemen, keplethibat dob. :D

Egyebkent mi lett volna az? :)

[ Szerkesztve ]

(#10) föccer válasza DrojDtroll (#8) üzenetére


föccer
nagyúr

Ird le a feladat pontos megfogalmazasban
Amit 7 irt az 3 fiuggveny kb nem 3 sornyi. :D

(#11) föccer válasza föccer (#10) üzenetére


föccer
nagyúr

=HAHIBA(2014-HOSSZ(SZÖVEG(CSONK(MAX(B26:P26);0);"0"));2014)

[ Szerkesztve ]

(#12) proci985 válasza DrojDtroll (#8) üzenetére


proci985
MODERÁTOR

:DDD

azert tiszteletremelto a bruteforce megoldasod is. kulon imadom, hogy milyen szep halt-on-failt megoldast irtal ra, ez utobbi nem szokvanyos, de bizonyos helyzetekben kivanatos. :R

egy tipp: a jo programozo lusta*. ha azt erzed, hogy eppen ugyanazt a blokkot irod le harmadszorra picit eltero de osszefuggo valtozokkal, akkor jellemzoen at kell strukturalni a kodot, mert valahol egy loop vagy azzal egyenerteku megoldas kene. ha ugyanazt a blokkot negyedszer irod le, akkor biztos egyszerubb atstrukturalni.

ezzel egyreszt:
- kevesebbet kell irnod (itt pl 15 cella volt, mi lett volna, ha 30 van? vagy 3000?)
- kevesebb marad a hibalehetoseg (ahogy nezem itt legalabb 60 valtozonak kellett stimmelnie 2 helyett)
- egyszerubb lesz valtoztatni (pl mi lenne ha 16 cellat kene figyelembe venni, vagy evszam helyett mas erteket kilistazni?)

dolog egyebkent igy leirva egyszerubb, de gyakorlassal menni fog. programozas meg sok szempontbol olyan, mint az elo nyelvek hasznalata (pl angol), avagy csinalni kell es hasznalni kell, kulonben nem fejlodsz.

* eletem egyik legnagyobb lustasaga az MSC diplomam volt, aminel annyira szetautomatizaltam az adatgeneracios es begyujtesi processt, hogy egy gombnyomasra lefuttatott ilyen 5-6000 esetet, aztan a adatok otlepcsos feldolgozasa utan szepen csinalt nekem egy OK / NOK listat. 250 ora fejlesztesi ido, 2 perc az adatbegyujtesre ami eleve ugy volt lestrukturalva, hogy egy az egyben lehetett masolni az appendixbe. megnyomtam a gombom es kozben egeszen biztos voltam, hogy en vagyok a leglustabb ember a videken.

Social distancing in lagom amount.

(#13) DeFranco válasza föccer (#11) üzenetére


DeFranco
nagyúr

{=INDEX($A$1:$A$34;KICSI(HA($B$1:$B$34=MAX($B$1:$B$34);SOR($B$1:$B$34);"");DARABTELI($B$2:$B$34;MAX($B$1:$B$34)));1)}

nicc feladat amúgy, rá kellett guglizni és abból továbbfejteni, megy az okosfüzetbe.

[ Szerkesztve ]

(#14) DrojDtroll válasza proci985 (#12) üzenetére


DrojDtroll
addikt

kb mindennel amit leírtál tisztában vagyok

nem láttam, hogy tudom szebben megoldani ezért csináltam így

(#15) lezso6 válasza proci985 (#12) üzenetére


lezso6
HÁZIGAZDA
LOGOUT blog

Ezzel nagyon egyetértek, hogy a "jó programozó lusta". :K Nuku redundancia, amit lehet egyszerűsíteni, persze az ésszel, hogy olvasható maradjon. :D Szóval a rövidítés nem egyszerűsítés, hogy pl egy sorba írom azt, ami amúgy 20 lenne. Én a programozást egyfajta művészetnek tartom. :B

Erről jut eszembe, hogy sokan vannak olyanok, akik először csinálnak valami szupergány izét, csak műköggyön, aztán optimalizálnak. Szerintem ez az egyik legrosszabb módszer. Eleve (amennyire lehet) optimalizálva kéne írni (ok, kell hozzá agy meg tapasztalat) sokkal gyorsabb és billentyűzetkímélő. :DDD

[ Szerkesztve ]

8 óra munka, 8 óra pihenés, 8 óra kijárási korlátozás

(#16) proci985 válasza DrojDtroll (#14) üzenetére


proci985
MODERÁTOR

:R megesik.

(#15) lezso6: Csunyan de gyorsan weben mondjuk altalaban mukodik (weboldaltol meg komplexitastol fuggoen), viszont pl elosztott kodnal kb az egeszet lehet utana ujrairni:D.

indentacio alap, en foleg javaban kodolok es a clean code kb egesz jol leirja, hogy mit kene csinalni (persze ez is max best practice es nem silver bullet).

[ Szerkesztve ]

Social distancing in lagom amount.

(#17) UnA válasza lezso6 (#15) üzenetére


UnA
Korrektor

"Én a programozást egyfajta művészetnek tartom."

Ezzel maximálisan egyetértek. És ennek nem mond ellent az, hogy vannak, akik egy favágó érzékével kódolnak. :)

(#18) DrojDtroll válasza UnA (#17) üzenetére


DrojDtroll
addikt

vannak, akik egy favágó érzékével kódolnak. :)

Köszönöm :R

Copyright © 2000-2021 PROHARDVER Informatikai Kft.