Keresés

Részletes keresés

pimre Creative Commons License 2013.11.19 0 0 23095

Valahol a trendlines method környékén érdemes keresni a helpben. Egyébként bő két éve készítettem programból grafikonokat. Azokra ráírattam a programmal az egyenletet is. Igaz, csak lineáris trenddel foglalkoztam. Nagyon sok grafikon volt egy-egy munkalapon, ezért kellett a program. A lényeg, hogy teljesen automatizálni tudtam.

 

Csak annyira összetett volt a feladat, hogy hosszabb idő kellene az előbányászásukhoz.

 

Valahogy így néztek ki:

 

Előzmény: tbando (23094)
tbando Creative Commons License 2013.11.19 0 0 23094

Szerintem a diagramra kiiró utasítást kéne megnézni. De lővésem sincs, hogy elérhető-e a vba-val.

Előzmény: Fferi50 (23091)
Sánta Kutya (SK) Creative Commons License 2013.11.19 0 0 23093

Én azt hiszem, nekem küldtél egy e-mailt, de most álmos vagyok, és nem értem, miért kaptam. .-)

Előzmény: Fferi50 (23092)
Fferi50 Creative Commons License 2013.11.18 0 0 23092

Szia!

 

Küldtem számodra egy privit. Ha tetszik ami benne van és tudod használni, megbeszéljük nyilvánosan is mások okulására.

Kérlek jelezz vissza itt, vagy priviben.

 

Üdv.

 

Előzmény: pimre (23089)
Fferi50 Creative Commons License 2013.11.18 0 0 23091

Szia!

 

A diagramra ráhúzott függvény képletét ki tudod íratni a diagramra. Az alapadatokat ismered. A függvénnyel pedig ki tudod hozzá számolni az y adatokat. Ennél jobbat sajnos nem tudok. Tudom, persze sok adatsorozatnál ez eléggé hosszadalmas.

Illetve a TREND függvény idézett helpjét érdemes egy kicsit mélyebben megnézni, lehet, hogy segít valamit.

 

Üdv.

 

 

Előzmény: tbando (23090)
tbando Creative Commons License 2013.11.18 0 0 23090

Feri!

 

A 23087-ben felvetett eljárásra nincs valami ötleted? Azaz erre:

 

 Abban lehet itt a segítségedre egy nálam jóbban képzett exceles, hogy elmondja, miként lehet a diagramra ráíratható függvény paramétereit lekérdezni. Ez speciel engen is érdekelne.

Előzmény: Fferi50 (23088)
pimre Creative Commons License 2013.11.18 0 0 23089

Van 2003-as és 2007-es egyaránt. De annyira nem szeretem a 2007-est, hogy lényegében csak a 2003-ast használom. Bár most éppen az itt emlegetett programom a laptomon fut, amin a 2007-es van telepítve, hogy az alatt a 3 óra alatt, amíg dolgozik, nyugodtan tudjak dolgozni az asztali gépemen,

 

Egyébként sajnos legkésőbb jövő nyáron át kell állnom, tehát biztos fogom tudni használni az érdekességeket. Kipróbálni meg most is tudom.

Előzmény: Fferi50 (23088)
Fferi50 Creative Commons License 2013.11.18 0 0 23088

Szia!

 

Jól emlékszem, hogy 2007-es exceled van?

 

Mert akkor lenne egy-két érdekesség táblázat kezelésre szerintem.

 

 

Üdv.

Előzmény: pimre (23085)
tbando Creative Commons License 2013.11.18 0 0 23087

