- Kanada feltalálta a Netflix-adót
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- YouTube
- Megpróbálják a spanyolok: megvédenék a gyerekeket a közösségi médiától
- Vírusirtó topic
- PHP programozás
- Évente ontja majd magából az új AI-chipeket az NVIDIA
- Ezúttal bennfentes kereskedelemmel vádolják Elon Muskot
- Aliexpress tapasztalatok
- Sweet.tv - internetes TV
-
IT café
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
-
Fferi50
őstag
Szia!
Ehhez egy kissé meg kell variálni az fkeres és ha függvényeket, (nem írtad, milyen excel verziód van. 2010-től működik a hahiba függvény is, én ezt vetettem még be.)
Az egyszerűség kedvéért elneveztem a vizsgálandó tartományokat, az első munkafüzet tartományának neve elso, a másodiké masodik, a harmadiké harmadik.
A kigyűjtött értékek az E oszlopban vannak, a képletek a G,H,I oszlopokba kerülnek:
F1 cella képlete:
=HAHIBA(FKERES(E1;elso;2;0);HAHIBA(FKERES(E1;masodik;2;0);HAHIBA(FKERES(E1;harmadik;2;0);"")))
G1 cella képlete:
=HA(HAHIBA(FKERES(E1;harmadik;2;0);"")=F1;"";HA(HAHIBA(FKERES(E1;masodik;2;0);"")=F1;HAHIBA(FKERES(E1;harmadik;2;0);"");HA(HAHIBA(FKERES(E1;masodik;2;0);"")="";HAHIBA(FKERES(E1;harmadik;2;0);"");HAHIBA(FKERES(E1;masodik;2;0);""))))
H1 cella képlete:
=HA(HAHIBA(FKERES(E1;harmadik;2;0);"")=F1;"";HA(HAHIBA(FKERES(E1;harmadik;2;0);"")=G1;"";HAHIBA(FKERES(E1;harmadik;2;0);"")))Ezeket kell végighúzni a 3 oszlopon.
A hahiba függvény a Ha( hibás(kifejezés), hibaesetén,nem hiba esetén) összetett függvényt helyettesíti.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz nrg007 #24090 üzenetére
Szia!
Nézd meg légyszives a speciális szűrést (régebbi verzióban irányított szűrés). Ott van olyan opció, hogy másolja át egy új helyre.
Egy szűrőtartományt kell megadni, ahol az első cella a Szükséges? cimke, az alatta levő pedig az igen.
Kijelölsz egy cellát ahova másolni kell (mert az igen oszlop is másolódik), utána a két másik oszlopot bemásolod az F-G oszlopba, ahová kell.Üdv.
-
Fferi50
őstag
válasz PETEE78 #24100 üzenetére
Szia!
Javaslom az irányított/speciális szűrőt - ezzel egyszerre több oszlopot is szűrhetsz és van benne olyan opció is, hogy csak az egyedi értékeket (vagyis ami többször van azt nem szűri ki). Átmásolod egy új helyre és utána megnézed, hogy hány sort tett ki - vagy a darabteli, vagy más függvénnyel.
Üdv.
-
Fferi50
őstag
válasz nrg007 #24107 üzenetére
Szia!
Értem a kívánságod, de:
biztos, hogy minden egyes cellaérték változáskor szeretnéd az F és G oszlop adatait változtatni?
nem lenne elég, ha az igenek kijelölése után megcsinálnád a szűrést?
Egyébként az egész folyamatot makróval is meg lehet csinálni, úgy hogy egy billentyűkombinációval tudod a listádat frissíteni - de az makrós megoldás (és makróbarát munkafüzetként kell menteni.)Képleten is gondolkodtam már, index és hol.van függvények kombinációjával kissé bonyolult képlettel úgy gondolom meg lehet oldani, de nem csináltam végig, mert úgy gondoltam, a szűrés egyszerűbb.
Mi a véleményed?
Üdv.
-
Fferi50
őstag
válasz nrg007 #24107 üzenetére
Szia!
Megcsináltam a képleteket:
F4 cella képlete: =INDEX($B$1:$B$21;HOL.VAN("igen";$A$1:$A$21;0))
G4 cella képlete: =INDEX($C$1:$C$21;HOL.VAN("igen";$A$1:$A$21;0))F5 cella képlete:
=HAHIBA(INDEX(INDIREKT("B"&HOL.VAN(F4;$B$1:$B$21;0)+1&":$B$21");HOL.VAN("igen";INDIREKT("A"&HOL.VAN(F4;$B$1:$B$21;0)+1&":$A$21");0));"")G5 cella képlete:
=HAHIBA(INDEX(INDIREKT("C"&HOL.VAN(F4;$B$1:$B$21;0)+1&":$C$21");HOL.VAN("igen";INDIREKT("A"&HOL.VAN(F4;$B$1:$B$21;0)+1&":$A$21");0));"")Ez utóbbi két képletet húzd le végig az egész F és G oszlopon.
Üdv.
-
Fferi50
őstag
válasz KaiotEch #24129 üzenetére
Szia!
Az érvényesítés az rendben van úgy, ahogyan van. Viszont képletet tartalmazó cellában nem hatásos az érvényesítés.
Az eredményt a hatodik cellában akarod látni. Akkor oda kell a képlet is. De ez a képlet még egyszerűbb:
= min(szorzatképlet;x)
Ez mindig a kettő közül a kisebbet fogja mutatni eredményként.Üdv.
-
Fferi50
őstag
válasz KaiotEch #24132 üzenetére
Szia!
Ha az X-et tudod előre, akkor azon celláknál (az első 5-nél) az adatérvényesítés maximumába írd be az X-et. (Adatok - érvényesítés - egész szám: minimum - maximum).
Ha nem csak egész szám írható be, akkor adatok - érvényesítés -egyéni - és a képlet
=ÉS(J1>5;J1<100)
J1 az adott cella, amire az érvényesítés szól, az 5 és a 100 helyébe írd a saját minimum, maximum értékedet.Ha eredménytől függően szeretnéd a beírható maximumot korlátozni, az már keményebb dió.
Üdv.
-
Fferi50
őstag
válasz KaiotEch #24134 üzenetére
Szia!
Nálam a J1:J5 -ben vannak a szummázandó értékek.
Akkor az első cella érvényesítésének képlete legyen ez:
=ÉS(J1>=0;SZUM($J$1:$J$5)<=X)
Beírod az első cella érvényesítésébe, majd nullát írsz a cellába és végigmásolod a további 4 cellába is.
A szum képlet helyébe azt a képletet írd, amivel szabályozod a 6. cellába írandó értéket.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz PETEE78 #24143 üzenetére
Szia!
Ez akkor fordulhat elő, ha a frissítéskor megváltoznak a sor, de főként az oszlop viszonyok (több, vagy kevesebb lesz belőlük), vagy a frissítés folyamán az eredeti adatokat tartalmazó sorok/oszlopok törlődnek.
Normál esetben ilyennek nem lenne szabad előfordulni. A hivatkozás "fixálásra" nincs lehetőség, de nincs is rá szükség.
Esetleg leírhatnád konkrétan, hogy milyen a hivatkozás a másik munkalapon és mit csinálsz a frissítéskor, illetve milyen módon frissítesz.
Üdv.
-
Fferi50
őstag
Szia!
A formokon (és a munkalapokon) levő vezérlők eseménykezelésére nem hat az application.enableevents beállítása (sajnos).
Ezért ott trükkökhöz kell folyamodni.
Mielőtt kiadod az értékadó utasítást, megnézed a gomb jelenlegi értékét és az adott oszlop láthatóságát, ha megfelelő mindkett, akkor nem kell kiadni az utasítást. Ha nem jól áll valamiért (pl. a gomb benyomva, az oszlop pedig látszik - vagy fordítva), akkor az oszlop láthatóságát állítod és nem a gombnak adsz értéket.Üdv.
-
Fferi50
őstag
válasz slashing #24154 üzenetére
Szia!
Ha a select előtt megnézed, hogy látható-e a sheet, ha nem akkor előtte láthatóvá és aktívvá teszed.
If sheet_akarmi.visible<>xlsheetvisible then sheet_akarmi.visible=xlsheetvisible
sheet_akarmi.selectÜdv.
Egyébként pedig szerintem meg kellene oldani a feladatot select nélkül. Az működik hidden és veryhidden állapotú munkalapnál is.
[ Szerkesztve ]
-
Fferi50
őstag
válasz slashing #24158 üzenetére
Szia!
Az advanced filternek valóban az a "heppje", hogy a célnak - de csak annak - az aktív munkalapon kell lennie.
De, ha csak egy oszlopból szeretnéd kiválogatni az egyedi értékeket, akkor csináld a következőt (2007-es exceltől kezdve működik):
sheets("akarmi").usedrange.columns("A").copy sheets("akarmi").range("D1")
usor=sheets("akarmi").range("D1").end(xldown).row
sheets("akarmi").range("D1:D" & usor).RemoveDuplicates columns:=1,header:=xlNoÉs máris megvan az egyedi listád, ez a pár sor működik rejtett munkalapon is.
Üdv.
-
Fferi50
őstag
válasz slashing #24161 üzenetére
Szia!
A "szépség" arra épít, hogy egyedi "azonosítók" vannak...Ami cégnevek esetében eléggé kézenfekvőnek tűnik, hiszen miért is vinném fel kétszer ugyanazt az ügyfelet - ha több telephelye és cime van, akkor hozzáteszem a telephelyét pl.
A dátumokkal kicsit más a helyzet, hiszen események történhetnek azonos napokon bőven. Meg lehet próbálni a ha függvénnyel megnézni, hogy az eredmény egyezik-e az előző értékkel, de ekkor szerintem nem +1 a hozzáadnivaló, hanem az új találat helye.
Másrészt az első oszloppal (igen - nem) szabályozni tudod a kiválasztást szerintem.Bocsi, most nem néztem meg a gyakorlatban, csak elméletileg futottam egy kört - lehet, hogy hibás következtetésre jutottam.
Üdv.
-
Fferi50
őstag
válasz pirit28 #24165 üzenetére
Szia!
"="ennyi az idő "&VLOOKUP(B143;$A$19:$D$131;4;0)"
Ez már egy szöveg - szám összefűzés, amire nem érvényes a cellaformátum (mivel az idő az excel számára egy (tört)szám).
Módosíts így
="ennyi az idő "& TEXT(VLOOKUP(B143;$A$19:$D$131;4;0);"időformátum")Az időformátum helyére tedd a neked szükséges formátumot pl. hh:mm.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz Mela Kehes #24167 üzenetére
Szia!
Talán a fordulók párosítását - azaz a sorsolást - szeretnéd megcsinálni?
Vannak erre különféle párosítási táblázatok, ahol csak egy számot kell az adott csapathoz/játékoshoz rendelned és a táblázatból máris kiolvasható a fordulók rendje és párosítása.
sorsolási táblaEz ugyan sakkra van, de messzemenően figyelembe veszi az otthoni-idegenbeli (sakkban ugye világos-sötét) játékeloszlás "igazságosságát" is.
Vagy itt van ez a link:kispályás foci
ami nem "kispályás" lehetőségeket kínál.Üdv.
-
Fferi50
őstag
Szia!
Nem kell a külső hivatkozásoknál nyitva lennie a hivatkozott fájlnak, csak akkor ugynevezett 3D-s neveket úgy kell használnod, hogy a fájlok teljes - elérési utat is tartalmazó - nevét kell betenned.
Kipróbálhatod a következőt: Megnyitod a cél és a forrás fájlt is. A célfájlban megcsinálod a hivatkozást.
Utána bezárod a forrásfájlt. Azt fogod látni, hogy megjelenik a teljes fájlnév a hivatkozásban. Ha ezt a hivatkozást tovább másolod a következő cellákba, akkor azokban is láthatóvá válik az eredmény. (Azaz ilyen módon "bele lehet látni" meg nem nyitott fájlokba is!)Én az indirektet ilyen esetekben nem szeretem használni - de ez ízlés kérdése -, inkább azt szoktam csinálni, hogy a képlet összetevőit tárolom különböző cellákban. Szükség esetén a megfelelő cellákba makróval beírom a képletet (pl. a fájl megnyitásakor), majd azonnal be is "helyettesítem" az értékükkel.
Tehát az adott cellára konkrétan írom be, cella.formula="Xyfájl.munkalapja!A1".Természetesen a formulában, ha kell szerepel az aposztróf és a szögletes zárójel is (általában kell).
Ha minden cellának megvan a képlete és az eredménye, akkor átváltom értékre.Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
Szia!
"Pl. minden megnyitáskor újrafrissítem ezeket makróból?"
Ez így van, akkor nincs mire rákérdeznie, ha nincs élő külső hivatkozás, a frissítés pedig a nyitási procedúrába belefér.
De lehet erre egy gombot is kijelölni /vagy billentyűkombiációt/, ami szintén végrehajtja a frissítést kérésre.
Üdv.
-
Fferi50
őstag
Még ezeket tenném hozzá:
A megnyitáskori frissítésre rákérdezést "el lehet nyomni" és le lehet tiltani a frissítést.
A hivatkozásokat meg lehet változtatni makróból is, meg a nyitott munkafüzetben menüből is.
Természetesen az értékké alakítás csak akkor járható út, ha nem gyakran frissülő adatkapcsolatokról van szó.
Mivel én ilyen célra nem használom az indirekt függvényt, így nem is tudom megmondani, hogy nem nyitott forrásfájlnál mit csinál. Ha azt mondod #HIV hibát "eredményez" , az már egy ok arra, hogy ne is használd, hiszen soha nem tudhatod, hogy nyitva van-e a forrásfájl, illetve akkor arról kell makróból "gondoskodni", hogy legyen mindegyik nyitva.
Ha tudod, hogy milyen forrást szeretnél mire változtatni - márpedig tudod, hiszen az "indirekt" cella tartalmát ismered változás előtt és azt is, amire szeretnéd cserélni, akkor működik a cellákban levő "direkt hivatkozás" cseréje is "egyszerű" range.cserél metódussal. Az "indirekt" értéket tartalmazó cellát ebben az esetben a régi hivatkozás forrásaként lehet használni, de nem ezzel kell összeállítani a cella képletét.
Üdv.
-
Fferi50
őstag
válasz RootRulez #24202 üzenetére
Szia!
Ha már C241 van a végén, akkor az elején is annak kellene lennie az A1 helyén!
De miért nem használod a KEREKÍTÉS függvényt, az kapásból jól kerekít le és fel:
=KEREKÍTÉS(C241*1,2;-2)-10
Ha pedig 30-tól szeretnél már felfelé kerekíteni, akkor
=KEREKÍTÉS(C241*1,2+30;-2)-10
Üdv.
-
Fferi50
őstag
válasz tgumis #24237 üzenetére
Szia!
Biztos, hogy számok vannak abban az oszlopban mindenütt, ahol a <>0 kritériummal szeretnél szűrni? Próbáld ki a szűrést "kézzel" a menüből, akkor kiderül a turpisság.
Mert egyébként nálam szépen szűri a számokat azzal a feltétellel is.Ha másolni akarsz, egyszerübb a
range("AY2:BD" & usor).specialcells(xlcelltypevisible).copy range.akármi
ahol az akármi helyébe írod a másolás célértékét. A szűrés után a látszó cellákat ezzel a módszerrel másolhatod át.
Nem kell a select....Sokszor hibát is okoz.Üdv.
-
Fferi50
őstag
Szia!
A "relatív" névadás szerintem roppant mód veszélyes dolog - legalábbis a 2010-es excelben biztosan, 2003-as excelben pedig egész egyszerűen körkörös hivatkozást "képes" eredményezni.
Gondolj bele: a relatív hivatkozással "elhúzod" az alapcella címét is, amikor egy új cellába helyezed a képletet (ugyanúgy, mint más képletttel), csak itt "megy vele" a viszonyítási alap is. Erre aztán "el is veszti" a fejét a VBA.
Hogy ez aztán "bug", vagy csak "elfelejtették" megírni, hogy ne adjunk nevet relatív címzéssel azt nem tudom.
Szerintem nem véletlen, hogy a névkezelő állandóan abszolut módon adja meg a címeket.Üdv.
-
Fferi50
őstag
válasz Pampipapi #24297 üzenetére
Szia!
Ehhez így sajnos nem fogsz megfelelő függvényt találni.
Illetve a MOST de inkább a MA az jó a beírás napján,de ahhoz, hogy későbbi napokon ne változzon meg, minden bezárás előtt át kell alakítani értékké:
Másolás - irányított beillesztés érték. Ezután már mindig az adott értéket fogja mutatni a cella. (Ezt természetesen lehet automatizálni makróval - és ekkor makróbarátként kell a füzetet elmenteni és a makró futtatását engedélyezni kell stb...)Üdv.
-
Fferi50
őstag
Szia!
Neked bizonyára sokkal nagyobb gyakorlatod van a relatív meghatározású nevek használatával, mint nekem, mivelhogy én nem használok ilyeneket. A kérdésed kapcsán próbáltam megnézni a viselkedésüket, illetve visszaemlékeztem pár hasonló próbálkozásomra (de bizonyára rosszul fogtam meg a témát).
Hogy a kérdésedre válaszoljak:
Alapcella - amin álltál, amikor a névkezelőben megadod a nevet. Ehhez a cellához képest a névhez tartozó tartomány (ami lehet egy-vagy több cella) sor és oszlop eltérése a viszonyítási alap a szóhasználatomban.
Tehát, ha a C1-ben állva adsz az A1 cellának nevet (név), majd F1-ben beírod a képletet =név, abban pillanatban a név már nem az A1 cellára fog vonatkozni, hanem az F1-től 2 cellával jobbra levő D1 cellára.
Ha pedig beleállsz az E1 cellába és megnézed a név melyik cellára mutat, meglátod, hogy az - mielőtt bármit is csinálnál vele C1-re hivatkozik.
DE: a VBA már meg is "bolondult", mert nála már az utolsó oszlopok valamelyike az, amihez a név tartozik.
És itt jön be, amit a 24292-ben írt Fire/SOUL/CD : a relatív névből látszólag mindig egy van, a valóságban pedig mindig a legutolsó aktív cellához képest számolja ki a név hivatkozását, tehát "több" név létezik belőle. Ezért nem egyértelmű - pont a dinamizmusa miatt. Szerintem a VBA ezért nem tud vele igazán mit kezdeni.Ez igaznak látszik a munkalapon generált relatív nevekre. Nem tudom - most nincs már igazán időm rá -, hogy a VBA-ban makróval megadott nevek hogyan viselkednek.
Emiatt az általam korábban már megtapasztalt ellentmondás miatt inkább a VBA objektum hozzárendelést és ahhoz az offset tulajdonságot használom. Pl.
dim alap as range
set alap=range("A1")
msgbox alap.offset(0,2).address ' = $C$1De persze - mint az már többszörösen bebizonyosodott, ízlések és pofonok különböznek. Így aztán nyilván különféle megoldásai lehetnek ugyanazon feladatoknak.
Üdv.
Új hozzászólás Aktív témák
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Videós, mozgóképes topik
- Konzolokról KULTURÁLT módon
- Kerékpárosok, bringások ide!
- Kanada feltalálta a Netflix-adót
- Dragon's Dogma 2
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Luck Dragon: Asszociációs játék. :)
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Nvidia GPU-k jövője - amit tudni vélünk
- További aktív témák...
- Új, bontatlan World of Warcraft gyűjtői kiadások
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Megmaradt - Eredeti Humble, Choice - Steam kulcsok
- Adobe Creative Cloud - 2024. 04. 05 - 2025. 04. 05-ig
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen