-
Fototrend
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
-
cousin333
addikt
Üdv mindenkinek!
Az volna a kérdésem, hogy hogyan lenne lehetséges - ha egyáltalán az - Office 2002 alatt kombinálni az XY és a felület ábrázolást egy diagramnál. Tehát:
- van egy "adatmátrixom", két változóval (X és Y)
- minden X-Y kombinációra van egy konkrét Z értékem
- az X és Y változók is paraméterek (konkrét értékek), nem csupán címkék
- szeretnék egy olyan felületet ábrázolni (mint a felület diagramnál), ahol az egyes XY pontok nem egy négyzetháló kereszteződéseiben helyezkednek el, hanem az X ill. Y értékekkel arányosan (mint az XY ábrázolásnál, csak nem két változóm van, hanem 3: a Z az X és az Y függvényében)Remélem, érthető voltam, várom szíves válaszaitokat
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz Delila_1 #3876 üzenetére
Természetesen ez nem okozna problémát, nem is erre gondoltam. A képedet alapul véve képzeld el a következőket:
- nincs első sor
- A2 üres
- hogy az X értékek az A3 : A10 tartományban vannak
- az Y értékek az B2 : C2 tartományban vannak
- a Z értékek a B3 : C10 tartományban vannakEzt szeretném 3D-ben ábrázolni úgy, hogy az X, Y, Z értékek a hasonló nevű tengelyeken szerepeljenek. Ezt csinálja a "felület" grafikon. De azzal az a problémám, hogy az (1) X=4, Y=2, Z=1 pont az YX síkon pontosan fele olyan messze van a (2) X=7, Y=2, Z=4 ponttól, mint a (3) X=6.5, Y=2, Z=3.5 ponttól. Tehát az X tengely mentén haladva az origóból kiindulva, előbb következik az (1), aztán a (2), végül a (3). De ha megnézed az X értékeit, akkor előbb kellene lennie (1)-nek, aztán a (3)-nak (mert 6.5<7), majd a (2)-nek. A példaként írt értékekből az is látszik, hogy az XY síkon az (1)-nek ötször olyan messze kellene lennie a (3)-tól, mint a (2)-nek a (3)-tól....
Megkísérlek én is összeütni egy példa-képet, mert ez így nehezen emészhető...
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz cousin333 #3879 üzenetére
No, akkor egy vizuális példa:
Az Y értékek az első sorban, az X értékek az első oszlopban vannak, a Z-k meg közöttük. Ebből csináltam egy szép felület diagramot. Amint az látható, az X értékeket címkeként kezelte a program, nem értékekként. Ennek eredményeképpen az X tengelyen teljes összevisszaság van (2, 4, 5, 6, 3). Ha úgy jelenítené meg, ahogyan én gondolom, akkor előbb jönne a 2-es, és hozzá a neki megfelelő Z pont, aztán a 3-as, és hozzá a neki megfelelő Z pont... stb.
Ez működik is, ha XY-ként ábrázolom, de az csak két adatsorral működik (X és Y)
Szóval a fentieket kellene kombinálni. Bár már gyanítom, hogy nem fog menni...
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz DjSteve85 #10656 üzenetére
Üdv!
Célszerűen rendezd az 1. lapfül elemeit az irányítószám szerint sorrendbe, majd cseréld fel az A és B oszlopokat (hogy a településnév legyen elöl).
Feltételezem, hogy az 1. lapon A1:A100-ig vannak a nevek, és B1:B100-ig az irányítószámok.
Ekkor a 2. lapfülön az A oszlop első sorába írd ezt a függvényt:
=FKERES(A1; Fül1neve!$A$1:$B$100; 2; HAMIS)
A Fül1neve helyett nyilván az első fül neve kell (de ha kijelölöd, automatikusan beírja neked). Ha nincs olyan nevű település (mert pl. elgépelted), akkor #HIÁNYZIK hibát dob.
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz m.zmrzlina #10891 üzenetére
Amennyire én értek hozzá, jónak tűnik a megoldás. Nem mellesleg éppen ma szembesültem én is ezzel a módszerrel...
Viszont például az én problémámra (amivel jelenleg foglalkozom), úgy tűnik, gyorsabb a "sima" megoldás, nevezetesen, hogy a bemenő változókkal egyesével feltöltök egy-egy tömböt, az eredményeket kiszámolom egy másik tömbbe, majd egyesével kiírogatom őket a megfelelő helyekre. Nem biztos, hogy tuti módszerrel csinálom, mindenesetre a "sima" módszer futása kb. 6,3 mp, míg az egyszerre olvasósé 10,6 mp (persze számolni is kell, nem csak egyik helyről a másikra pakolászni). Szóval érdemes lehet több megoldást megvizsgálni és Timer funkcióval megmérni egy nagyobb adattömegen, hogy mi a gyorsabb (esetleg különböző adatmennyiségek esetén is nézni, hogy hogyan skálázódnak a különböző módszerek).
Mindenesetre már összeállt a fejemben egy másik megközelítés, ami reményeim szerint sokkal gyorsabb lesz majd. Ennél a problémánál is gyorsabb megoldásnak tűnik, ha végigmész a 8. oszlopon, és ha az adott sorban nincs értéke, akkor a komplett sort (akár a
Sheets("újhely").Range("A11:H11").Value = Range("A23:H23").Value
módszerrel) átmásolod az új helyre.
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz m.zmrzlina #10897 üzenetére
Értem én, hogy elvileg gyorsabb, azért is lepett meg, hogy nálam lassabban futott, mint az "alap" megoldás. Persze lehet, hogy csak az én implementációm volt rossz (most sajnos nem tudom beírni a kódot).
Nálam 3 x 20 ezer celláról van szó, a műveleteket 4 ezerszer hajtom végre ezen a bemeneti tartományon, tehát nem lehet panasz a terhelésre. Először tömbképlettel csináltam, kb. leölte a gépet...
"We spared no expense"
-
cousin333
addikt
válasz m.zmrzlina #10891 üzenetére
Ez a sor:
kilistahossz = Application.WorksheetFunction.CountA(Range(Cells(1, 1), Cells(belistahossz, 1)))
véletlenül nem ez akart lenni?
kilistahossz = belistahossz - Application.WorksheetFunction.CountA(Range(Cells(1, 8), Cells(belistahossz, 8)))
Legalábbis a feladat alapján: azon sorokat másolja, ahol a H oszlopbeli cella nincs kitöltve.
"We spared no expense"
-
cousin333
addikt
válasz bozsozso #10904 üzenetére
Előrebocsátom, hogy létezhet ennél jobb megoldás, de most ez jutott eszembe. B1-be ezt kell írni:
=HA(ÜRES(A1);"";SZUM(--($A$1:$A$10>=A1)))
A képletet tömbképletként kell megadni,tehát nem Enterrel nyugtázandó, hanem Ctrl+Alt+Enterrel! Ezt a függvényt aztán le lehet húzni egészen B10-ig.
Itt azt kell látni, hogy az $A$1:$A$10 tartomány nem akkora, amennyi dátum jelenleg be van írva, hanem nagyobb, hogy a jövőbeli elemek is beférjenek (vagy valami ofszetes számolgatós függvény is kell bele, ami utánaállítja, de ez szerintem már nem túl gazdaságos).
A fenti függvény a legfrissebb dátumnak adja a legkisebb sorszámot. Ha fordítva kell, akkor arra is van megoldás, ami nálam még rondábbra sikerült:
=HA(ÜRES(A1);"";SZUM(--($A$1:$A$10<=A1))-SZUM(--(ÜRES($A$1:$A$10))))
B változat összevonva a két szummát:
=HA(ÜRES(A1);"";SZUM(--($A$1:$A$10<=A1)-(ÜRES($A$1:$A$10))))
C változat (2010-ben van ilyen függvény, a többit nem tudom):
=HA(ÜRES(A1);"";SZUM(--($A$1:$A$10<=A1))-DARABÜRES($A$1:$A$10))
föccer: Az úgy natúrban kevés lesz...
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
Igen, valóban Ctrl+Shift+Enter, sorry...
De ezek szerint nem volt egyértelmű a feladat. Legalábbis a többiek megoldása nem azt csinálja, amit az enyém, hiszen a B oszlopbeli számok mindig emelkedő számsorban jönnek. Én a feladatot úgy értelmeztem, hogy a B oszlopbeli szám mutatja, hogy az A oszlopban lévő dátum hányadik az időrendi sorban. Ezt az aprócska félreértést azért jó lenne tisztázni
A tesztfájlom pl. így nézett ki (a Vissza az egyik, az Előre a másik időbeli irány:
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz föccer #10918 üzenetére
Azért sem értettem először, hogy hogyan hoztatok ki az enyémnél ennyivel egyszerűbb függvényeket, aztán néztem, hogy mit is csinálnak... Mindenesetre abban is van kihívás, hogy a ti értelmezésetek alapján hogyan lehetne beépített függvények használatával minél kisebb gépigénnyel végrehajtani a műveletet.
Ez is egy megoldás, de ha megvan a képlet, akkor szerintem egyszerűbbnek nem egyszerűbb. Pláne, ha új elemeket is szeretne néha felvenni a listára.
A megoldásom alapvetően jó, akkor van baj, ha hosszú (vagy hosszú lesz) a lista - mondjuk pár ezer sor -, mert így eléggé számításigényessé válik (amikor felfedeztem őket, tisztára "beleszerelmesedtem" a tömbképletekbe, de mostanra rájöttem, hogy sok mindenre, amire használható, van sokkal gyorsabb gyári függvény (pl. SZUMHATÖBB(), vagy elegáns, de nem jól bővíthető, ugyanakkor jelentősen növelheti a számításigényt. Erre a feladatra azért jól jönnek, legalábbis kisebb adatmennyiségnél...). Ilyenkor már inkább szóba jöhet a szűrő, vagy valami makró.
bozsozso: Egy kicsit még lehet tovább egyszerűsíteni:
=HA(A2=0;"";SZUM(($A$2:$A$11<=A2)-($A$2:$A$11=0)))
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz bozsozso #10912 üzenetére
Még egy javítás eszembe jutott. Ehelyett:
=HA(ÜRES(A1);"";SZUM(--($A$1:$A$10<=A1)-(ÜRES($A$1:$A$10))))
a C1 mezőbe kéne írni, hogy
=SZUM(--($A$1:$A$11=0)) vagy
=DARABÜRES($A$1:$A$11) ez volna a jobb, ha van ilyenedés akkor a B1-be mehet, hogy
=HA(A1=0;"";SZUM(--($A$1:$A$11<A1))-C$1)
majd értelemszerűen "lehúzni" függvényt a B oszlopban, ameddig kell.
Így a második $A$1:$A$11 tartományt nem kell minden egyes B-beli cellában kiszámolni.
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz fgordon #12220 üzenetére
Excel 2010 alatt így nézne ki a megoldásom (a példádban a D1 cellába kell beírni):
=HAHIBA(INDEX($A$1:$A$3;HOL.VAN(1;(B1=$B$1:$B$3)*(SOR(B1)<>SOR($A$1:$A$3));0));"")
A függvényt tömbképletként kell bevinni (Ctrl+Shift+Enter-rel)! A rögzített tartományokat értelemszerűen kell beállítani, a B1 paraméterél szám az aktuális sort jelölje.
"We spared no expense"
-
cousin333
addikt
válasz fgordon #12236 üzenetére
Libre Office nem támogatja a HAHIBA (IFERROR) függvényt, tehát a második mód lép életbe, ami támaszkodik a C oszlopra is:
=IF(C1;INDEX($A$1:$A$3;MATCH(1;(B1=$B$1:$B$3)*(ROW(B1)<>ROW($A$1:$A$3));0));"")
Ezt kell beírnod a D1 cellába, majd Ctrl+Shift+Enter! Sajnos a képlet további cellákba másolásával van egy kis gond, nevezetesen az LibreOffice elég "érdekesen" kezeli ezt, ugyanis a hivatkozások nem futnak együtt úgy, hogy pl. Excelben. Tehát a fenti képlet a második sorban is csont ugyanígy néz ki, míg Excelben a C1-ből C2, a B1-ből B2 lesz.
Ergo jelenleg működik a fenti képlet, de minden sorba egyenként kell bemásolni, és aktualizálni őket...
A megoldást momentán nem tudom, mint ahogy a képletkiértékelőt sem találom, ami lépésenként hajtja végre a függvényt, mutatva a köztes állapotokat, hogy látni lehessen, hol nem csinálja azt amit várnék tőle. Tudsz erről valamit?
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz soldierboy #12240 üzenetére
Melyik verziót használod? Excel 2010-ben Fájl, Beállítások, Képletek, S1O1 hivatkozási stílus, pipát kivesz. Ha régebbi verzió, akkor is azt keresd meg (beállítások között, vagy a súgóban), hogy hol lehet ezt átkapcsolni.
"We spared no expense"
-
cousin333
addikt
válasz soldierboy #12242 üzenetére
Úgy látom, hogy a 2007-ben ugyanott van, mint a 2010-ben, tehát lásd az előző hozzászólásomat, kivéve, hogy az elején nem a Fájl-ra kell kattintani (mert olyan ott nincs), hanem az Office gombra (vagy mi az).
Ugyanez angolul: [link]
"We spared no expense"
-
cousin333
addikt
válasz fgordon #12258 üzenetére
Szerintem megértettem, hogy mit akartál írni. Az általam linkelt képletek teljesen jól működnek Excel 2010 alatt. Mint az előző hozzászólásomban kifejtettem, a LibreOffice nem úgy kezeli a tömbképlet másolását, mint az Excel (szerintem hibásan, mert a tömbképlet eljárás a lényegét veszti el ezáltal, lásd a te példádat).
Nem csoda, hogy mindig az A1-es értéket kapod meg, mert ez a szerencsétlen minden D-beli cellában ugyanazt számolja. Gondolom másoltad a képletet, miután beírtad a D1 cellába, amit írtam. Na, akkor nézd meg, hogy a D2, D3... stb. cellában mi van. A válasz: ugyanaz, mint a D1-ben.
A második példámmal szemléltetve a dolgot: Excel 2010-ben ez van az egyes cellákban:
D1
=HA(C1;INDEX($A$1:$A$3;HOL.VAN(1;(B1=$B$1:$B$3)*(SOR(B1)<>SOR($A$1:$A$3));0));"")D2
=HA(C2;INDEX($A$1:$A$3;HOL.VAN(1;(B2=$B$1:$B$3)*(SOR(B2)<>SOR($A$1:$A$3));0));"")D3
=HA(C3;INDEX($A$1:$A$3;HOL.VAN(1;(B3=$B$1:$B$3)*(SOR(B3)<>SOR($A$1:$A$3));0));"")Remélhetőleg látszik a minta: a D1-ben látható "C1" ill. "B1" hivatkozások "C2", "B2" ill. "C3", "B3" hivatkozásokká frissülnek a függvény másolásakor. Namost az LibreOffice mindhárom D cellába azt írja be, amit az Excel csak a D1-be. Nem csoda, hogy az eredmény is mindig ugyanaz lesz.
Remélem, elég érthető voltam, ennél jobban már nem tudom magyarázni. Szóval szerintem de, az LibreOffice-ban van a hiba. Vagy csak máshogy működik, amit nem ismerek. De ha valamit félreértettem volna, javíts ki.
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz alexnowan #12259 üzenetére
Kicsit konkrétabb példa? Mondjuk pár sor (akár kamu) adattal? Mit szeretnél hol látni? Egyáltalán, mit akarsz megvalósítani, biztos, hogy a pivot a jó megoldás?
Ha a 4 oszlopodat a pivotban is akként akarod látni, akkor a mezőket a szumma értékek területre kell húzni. Vagy másképpen a leír1-2-t az szmma értékek területre, az azonosítót meg a Sorcímkék részre.
De a kérdés továbbra is inkább az, hogy pontosan mit akarsz megvalósítani?
"We spared no expense"
-
cousin333
addikt
válasz Regirck #12289 üzenetére
Milyen számok ezek? Van bennük rendszer? Pl. csak 0 és 100 közöttiek... stb.
A nagy számmennyiség miatt "látatlanban" azt mondanám, hogy makróval kellene megoldani. Függvényből leginkább valami tömbképlet tűnik járható útnak (bár szerintem ahhoz kevésbé általános feladat kellene), viszont az sok adatnál eléggé lassú tud lenni....
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz Regirck #12293 üzenetére
A lottós relatíve egyszerű: létrehozol egy 90 elemű tömböt, majd végigmész a számokon és az annyiadik tömbelemet növeled eggyel, amennyi a szám (pl ha a szám 15, akkor a tömb 15. eleméhez hozzáadsz egyet).
Így megszámolod mindet, a sorrend innen már viszonylag könnyű. Ugyanakkor mindezt nagy számokra (pl. vonalkód) vagy szövegekre nem lehet alkalmazni, szóval nehezen tudnád ezekre átemelni a lottós megoldást.
Mindenesetre érdekel a dolog, lehet, hogy holnap megnézem.
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
-
cousin333
addikt
válasz m.zmrzlina #12301 üzenetére
Ha új elemet adsz hozzá, azt be kell tenned a Q-beli listádba is. A "minden elem egyszer" elv is nehézkes, ha több oszlopod is van. Tudtommal a rendezés sem megy magától. Ráadásul lesz egy csomó cellád tele sosem használt értékekkel. Vagy azokat is mindig törölheted le.
Ne érts félre, amit írtál az jól működik, számításigény szempontjából talán a lehető leggyorsabb is, csak "nem megy magától".
Tényleg, ha már itt tartunk: nem tudsz valami gyors módszert tömbök (nem tartományok!) gyors rendezéséhez? Esetleg két dimenziós tömböt egy adott oszlop szerint rendezni? Vagy a tömb tartalmát invertálni (az első elem legyen az utolsó... stb.)?
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz Delila_1 #12308 üzenetére
Köszönöm a választ. De szerintem félreértettük egymást, vagy nem elég pontosan fogalmaztam. Ezekkel a rendezési lehetőségekkel tisztában vagyok (bár a sorrend megfordítós megoldás ötletes), a kérdésem a makrókra vonatkozott. Tudom, hogy a VBA tud rendezni (Array.sort), meg sorrendet fordítani, de nekem úgy tűnik, ezek Excelben nem elérhetőek. Vagy mégis?
Ergo a különbség tartomány és tömb között (legalábbis az én értelmezésemben):
tartomány: pl. "A1:B20"
tömb: Dim lista(1 to 20, 1 to 2) as Double[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz m.zmrzlina #12303 üzenetére
"Ezt nem értem."
Excel 2010-ben van olyan parancs, hogy Adatok > Ismétlődések eltávolítása. Ezzel kaphatsz egy listát, amiben minden elem csak egyszer szerepel. Ha viszont több oszlopot adsz meg neki, akkor csak azt tekinti ismétlésnek, ha két megadott sorban minden elem ugyanaz. Tehát mondjuk A2=A10, B2=B10 és C2=C10, akkor a második és tizedik sor egymás duplikáltjai.
"Valóban nem. 3-4 kattintás."
Erről beszélek. Nem bonyolult, de meló, főleg, ha sokszor kell.
"???"
A megoldásod lényege, hogy egy oszlopban szerepel minden egyedi érték, és mellette egy másik oszlopban minden darabszám. 1000 különböző értéknél ez 2000 cellányi információ, miközben a felhasználónak mondjuk 1-2-re van szüksége.
"Túlértékelsz"
Pedig kinéztem belőled.
"We spared no expense"
-
cousin333
addikt
válasz Regirck #12307 üzenetére
"Viszont egy dolog zavar, belépésnél folyamat csipog a vírus irtóm! A makrók miatt vagy mi miatt?"
Igen, valószínűleg a makrókkal van gondja. Ez elég bénán van megoldva szerintem, nem tudom, hogy a sajátfüggvények miért lettek egy kalap alá véve a makrókkal, amikor sokkal korlátozottabbak a képességeik (emiatt nem is tehetnek kárt a gépedben). Viszont így csak xlsm-ként engedni menteni.
Igaz, a fájl tartalmaz egy tesztmakrót is (nem én írtam), amivel függvények, utasítások futási idejét lehet mérni (így össze lehet hasonlítani két megoldást, hogy melyik a gyorsabb).
"Ha hozzájön még néhány sor akkor simán átírjuk az E2857-et annyival amennyivel nőtt nem kell túl bonyolítani makrókkal szerintem!"
Maga a GYAKORIBB függvény egy sajátfüggvény azaz "herélt makró". De jobban jársz, ha az adattartományodat - fejlécekkel együtt - kijelölöd, majd táblázattá alakítod (Beszúrás fül > Táblázatok csoport > Táblázat), és a függvényt erre a táblázattartományra alkalmazod. Ekkor, ha új sort vagy oszlopot adsz hozzá, azt automatikusan beveszi a táblázatba, és így az általa mutatott tartomány is bővül, ergo nem kell semmit átírni.
De a függvény módosítható lenne úgy is, hogy nem a tartományt kell megadni, hanem annak csak egy celláját, ő meg automatikusan kiválasztaná az egész - összefüggő - tartományt.
"We spared no expense"
-
cousin333
addikt
válasz Delila_1 #12313 üzenetére
"A tömb rendezésére én sem ismerek rövid megoldást, marad pl. a buborék módszer."
Vagy azt csinálod, amit én: kiírtam a teljes tömböt egy ideiglenes oszlopba, majd rendeztettem (makróból) az Excellel, és visszaolvastam a rendezett tömböt. De ez sem túl elegáns (és gyaníthatóan nem is a leggyorsabb), jobb ötletem viszont nem volt.
"We spared no expense"
-
cousin333
addikt
válasz Regirck #12312 üzenetére
A GYAKORIBB függvényt én hoztam létre, nincs angol neve (ergo ugyanúgy kell megadni elvileg). De ha megkeresed a hozzá tartozó kódot, és átírod a gyakoribb előfordulásait (elvileg kettő van belőle, az egyik magának a funkciónak a neve) egy más kifejezésre, onnantól az lesz a függvény neve. Magyarul is, angolul is, németül is meg szuahéliül is.
"We spared no expense"
-
cousin333
addikt
Egy másik lehetséges megoldás:
Feltételezve, hogy a felső értéksor (0 6 8 10 12) az A1:E1 tartományban van, az alsó (0 0,049... stb.) a B2:E2-ben, és az általad megadott érték (8,54) pedig A4-ben, úgy az eredmény - egy lépésben - az alábbi képlet szerint adódik:
=TREND(ELTOLÁS(A1;1;HOL.VAN(A4;A1:E1)-1;1;2);ELTOLÁS(A1;0;HOL.VAN(A4;A1:E1)-1;1;2);A4)
Átírva a te cellahivatkozásaidra:
=TREND(ELTOLÁS(G7;1;HOL.VAN(B21;G7:AD7)-1;1;2);ELTOLÁS(G7;0;HOL.VAN(B21;G7:AD7)-1;1;2);B21)
Ez az Excel 2010-re igaz, régebbi verzióknál az ELTOLÁS helyett az OFSZET alkalmazandó.
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
-
cousin333
addikt
válasz fgordon #12378 üzenetére
Üdv!
Nekem is előjött az általad jelzett hiba, aminek az oka, hogy a függvényt tömbképletként kell bevinni, tehát nem Enterrel, hanem Ctrl+Shift+Enterrel! Nézd meg, hogy a cellában a függvény kapcsos zárójelek között van-e. Egy bug az általam használt LibreOffice-ban, hogy ha nincs, és kijelölöm a függvényt, majd Ctrl+Shift+Entert nyomok, akkor sem csinál belőle tömbképletet, hanem előtte a függvényt "módosítanom" kell, pl. úgy, hogy felülírom a függvénybeli C1 hivatkozást C1-re...
Minkét megoldást (Office 2003 és LibreOffice 3.4.4) átküldtem e.mailben az adataidnál megadott címre.
mod: A levél nem ment át, mondván nincs ilyen cím. Akkor viszont innen érheted el.
"első találat egy 2007-es doc, amiben a hol.van angolul = LOOKUP"
Ez kellemetlen, de attól még hibás állítás. A német változat ("Vergleich") valószínűleg jó, bár még sosem próbáltam.
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
Mindenképpen makróban kellene, vagy jó lesz függvénnyel is? Utóbbi esetben jelölj ki 6 egymás melletti cellát (ahova az értékeket akarod), majd írd be ezt a függvényt:
=LIN.ILL(Y;X^{1\2\3\4\5})
ahol X és Y értelemszerűen a függvény X és Y adatai, mindkettő függőlegesen, oszlopba rendezve. Ha beírtad, akkor Ctrl+Shift+Enter (tömbképletet hoz létre), és egymás mellett láthatod az ötödik, negyedik... nulladik hatvány együtthatóját.
"We spared no expense"
-
cousin333
addikt
válasz Gabriel_86 #12934 üzenetére
Üdv!
Neked is mondanám, hogy szerintem rosszul közelíted meg a kérdést. Nem a grafikonból kellene kibogarászni a függvényt, hanem az eredeti adatokból, amin a grafikon is alapszik.
Ennek megfelelően az alábbi képletet kell egymás melletti 3 cellába, egyszerre(!) beírni, majd Ctrl + Shift + Enter:
=LIN.ILL(Y; X^{1\2})
ahol X és Y az értékpárok megfelelő (és egyenlő elemszámú) függőleges tömbjei.
Ha csak az egyik együttható kell, akkor az mehet így is egy tetszőleges cellába, sima Enterrel nyugtázva. (ez a négyzetes tagé):
=INDEX(LIN.ILL(Y; X^{1\2});1)
Ez meg a sima, első hatványhoz tartozó:
=INDEX(LIN.ILL(Y; X^{1\2});2)
"We spared no expense"
-
cousin333
addikt
Bocs, hogy nem válaszoltam, nem voltam gépközelben. De látom, sikerült megoldanod a problémát. Igen, azt az oldalt én is ismerem, sőt, tulajdonképpen én is onnan néztem ki anno.
Az a helyzet, hogy ennek a képletnek a legnagyobb rákfenéje, amivel te is találkoztál: alapvetően nem mindegy, hogy a forrásadatok (X és Y) függőlegesen, vagy vízszintesen vannak-e, az eredményt (az együtthatókat) függőlegesen, vagy vízszintesen várod-e illetve, hogy a tizedes elválasztód pont, vagy vessző...
"We spared no expense"
-
cousin333
addikt
válasz Vizes Tomi #13127 üzenetére
Üdv!
Esetleg részleteiben vagy egészében nem tudnád elérhetővé tenni a fájlt? Csak mert akkor mindenki ki tudná próbálni a saját megoldását, és nem telne el olyan sok idő két javaslat között...
ui: az eredeti csv fájl, vagy annak részlete lenne a legjobb.
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz poffsoft #13150 üzenetére
Ma is tanultam valami újat...
"kérdéseim: egy adattömbben a módusz a leggyakoribb értéket adja meg"
Úgy látom, hogy Excel 2010-ben a MÓDUSZ már mint kompatibilitási függvény szerepel, és az új változatban kettéosztották:
1. Van a MÓDUSZ.EGY, ami megfeleltethető a régi MÓDUSZ-nak
2. Van a MÓDUSZ.TÖBB, ami tömböt ad eredményül, és pontosan gyakoriság alapján rendezi sorba az elemeket. Ezt tömbképletként kell bevinni, különben az 1. pontbeli eredményt kapjuk.asuspc96: Több tízezer szám esetén a tömbképlet felejtősebb... bár elnézve a konfigodat még az is működhet... Amúgy melyik Excel verzióról beszélünk? A kombinációra vonatkozó kitételt továbbra sem értem
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz asuspc96 #13180 üzenetére
Akkor most tisztázzuk még egyszer, amolyan kérdezz-felelek formában:
- van 3000 sorod és 5 oszlopod (ez fix? kb. mindig ennyi?)
- a számok 1 és 100 között vannak (van egy behatárolható tartomány?)
- kell az X leggyakoribb szám kilistázva
- kell az Y leggyakoribb egymás utáni kombináció (egymás utáni számok? egymás alattiak? egy sorban lévő kombinációk?Mennyire változnak a számok? Függvényként kell, vagy csak néha-néha kéne kiszámolni (gondolom igen)?
"We spared no expense"
-
cousin333
addikt
válasz VásRló #13221 üzenetére
Szerintem így direktbe sehogy. Én a következőt csinálnám:
- A DÁTUM és IDŐ, valamint a KÖZÉP függvények segítségével meghatároznám az időt emészthető formában. A képlet, feltéve, hogy a kérdéses dátumod az A1-es cellában van:
=DÁTUM(KÖZÉP(A1;7;4);KÖZÉP(A1;4;2);KÖZÉP(A1;1;2))+IDŐ(KÖZÉP(A1;12;2);KÖZÉP(A1;15;2);0)
- Ezt beírnám a mellette lévő oszlop minden sorába, ahol ilyen dátum szerepel
Ez így már sorbarendezhető. Ha mindenképpen az eredeti felállás kell, akkor:
- Fognám ezt az új oszlopot, és másolás, irányított beillesztéssel (csak az értéket) bemásolnám az eredeti dátumoszlopba.
- Majd kijelölve ezt a régi-új oszlopot, a cellaformázásnál egyéni formátumot adnék meg a következő formátumkóddal:
nn.hh.éééé óó:pp
Ekkor elvileg ugyanúgy fog kinézni az eredeti és az új oszlop, de már sorba is lehet rendezni. Tesztelve, nálam működött (Excel 2010).
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz terencehill #13839 üzenetére
A képen lévő példával élve kell egy listát csinálnod az előforduló sorszámokról (mint nálad az E4 és E5 cellákban). Ekkor az F4 cellába ez kerüljön:
=SZUMHA($A$2:$A$4;E5;$B$2:$B$4)
Az első és a harmadik elem fixen a listád, a középső elem ("E5") meg az aktuálisan hivatkozott sorszám. Ezt a függvényt aztán kiterjesztheted a következő sorokra is.
"We spared no expense"
-
cousin333
addikt
válasz terencehill #13845 üzenetére
Ha nem változik túl gyakran a lista, akkor szerintem nem kell erőltetni a képleteket, mert eléggé lassúak is lehetnek, és, mint a mellékelt ábra mutatja, csak a gond van velük. A képeid alapján 2007-et vagy 2010-et használsz.
Egyszerűen másold ki a lista elemeit a "Sorszám" részből (a példádban A2:A4) mondjuk az E oszlopba.
Jelöld ki őket, majd az Adatok fülön az Adateszközök csoportban használd az Ismétlődések eltávolítása funkciót.
Ha kell, akkor megfejelheted egy sorba rendezéssel is.
"We spared no expense"
-
cousin333
addikt
válasz terencehill #13847 üzenetére
Azt kérdezted, hogy az E oszlopbeli listát hogyan tudod legenerálni. Megírtam. Azt nem mondtam, hogy piszkáld az A-B oszlop táblázatát.
Tehát tulajdonképpen létrehozod az E oszlopos listát a fenti módszerrel, majd használod a függvényt az F oszlophoz, amint már korábban megírtam (a SZUMHA-t). Ez nem veszi figyelembe a szövegeket, tehát ha két azonos kódhoz egy szám és egy szöveg tartozik, akkor értelemszerűen csak a számot "adja össze".
[ Szerkesztve ]
"We spared no expense"