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.
Adott egy oszlop,amiben a következő feltétel van:=HA(K2="M";I2; " ")
a feladat az lenne,hogy ha teljesűlt a feltétel és érték kerül a cellába azt a cellát zárolni kellene,de az üres vagy a feltételnek nem megfelelő cellába lehesen írni.
Eddig rendben is van,a baj csak akkor kezdődik ha elrontotta a beírt számot és "DEL"-el törli.
Ekkor a képlet is oda van..Megköszönném ha valaki kisegítene.
Kérlek segítsetek, hogyan tudonám a következő feladatott megoldani. Az A oszlopban van mondjuk egymás alatt 25 cellában adat(szám) a B oszlopban van egymás alatt 15 cellában adat(szám). A feladat az lenne, hogy keresse meg az A oszlopban lévő számok között azt amelyik a B oszlopban is megtalálható és ezeket vagy jelölje meg(vagy jelölje össze) vagy a C oszlop azonos sorában adjon vissza egy értéket egyezzőség esetén.
Kösz, az valóban lehet, hogy nem iterációról, hanem integrál kiszámításról van szó. Ehhez sajnos nem értek.
De az továbbra is fennáll, hogy nem kerekítési pontosságbeli különbségekről van szó, hanem eljárásbeliről. Elképzelhető, hogy régebben az általam leírt algoritmust használták, és azóta áttértek másikra.
Időközben több más adatsoron is lefutattam a kétféle értékelést. Az eredmények viszonylag közeliek, egyetlen esetet kivéve, ami viszont nagyságrendi (ellenőriztem, nem elütésről, vagy adathibáról van szó). És ez utóbbi különösen zavaró.
saját képletem Excel eredmény
p=0.3051 0.3044
P=0.4422 0.4366
p=0.1205 0.1239
p=0.0792 0.9697
p=0.0936 0.0970
Egyébként az összes többi adat ugyanaz. Tehát az általam számított érték és az Excel beépített értékelő program valamennyi tizedesre ugyanazt az eredményt adja az adatok átlaga, a regressziós egyenes paraméterei, az r és r², a t érték és az F érték esetében. Csak ez a fránya p érték más.
Off: valaki persze mondhatná, hogy használjam a beépített Excel függvényeket, de sajnos több munkalapon kell 100-100 adatpárra elvégeznem a munkát, amit nem szeretnék kézzel egyenként megtenni. Ezért írok programot.
És én azt kérem, hogy megköszönve az eddigi tippeket, hagyjuk egy időre a témát, mert ez már nem Excel programozási kérdés, hanem matematikai statisztikai. Megpróbálom ehhez értőkkel felvenni a kapcsolatot, és itt nem offolok tovább.
Nem vagyok matematikus, de anno tanultam ilyeneket. Itt nem iterációról van szó, az egy kicsit más. Itt az van, hogy az intgerált nem lehet zárt alakban elvégezni, azaz nem lehet a primitiv függvényt meghatározni, ezért valamilyen módszerrel egy polinomot állítanak elő, valószínűleg sorfejtéssel. Ami jól illeszkedik a problémához és megbízhatóan jó eredményt ad. Az általad eredményül kapott két érték közt simán lehet különbség, bár ebben az esetben ez valóban nagynak tűnik. DE abba is gondolj bele, hogy a számítógép nem tud hatványozni, azaz nem tudja kiszámítani a 3.456^5,837 értékét, ezt is sorfejtésen alakuló algoritmusssal számolja ki ...
Esetleg próbáld ki az ecel beállításoknál, hogy a megjelenített pontossággal számoljon az excel, akkor mekkora az eltérés?
Kösz, ez jó nyomnak tűnt. A linkből kiindulva elkezdtem keresgélni az angol nyelvű szakirodalomban. Találtam egy-két kalkulátort, ami szintén az Excel által adott értéket produkálja az enyémmel szemben. Aztán találtam képletet is hozzá, ami egészen más alapon működik, mint az enyém: http://easycalculation.com/statistics/f-test-p-value.php. Szóval lehet, hogy nem a kerekítési pontosságon múlik a dolog. Furcsa is lenne, hiszen a Double az Double pontosság, nemigen változhatott sokat az elmúlt időszakban.
Kell most nekem egy kis idő, amíg értelmezem ezt a képletet, és a kettő közti különbséget, de kösz a kiinduló linket.
Persze, ha akad itt egy matematikus, aki tudja, hogy működött az általam használt képlet, meg hogyan működik a fenti link képlete, mi köztük a különbség, mi az elméleti háttér, annak nagyon örülnék, mert nem biztos, hogy ezt magamtól meg tudom fejteni.
Én is erre gondolok. Az Fisher-féle F elosztás ( http://en.wikipedia.org/wiki/F-distribution) eloszlásfüggvényben egy integrált közelítő módon kell kiszámítani. Itt az értékes tizedesjegyek nagyban befolyásolják a pontosságot.
Egyébként érdemes lenne még ellenőrizni, hogy az regresszió F-próbafüggvénye ugyanaz az érték mindkét módszerben.
Bár sajnálatos módon a legtöbb képlet esetében már az egyenlőségjel utáni 10-ik karakternél elvesztem a fonalat, de a hiba okával kapcsolatban még megjegyezném, hogy akár az is lehet, hogy a későbbi excel-ek több tizedessel számolnak.
Az előbb kicsit gyorsan válaszoltam, szóval, tedd a userform eseménykezelőjébe az alábbi kódot és a form tulajdonságoknál állítsd be ezt: StartUpPosition = 0 - Manual
Private Sub UserForm_Activate()
With Me .Width = Application.Width .Height = Application.Height End With End Sub
F próbáról lévén szó, a számláló szabadságfoka 1, a nevezőé n-2, az f értékét már kiszámoltam, és átadom a p értéket kiszámító függvénynek. Az algoritmus a következő:
a = 2 / 9 ' (helyesen 2/(9*számláló szabadságfok), de az utóbbi itt mindig 1
Amúgy az utóbbi képletet az én Excelem (Excel 2003, majd egyszer áttérek egy újabb verzióra) expression too complex hibát ad, de ez nem volt gond, felbontottam több lépésre.
A sejtésem az, hogy a gond az utolsó képlettel lehet. Sajnos nem vagyok matematikus, de ezt valami iterációnak gondolom. És nem tartom kizártnak, hogy nagyobb (vagy kisebb) mélységig is lehetne iterálni, és hogy az Excel beépített függvénye valami ilyesmiben tér el.
Szóval örülnék, ha látnám az általuk használt algoritmust, esetleg egy matematikai statisztika könyvet, ami az algoritmust tartalmazza.
Ismét segítséget kérek. Egy regresszió analizáló programon dolgozom. Lényegében kész, és szinte minden adat stimmel. A programomat lefuttatva szinte minden érték azonos az adatelemzésnél elérhető regressziószámítás paramétereivel.
Egyetlen kivétel a p érték, ami az F próba szignifikanciaszintjét megadja. A konkrét példáimon minimális az eltérés, de van. Ami nálam 0.3055, az a beépített függvénynél 0.3044.
Az én algoritmusom több mint 10 éves, és elég megbízható helyről kaptam annakidején. Már többször átnéztem, nem látok elütést ahhoz képest. Ugyanakkor nyugtalanít az eltérés, de az Excelnek a statisztikai rutinokat tartalmazó programját csak jelszóval tudnám megnyitni, ami érthető okokból nem elérhető felhasználóként.
Viszont nagyon szeretném összehasonlítani az algoritmusokat.
Hogy használtad? Megadtál mindegyikhez (.left, stb) valami számot? Mert ott kell megadni, hogy a képernyő bal felső sarka hol legyen illetve, hogy az Application window milyen magas és széles legyen (pixelben).
Próbáld meg macro recorderrel. Indítsd el, mozgasd és méretezd át az Excel főképernyőt és nézd meg a kódot amit generált.