Most hogy újra nézem, biztos, hogy a poliniáis transzformációm egy marhaság:((((. De hogy mi lenne a jó, azt nem tudom. Így ha valaki nem súgja meg, marad, hogy az excellel illeszted a polinomiális függvényt, majd az így meghatároztt függvénnyel jelzel előre. Abban lehet itt a segítségedre egy nálam jóbban képzett exceles, hogy elmondja, miként lehet a diagramra ráíratható függvény paramétereit lekérdezni. Ez speciel engen is érdekelne.

Előzmény: tbando (23086)
tbando Creative Commons License 2013.11.18 0 0 23086

Igen, egy kicsit félreérthetően fogalmaztam. Akkor most pontosabban. Szó sincs a harmadfokú függvény linearizálásáról, majd az eredmény vissza transzformálásáról.  Ha ugyanis már megvan a harmadfokú függvény, akkor nem a forecast-t kell előre jelezni,  hanem magával a harmadfoku függvénnyel.

 

Amiról én írtam, hogy adatpárjaid vannak és azokból akarsz előre jelezni az excel segítségével.   Nos, ebben az esetben a  függvények meghatározásával nem kell foglalkoznod.  Azt rábízod az excelre. Te csak az adataidat teszed a lineárissá, persze csak akkor ha nem vagy megelégedve a jelenlegi linearításukkal. Írtad korábban, hogy nem akarsz veszkődni a grafikus függvénymeghatározással. Az adatok grafikus Pont(XY) diagramon való megtekintése azonban ajánlatos, mert ábrából a legkönnyebb eldönteni, hogy a függvényedhez milyen függvényt érdemes illeszteni. Nos ha ezt eldöntötted, akár az ábrából, akár hasra ütve, akkor kell az Y adataidat ennek megfelelően transzformálni. Teszem azt, ha másodfokú osszefüggést posztulálsz, akkor veszed mindegyik Y-nak a négyzetgyökét, ha harmadfokút akkor a gyök3-t, ha logarimusost, akkor a logaritmusát stb.  Majd az XY' adatpárjaidra elvégzed a lineáris a regressziót. Ha a korrelácó javult az eredeti adataidból számítotthoz képest, akkor érdemes volt transzformálnod, ha nem javult akkor vagy maradsz az eredeti adataidnál, vagy új transzformációt választasz. Ha meg vagy elégedve a javulással, akkor csinálod meg a lineáris előrejelzést, majd a kapott forecast visszatranszformálását az eredeti skálára, az előző transzformáció inverzével.  Tehát ha előzőleg gyököt vontál, akkor most négyzetre emelsz stb. 

 

A polinomiális előrejelzéshez úgy gondolom, hogy az Y=x+gyök(x)+gyök3(x)+gyök4(x)+..... transzformációt kellene elvégezni. De ezt azért csekkold, mert nem vagyok matematikus, lehet hogy tévedek.  Azt azonban tudnod kell, hogy a polinomiális összefüggések csak az adott adathalmazon érvényesek. Ugyanis a polinomiális függvény első sorban arra használatos, hogy az adott adathalmazod  összes kis kilengését baromi pontosan írja le.  Ezért egy másik adathalmazon nyilvánvalóan hibás eredményeket fog előre jelezni.  Ezért én a polinomiális függvényt csak az adathalmazban rejlő tendenciák felismerésére használtam, előrejelzésre sosem

 

Előzmény: NPW (23083)
pimre Creative Commons License 2013.11.18 0 0 23085

Szia, ez épp jókor jött, amikor azt kezdtem tesztelgetni, hogy hogyan tudom a formulát alkalmazni, ha másik fájlból olvasom az egyik összegzendő adatsort. És sikerült a workbook és a worksheet nevét is beleillesztenem a képletbe.

Előzmény: Fferi50 (23081)
Fferi50 Creative Commons License 2013.11.18 0 0 23084

Szia!

 

Nézd meg a TREND függvény súgóját.

Idézet belőle:

A TREND függvényt polinomgörbe illesztésére is használhatja: ekkor a regresszió számítása ugyanazon változó különböző hatványainál történik. Tegyük fel például, hogy az A oszlop az y, míg a B oszlop az x értékeket tartalmazza. A C oszlopba beviheti az x^2, a D oszlopba az x^3 értékeket és így tovább. A regressziós görbe ezután a B-D, illetve az A oszlop értékei között számítható.

 

Üdv.

Előzmény: NPW (23083)
NPW Creative Commons License 2013.11.18 0 0 23083

Sajnos a súgó nem ír a polinomiális trend előrejelzésről, csak a lineárisról meg az exponenciálisról...

A másik, amit írsz: nem értem, hogyan alakítok át egy harmadfokú függvényt lineárissá, majd vissza harmadfokúvá.

Ki tudndád fejteni?

Előzmény: tbando (23072)
pimre Creative Commons License 2013.11.18 0 0 23082

Szia!

 

A feladat lényegét a #22993-ban hivatkozott http://data.hu/get/7127187/sumif_teszt.xls tesztfájl tartalmazza. Akkor éppen a Sumif tesztelésére készítettem, és az adatszerkezet bemutatására. Ezért a benne lévő program már nem aktuális, de az adatszerkezet érvényes.

 

Az első két oszlopban árucikkek kódja és neve szerepel, a többiben az egyes időszakokban történt értékesítések 3-3 adata. Csak éppen az éles adatfájlokban (amiből 30-nál több van, ezek az egyes üzletek adatai) átlag 20.000 sor szerepel és kereken 100 oszlop.

 

Ráadásul az árucikkek listája nem teljesen fedi egymást az egyes fájlokban, ugyanakkor egy fájlon belül a nevek ismétlődnek más kódszámmal.

 

Az egyes fájlok adatainak vízszintes és függőleges összegzésén túl kell készítenem egy olyan összegfájlt, amelyben a fájlokban előforduló összes – adattal rendelkező - árucikk (az üres tételek kihagyása miatt összesen kb. 10.000) egyszer szerepel, és annak adatait a fájlokból összesítve tartalmazza. Aztán kell egy olyan összesítő fájl, ami az egyes fájlokban (üzletekben) található oszlopösszegeket írja az egyes sorokba.

 

Tulajdonképpen egyszer már működött a program, de fájlonként 7-8 percig futott, összesen több mint 3 órán át. És mivel még kell egy kicsit finomítani (pl. az azonos nevű, eltérő kódú tételek összevonásával), ezért gondoltam, hogy akkor már meggyorsítom, nem mellesleg a formula- és a munkalap képletek használatával is ismerkedem. 

Előzmény: Fferi50 (23080)
Fferi50 Creative Commons License 2013.11.18 0 0 23081

Szia!

 

A tartomány értékadást még kiegészíteném azzal, amit korábban is írtam, ezzel csak képletet adhatsz meg és utána változtathatod értékké.

 

Tehát az működik hogy:

with összws.range(Cells(1, 1), Cells(1, utolsóoszl))

       .formula="=" & ws.name & "!A1"

       .value=.value

end with

 

Ami még működik, hogy tömbbe beolvasod a fejlécet és utána kiírod az új helyre:

dim fejlec() 'dinamikus tömbnek kell definiálni

 

fejlec= ws.Range(Cells(1, 1), Cells(1, utolsóoszl)).value

összws.Range(Cells(1, 1), Cells(1, utolsóoszl)).Value=fejlec

 

Ennek megvan az az előnye, ha ugyanazt a fejlécet használod máshol is, akkor csak a fejlec-re kell "hivatkozni".

 

Üdv.

Előzmény: pimre (23078)
Fferi50 Creative Commons License 2013.11.18 0 0 23080

Szia!

 

Azért ha a feladat lényegét leírnád, lehet, többet tudnánk segíteni neked.

Hiszen az Excelben számos olyan eszköz van, amivel a táblázatokat könnyen lehet kezelni.

Pl. kimutatások készítése, amelyek utána pillanatok alatt variálhatók.

Nem biztos, hogy neked kell kitalálnod azokat a programsorokat, amiket már eleve beépítettek valamilyen excel funkcióba.

Én mindig arra törekszem, hogy először dolgozzon az Excel és csak utána jövök én. Teljesítmény szempontjából is általában ez a szerencsésebb.

 

Más: ha egy sort összegzőnek szeretnél és beírod a szum képletet, utána ebben a sorban a képletet kell/lehet módosítani a hozzáadandó tartomány címének megfelelően.

Továbbá: Hasznos, ha az összegző sor az adatok előtt van, mert ilyenkor az összegzőképletet csak egyszer kell beírnod, ami akár az oszlop végére is mutathat. Ha újabb adatot írsz a következő sorokba, az összeg automatikusan képződik.

Ugyanez igaz összegző oszlopra is.

 

Üdv.

Előzmény: pimre (23078)
Fferi50 Creative Commons License 2013.11.18 0 0 23079

Szia!

 

Szerintem inkább így próbáld:

 

ws.Range(Cells(1, 1), Cells(1, utolsóoszl)).copy összws.Cells(1, 1)

 

 

Üdv.

Előzmény: pimre (23078)
pimre Creative Commons License 2013.11.18 0 0 23078

Szia!

 

Kösz, a helyzet az, hogy próbáltam a szum-al is a képletet, de azzal sem jött össze.

Az igazság az, hogy mintát mutatni nem érdemes. Az eredeti feladat egy sokezer soros, 98 oszlopos táblázat, sőt ebből is sok van. És az adatok gyűjtögetése ciklusban nagyon lassú, ezért szeretnék képleteket használni. 

 

És amíg a megfelelő képleteket nem találom meg, addig kisméretű mintatáblákon próbálgatom, amelyekbe néhány sort, és néhány oszopot teszek csak.

 

És nem ragaszkodnék a formula képlethez, de az általad írt megoldás is megfelel nekem. Tökéletesen működik.

 

Egyébként meg éppen most elakadtam a következőnél:

 

With ws.Range(Cells(1, 1), Cells(1, utolsóoszl))
összws.Range(Cells(1, 1), Cells(1, utolsóoszl)).Value = .Value ' fejléc másolás
End With

 

method range of object _worksheet failed hibaüzenetet kapok

Valószínű, hogy 1-2 óra alatt megtalálom a hibát, de hátha te kapásból átlátod.

Előzmény: Fferi50 (23076)
Fferi50 Creative Commons License 2013.11.18 0 0 23077

Szia!

 

Kérdésem:

 

Mindig új helyre töltöd be az új adatokat és azt szeretnéd látni a diagramon? Ha ez fontos, akkor a diagram forrását kell megadnod a makróban tartományként.

Van egy chartwizard tulajdonsága a chartnak, aminél a source paramétert kell megadni range("A1:B15") formában.

Ha elnevezted az adattartományt, akkor a név.referestorange kell a source-hoz (arra figyelj, hogy a név laphoz, vagy munkafüzethez van kötve, mert aszerint kell keresned).

 

Ha mindig ugyanoda töltöd be az új adatokat, akkor viszont sokkal egyszerűbb a helyzet:

Az adatokat betöltöd, utána kimutatásdiagram, létrehozod a diagramot.

Utána amikor frissíted az adatokat, frissül a diagram is.

Igaz, itt meg van kicsit kötve a kezed a diagram tipusait és formáját tekintve, de azért ez is elég kényelmes és gyorsan lehet pl. változtatni, hogy mit akarsz látni rajta.

 

 

Remélem, segítettem.

 

Üdv.

 

 

 

Előzmény: egerkiraly68 (23073)
Fferi50 Creative Commons License 2013.11.18 0 0 23076

Szia!

 

A VBA-ban megadott formula képletekre ugyanaz a szabály vonatkozik, mint a munkalap képletekre - hiszen ugyanazok - , így a saját magával való összeadás formula megadással nem megy, ez csak a VBA-ban működik.

Áthidaló megoldásként egy másik sorban alkalmazhatod a képletet, majd értékké változtatva átmásolhatod az összegsorba, valahogy így:

 

with range(cells(ujsor,1),cells(ujsor,oszlopszam))

     .formula="=R" & osszegsor & "C + R" & aktsor & "C"

     .value=.value

     .copy cells(osszegsor,1)

     .clear

end with

 

De miért nem használod az összesítő függvényeket (szum,stb)? Ha mutatsz egy mintát, szívesen segítek.

 

Üdv.

 

 

Előzmény: pimre (23075)
pimre Creative Commons License 2013.11.18 0 0 23075

Még mindig a tartományi képleteken vagyok elakadva. A következő részt szeretném kiváltani egy egysoros paranccsal, tekintve, hogy nagyon sok sor, nagyon sok oszlopát szeretném gyűjteni:

 

For j = 1 To oszlopszám
    Cells(összegsor, j) = Cells(összegsor, j) + Cells(aktsor, j)
Next i

 

Ez így ciklusban simán működik, de amint képletet próbálok hozzá kreálni, vagy körkörös hivatkozást jelez, vagy csak simán lenullázza az összegsorban lévő adataimat.

 

Tudnál még ebben is segíteni? 

Előzmény: Fferi50 (23034)
egerkiraly68 Creative Commons License 2013.11.18 0 0 23074

Helyesen: hivatkozik

 

Ami nem működik nálam relatív címzésként makrónál, az az Excelben amúgy simán használható SHIFT+CTRL+lefelé nyíl, vagy oldalra nyíl. Ugyan jól jelöli ki az Excel látszólag, de látszik a VBA kódban, hogy fix cellanevekre hiányzik bent a pivotnál.

Előzmény: egerkiraly68 (23073)
egerkiraly68 Creative Commons License 2013.11.18 0 0 23073

Sziasztok, hogyan tudom beállítani Excel 2007 angol nyelvű verzióban azt, hogy a rögzített makróm dinamikus tartományt tudjon kezelni?

 

Konkrétan: pivot táblát szeretnék úgy frissíteni minden egyes újabb forrásadatbetöltésnél, hogy az aktuális adattömböt vegye figyelembe.

 

Ami nem működik nálam relatív címzésként makrónál, az az Excelben amúgy simán használható SHIFT+CTRL+lefelé nyíl, vagy oldalra nyíl. Ugyan jól jelöli ki az Excel látszólag, de látszik a VBA kódban, hogy fix cellanevekre hiányzik bent a pivotnál.

Így legközelebb hiába fut le a lefelé és jobbra való kijelölés, a korábban fixen benne lévő cellanevekkel dolgozik a pivot a tábla frissítésénél.

 

Próbálkoztam azzal is, hogy túl járok a pivot eszén, elnevezést használva az adattartományra, így csak be kell frissítenem a pivotot, amikor újabb "target" adatforrásom van.

 

A gond csak az, hogy az elnevezést se csinálja meg jól a fent említett lefelé és oldalra való kijelöléssel. Pont ugyanez a gond a SHIFT+CTRL+End kijelöléssel is: mivel az Excel emlékszik rá, hogy korábban abban a cellában volt adattartalom, mert pl. korábban egy hosszabb adattartományom volt, akkor hiába van az újabb adattartományban kevesebb adatom, nem az utolsó sorig jelöli ki, hanem az üres cellákat is.

 

Ha esetleg valamilyen offsetes automatikus tartománykijelölés létezik a definiált "Target"-re, az is megoldaná a gondomat szerintem.


Az adattartomány az oszlopnevekkel az A7-es cellában kezdődik, nem A1-től. Az adatok A-tól P oszlopig terjednek, kb. 20 ezer soron. A munkalap neve Sales.

 

Köszönöm!

 

tbando Creative Commons License 2013.11.17 0 0 23072

Ajánlom még a figyelmedbe az excel súgó "A sorozatok értékeinek előrejelzése" című blokkját.

Előzmény: NPW (23070)
tbando Creative Commons License 2013.11.17 0 0 23071

Megoldás lehet hogy linearizálod a magasabbrendű függvényed adataid és azon határozod meg a forecastot. Majd az eredményt visszaalakítod az eredeti függvény szerintire.

Előzmény: NPW (23070)
NPW Creative Commons License 2013.11.17 0 0 23070

Van az előrejelzés (forecast) függvény, ami tök jó arra, hogyha a lineáris trend következő y-ját akarjuk kiszámolni. De mi van akkor, ha a trend nem lineáris, hanem másodfokú, harmadfokú stb? Ott milyen képletet kéne használni? (Ha grafikusan megrajzolom a trendvonalat, akkor kiírja az egyenletet, de ez többszáz esetben eléggé macerás kézzel bemásolni.)

kati79 Creative Commons License 2013.11.17 0 0 23069

Köszi, így már megy, bár biztos túlbonyolítom (index és sorszám függvénnyel a képletben).

 

Eddig úgy próbáltam ugyanis, hogy a legelső 3 legyen bronz, utána a legelső 2 ezüst, utána a legelső egy sárga:)

Működött, a változásokat is figyelembe vette, csak a többi adattal nem foglalkozott...

 

Köszi szépen még egyszer!

tbando Creative Commons License 2013.11.17 0 0 23068

Az a gyanum, hogy a képleteidben nem abszolut hivatkozást használsz. Tehát valahogy így kéne, miután kijelölted az A1:C20 tartományt:

 

=$C1=Nagy($C:$C;1)   stb.

Előzmény: kati79 (23067)
kati79 Creative Commons License 2013.11.17 0 0 23067

Sziasztok!

Tegnap este óta gondolkodom rajta, remélem, itt tud valaki segíteni:

 

Feltételes formázásról van szó, 2010-es Office-om van.

A feladat, hogy egy verseny első három helyezettjének pontszámát, nevét, klubját kellene kiemelni, arany-ezüst és bronz színnel.

A szerzett pontszám a C oszlopban van. Ezt sikerül is megoldani, de nem formázza az adathoz tartozó nevet és klubot, csak a pontszámot.

A kijelölt tartományban benne van az A és B oszlop is. Formátumot hiába másolom.

A kiírás szerint a sima kitöltést nem fogadják el, mert gondolni kell arra, hogy az eredmények változhatnak!

 

Előre is köszönöm!

tbando Creative Commons License 2013.11.17 0 0 23066

Aha! Így tényleg készen vannak a BC oszlopok. Annyira nem mélyedtem el a feladatleírásban, hogy erre magamtól rájöjjek. De akárhogyis van, a lényeg, hogy sikeresen megoldottad :)))). 

Előzmény: Fferi50 (23060)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!