Hirdetés
-
GAMEPOD.hu
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
-
Misi_D
tag
válasz
Colin111 #49794 üzenetére
Az xkeres keresési tartománya/tömbje egy oszlopos/soros. Itt most csak félreértésnek tűnik a tömb fogalma, nem azt akarja jelölni, h több oszlopos/soros, ahol keresi az első paraméterben megadottat, hanem szerintem csak arra akar vonatkozni, ha van egy számsor/adatsor, ami pl. szűréssel, képletekkel stb. áll elő (tehát kifejezetten az adatokról szól, nem a cellákról).
HA függvényeket nem is kell, de hasonló módszerrel inkább xkeres-eket ágyaznék egymásba, annyit, ahány oszlopban kell keresni; használva a függvény if_not_found paraméterét (a függvény 4. paraméterét - ott, ahol te nem adtál meg semmit, a két pontosvessző közé), oda tenném mindig egyre beljebb őket. A C1-C2-C3 oszlopjaidra, majd így tovább (az egyeztetési mód és a keresési mód alapértelmezett, ezeket nem is kell megadni a pontos keresésre, ill. az elsőtől az utolsóig típusú keresésnél):
-
föccer
nagyúr
válasz
Colin111 #49799 üzenetére
Szia!
Ennek a feladatnak nagyon =INDEX(HOL.VAN()) szaga van
A hol.van függvény m,egadja, hogy egy vektorban hányadik elem a keresett érték, amit az indexbe megadva vissza lehet kerestetni egy tömbben lévő értéket. Ha duplán használod a hol.van függvény (sorra és oszlopra is), akkor nagyon pont egy két dimenziós paraméter táblát készítettél.
-
-
Fferi50
Topikgazda
válasz
Colin111 #48583 üzenetére
Szia!
Pl. a munkalap eseménykezelését felhasználhatod erre:
A cellára duplakatt esetén hajtja végre az alábbi eseménykezelést:Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column > 5 Or Target.Row = 1 Then Cancel = True: Exit Sub
If Target.Value = "" Then Cancel = True: Exit Sub
Application.EnableEvents = False
reszletezo Target.Row
Application.EnableEvents = True
Cancel = True
End Sub
Az elején megvizsgálja, hogy az első 5 oszlopban van-e a kattintás és nem a fejlécen, illetve nem üres-e a cella.
Ezután kikapcsolja az eseménykezelőt és a meghívott makrónak átadja a kattintott cella sorát. Ha más módon lehet azonosítani a rekordot, akkor azt kell átadnia - kibogoznia valahonnan.
Miután végrehajtotta a meghívott makrót, visszakapcsolja az eseménykezelőt és letiltja a kattintás rendszer szerinti végrehajtását.
A meghívandó makró így nézzen ki:Sub reszletezo(ByVal sor As Integer)
'....ide jönnek az utasítások - a sor nevű változóban lesz a kattintott cella sora
End Sub
Ennek annyi a hátránya, hogy az adott területen nem tudod a duplakattintásokhoz kapcsolódó rendszerműveleteket végrehajtani.
Viszont cserébe az adott "rekord" bármelyik celláján duplán kattintva elindul a részletező makró és nem kell külön parancsgomb és "száz" makró.
Remélem sikerülni fog.
Üdv.[ Szerkesztve ]
-
-
Mutt
senior tag
válasz
Colin111 #37832 üzenetére
Szia,
Segédoszlop nélküli megoldás nem jön össze, de egy segédoszloppal igen.
Nálam a segédoszlop az M-ben van. M2 képlete:
=HA(A2<>"";HA(KIMETSZ(A2)=KIMETSZ(A1);0;1);"")Ha van a sor A-oszlopában név, akkor ha az előtte lévő sorban ugyanaz a név, akkor ismétlődés van és 0-t iratunk ki, különben 1-et. A KIMETSZ az esetleges felesleges szóközöket szűri, nem kötelező.
Ezt a képletet húzd le jó sok sorba, mondjuk 1000 sor.A Névkezelőben egy új dinamikus tartományt hoztam létre "seged" névvel Képlete:.
=ELTOLÁS(Munka1!$M$2;0;0;DARAB2(Munka1!nevsor))Ezek után a K3-ban a képlet erre változik:
=HA(K2>DARABTELI(seged;1);"Nincs több név";INDEX(nevsor;ÖSSZESÍT(15;6;SOR(INDIREKT("A1:A"&DARAB2(seged)))/seged;K2)))A segédoszlop lehet egy rejtett lapon, vagy elrejtheted az oszlopot, akár az oszlop betű szinét fehérre is állíthatod.
üdv
-
Fferi50
Topikgazda
válasz
Colin111 #37803 üzenetére
Szia!
Miért is nem jó a jó képlet? Ami minden egyes kattintásra a következő nevet veszi fel....
Vagy nem arra koncentrálunk, ami a feladat lenne?
Mert ezt a kérdést
"sajnos ennek sem lehet függvénnyel magadni az ugrás/lépés számot...."
nem értem, miért kellene külön lépésszámot megadni?Üdv.
-
Mutt
senior tag
válasz
Colin111 #37799 üzenetére
Szia,
Az általam küldött megoldás kiszűri az ismétlődéseket, 1 hiba van a megoldásomban, hogy K1 helyett neked K2-ben van a számlálód, így a helyes és összetett képlet amit K3-ba kell írnod:
=HA(K2>SZORZATÖSSZEG(1/DARABTELI(nevsor;nevsor));"Nincs több név";INDEX(nevsor;ÖSSZESÍT(15;6;HOL.VAN(nevsor;nevsor;0)/HA(GYAKORISÁG(HOL.VAN(nevsor;nevsor;0);SOR(INDIREKT("A1:A"&DARAB2(nevsor))))>0;1;0);K2)
A képlethez kell egy dinamikus tartomány, Képletek -> Névkezelőt használd hozzá.
A képletben a
HA(GYAKORISÁG(HOL.VAN(nevsor;nevsor;0);SOR(INDIREKT("A1:A"&DARAB2(nevsor))))>0;1;0)
rész szűri ki az ismétlődéseket, 1-et írva a név első megjelenéséhez, 0-t pedig az ismétlődéshez.üdv.
-
Mutt
senior tag
válasz
Colin111 #37796 üzenetére
Egy hosszú képlet esetleg Excel 2010 vagy frissebb esetén:
=HA(K1>SZORZATÖSSZEG(1/DARABTELI(nevsor;nevsor));"Nincs több név";INDEX(nevsor;ÖSSZESÍT(15;6;HOL.VAN(nevsor;nevsor;0)/HA(GYAKORISÁG(HOL.VAN(nevsor;nevsor;0);SOR(INDIREKT("A1:A"&DARAB2(nevsor))))>0;1;0);K1)))
Létre kell hoznod a névkezelőben nevsor névvel egy dinamikus tartományt, a képlete (Munka1 füzet esetén):
=ELTOLÁS(Munka1!$A$2;0;0;DARAB2(Munka1!$A:$A)-1)
-
Fferi50
Topikgazda
válasz
Colin111 #37794 üzenetére
Szia!
A neveket másold le egy külön oszlopba, majd ismétlődések eltávolítása. - ezáltal csak egy-egy név marad.
A léptetőnek a min-max értékét ehhez az oszlophoz igazítsd.
Ha mondjuk az X oszlopban vannak a nevek, a léptető pedig a K1 cellához van kapcsolva, akkor a képlet=Index($X$1:$X$10;$K$1)
amit írhatsz pl. a K2 cellába akár.Üdv.
[ Szerkesztve ]
Új hozzászólás Aktív témák
- Intel Core i3 / i5 / i7 / i9 10xxx "Comet Lake" és i3 / i5 / i7 / i9 11xxx "Rocket Lake" (LGA1200)
- Ingyen kellene, de tegnapra
- iPhone-t használók OFF topikja
- Politikai mémek
- Viszlát, iPhone SE!
- Milyen videókártyát?
- Mibe tegyem a megtakarításaimat?
- Ukrajnai háború
- Nyaralás topik
- iPhone topik
- További aktív témák...