Keresés

Részletes keresés

pimre Creative Commons License 2024.06.07 0 0 38068

Még annyit, hogy a fájlnevek beolvasásához használd a DIR függvényt. Ciklusban végégmész a fájlokat tartalmazó könyvtáron - amíg nem lesz üres az eredmény -, és a beolvasott fájlnevekben ellenőrzöd, hogy azok-e, amik neked kellenek (feltéve, hogy nás fájlok is vannak az adott könyvtárban). Aztán sorba rakod őket, és onnan már egyszerű megnyitni, bemásolni.

Előzmény: pimre (38067)
pimre Creative Commons License 2024.06.07 0 0 38067

Ezt nem nehéz makróval összehozni egyetlen munkafüzet egyetlen munkalapjára.

 

Az adatfájlokhoz rendelj hozzá egy nevet, pl. Adatok 2024, az egyes letöltött fájlok neve legyen ugyanez egy sorszámot tartalmazó toldalékkal. Pl Adatok 2024_1, Adatok 2024_2 stb. Azt meg tudod adni a makróban, hogy az Adatok 2024 kezdetű fájlokat nyissa meg, majd a legelsőt másolja be fejlécestől, a továbbiakat pedig fűzze hozzá a meglévőhöz fejléc nélkül. 

Előzmény: Andyyy42 (38066)
Andyyy42 Creative Commons License 2024.06.07 0 0 38066

Sziasztok,

 

A következőkben szeretném a segítségeteket kérni:

Rendszerből kérünk le különböző időintervallumokra adatsorokat.
Ezeket a rendszer exel-be hozza, táblázatos formátumban.
A rendszerből 3 hónapnál hosszabb intervallumra nem lehet lekérdezni.

 

Így van amikor ha mondjuk 1 évre visszamenőleg kellenek adatok, az 4 lekérdezés.

Azt, hogyan lehet megcsinálni, hogy lekérdezem az adatsorokat 1 mappába és azt VBA-val egy excellé =  egy táblázattá alakítani őket.

Változó, hogy a mappában mennyi táblázat lenne (1-5 -10 db, bármennyi)
Mindegyiknek azonos a fejléce, de értelem szerűen a fejléc csak egyszer szerepeljen és aztán az adatsorok betöltve a lekérdezés sorrendjében.

 

Köszönettel,
András 

 

maciti Creative Commons License 2024.06.07 0 0 38065

Szia!

Kitűnő ötlet a tömb!

Egyébként is ez egy kód része, ezért nagyon egyszerűen bedobáltam az értékeket egy kétdimenziós tömbbe, és már teszi is a dolgát a VLookup...

Tökéletesen működik egyszerű mint a faszög! Hogy nem jutott ez eszembe egy hét alatt?

Köszi a segítséget

Előzmény: Fferenc50 (38064)
Fferenc50 Creative Commons License 2024.06.06 0 0 38064

Szia!

Nem mind arany ami fénylik a VBA-ban sem. 

1.

Ha alaposabban megvizsgálod a mintában levő függvényt, akkor kiderül, hogy az egy tömbfüggvény, csak O365-ben ez már nem jelölődik kapcsos zárójellel. 

Ezért én egyszerűen simán beírnám a függvényt FormulaArray-ként a VBA-val a C10 cellába, majd kitölteném lefelé:

Range("C10").FormulaArray="=VLOOKUP(CONCATENATE(A10,B10),CHOOSE({1,2},CONCATENATE(INDEX($K$2:$M$32,0,1),INDEX($K$2:$M$32,0,2)),INDEX($K$2:$M$32,0,3)),2,TRUE)"

Range("C10:C17").FillDown

Ezzel kész az egész.

Azért kell először egy cellába beírni a képletet és utána kitölteni lefelé, mert ha egyből az egész tartományba írnánk be, akkor csak az első sor érvénysülne az egész tömbben. (Ne kérdezd miért, ez van....)

2.

(Részben) VBA-val azért bonyolultabb, mert VBA-ban nem tudod a két oszlopot egyszerű módon összefűzni. Én azt választottam, hogy beolvastam a táblázatot egy tömbváltozóba, a változó első két oszlopát összefűztem - a második változatlan maradt -  és a harmadik oszlopban keresek, mivel az FKERES tömbben is képes keresni, nemcsak tartományban.

Igy nézne ki:

Sub Minta()
Range("C10").Value = Keres_Func(Range("C10").Row)
End Sub
Public Function Keres_Func(sora As Integer) As Variant
Dim ws As Worksheet
Dim r As Range
Dim keres As String
Dim keresotomb, xx As Integer
Set ws = Workbooks("Fkeres_tobb_feltetellel.xlsm").Worksheets("Proba2")
keres = ws.Range("A" & sora) & ws.Range("B" & sora)
keresotomb = ws.Range("K2:M32").Value
For xx = 1 To UBound(keresotomb, 1)
keresotomb(xx, 1) = keresotomb(xx, 1) & keresotomb(xx, 2)
Next
Keres_Func = Application.VLookup(keres, keresotomb, 3, 0)
End Function

 

Ne feledd, hogy ebben az esetben a cella értéket kap és nem képletet, így nem húzható lefelé!!! Minden cellára egyenként kell az értéket előállítani a függvény meghívásával. 

Szerintem ez a bonyolultabb út.

Előzmény: maciti (38063)
maciti Creative Commons License 2024.06.05 0 0 38063

Köszi!

Ha nem lesz más megoldás akkor ez marad.

 

Itt a fórumon néhány hete ügyeztünk erről a függvényről:

A minta C10 cellába beírva: =FKERES(ÖSSZEFŰZ(A10;B10);VÁLASZT({12};ÖSSZEFŰZ(INDEX($K$2:$M$32;0;1);INDEX($K$2:$M$32;0;2));INDEX($K$2:$M$32;0;3));2;IGAZ)

működik...

Ezt szerettem volna VBA ban megírni, de nem jártam sikerrel.

 

Előzmény: pimre (38062)
pimre Creative Commons License 2024.06.05 0 0 38062

Most alaposabban megnéztem.

 

Én nem tudok olyan Excel függvényről, amely 2 oszlop összefűzésének eredményét keresné egy másik tartomány 2 össze nem fűzött oszlopában.

 

Ehhez a célterületen létre kell hoznod egy segédoszlopot, és abban keresni. Nálam ez az N oszlop lett. A 2-32 cellák tartalma pedig az N2-ben K2 & L2,és ez lefelé kitölve.

 

És mivel képtelen voltam rájönni, hogy a vlookup függvény miért ad Variant/error hibát, ezért – amíg valaki meg nem találja a megoldást – javaslom, hogy a find függvénnyel keress. Ez egy Range típusú változóban adja vissza az eredményt (nálam találat a neve), és ennek a sor értékét lekérdezve tudsz értéket adni az A3-nak:

 

 

Sub Minta()

Dim eredm As Variant

Range("A3") = Keres_Func

End Sub

 Public Function Keres_Func() As Variant

   Dim ws As Worksheet

   Dim r As Range

   Dim keres As String, talalat As Range

  

   Set ws = Workbooks("Fkeres_tobb_feltetellel.xlsm").Worksheets("Proba2")

   keres = ws.Range("A12") & ws.Range("B12")

 

   Set talalat = ws.Columns("N:N").Find(what:=keres, LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlByColumns, MatchCase:=True)

   If talalat Is Nothing Then ' Ha nincs meg, bár ez elég valószínűtlen

    Keres_Func = "Nem találom"

   Else

    Keres_Func = ws.Cells(talalat.Row, "L")

   End If

   'Set r = WorksheetFunction.Choose(Array(1, 2), ws.Range("K2:K32") & ws.Range("L2:L32"), ws.Range("M2:M32"))

End Function

 

Előzmény: maciti (38061)
maciti Creative Commons License 2024.06.05 0 0 38061

Igen, a kíséletezéseim során ilyen verzió is volt.

Próbáltam a MACH funkciót is, de az sem jött össze:

Public Function Keres_Func() As Variant
   Dim ws As Worksheet
   Dim r As Range
   Dim keres As String
   
   Set ws = Workbooks("Fkeres_tobb_feltetellel.xlsm").Worksheets("Proba2")
   keres = ws.Range("A10") & ws.Range("B10")

  Keres_Func = Application.Match(keres, Choose(2, ws.Range("K3") & ws.Range("L3"), ws.Range("M3")), 0)

End Function

Bízom benne, hogy több szem többet lát...

Előzmény: pimre (38060)
pimre Creative Commons License 2024.06.04 0 0 38060

Szia, szerintem azért áll le a program, és ad típuseltérés hibát, mert a Choose függvényben tartományokat adtál meg: 

Keres_Func = Application.VLookup(keres, Choose(2, ws.Range("K2:K32") & ws.Range("L2:L32"), ws.Range("M2:M32")), 2, 0)

 

A teszt kedvéért átjavítottam a tartományokat egyedi cellákra: Choose(2, ws.Range("K2") & ws.Range("L2"), ws.Range("M2")), 2, 0), akkor nem állt le hibaüzenettel a program, de még így is hibás, mert a Keres_Func értéke Error 2042 lesz: Variant/Error. (Ezt a Locals ablakban láthatod). Majd az A3-ban pedig #HIÁNYZIK üzenet jelenik meg. Ennek az okát nem tudom. 

 

 

Előzmény: maciti (38059)
maciti Creative Commons License 2024.06.04 0 0 38059

Sziasztok!
Próbáltam a múltkori multi-keresést VBA kódba megírni, de nem sikerült, mindig tipuseltérés hibát ad. Van valami ötletetek?
Minta: https://data.hu/get/14205151/Fkeres_tobb_feltetellel.xlsm
Köszi!

Előzmény: Fferenc50 (37987)
m54-b Creative Commons License 2024.05.31 0 0 38058

 

 

Az adatsort havonta igazítod. Ha nincs adatsorod, amelyik az év végén lenne, akkor az időskálát meg kell adni fixen.

Előzmény: hellsing (38056)
Fferenc50 Creative Commons License 2024.05.31 0 0 38057

Szia!

Legyen üres az a cella, amiben még nincs adat - képlet se legyen benne! Ezután az adatforrás kiválasztása párbeszéd panelen rákattintasz a rejtett és üres cellák gombra, majd bejelölöd az adatpontok összekötése vonallal opciót.

Amikor adat kerül - akár képlettel - a még üres cellába, ez az opció nem hat már tovább.

Üdv.

Előzmény: hellsing (38056)
hellsing Creative Commons License 2024.05.31 0 0 38056

Üdv, segítség kéne. Van egy vonaldiagramom, ami éves adatokat jelenít meg. Az a gond, hogy ahol még nulla van (értsd: a jövőbeni adatok helye, pl. most a június), ott a mostani tudásommal két rossz közül választhatok:

 

1: a cellákban elrejthetem a nullákat (Beállítások -> Speciális...), de a vonaldiagram beleáll a földbe, ami nem néz ki jól;

2: a cellákban a nullák helyén =HIÁNYZIK()-ot jelenítek meg, amit elrejthetek (Feltételes formázás), és a vonal nem áll a földbe, hanem megszakad (ez a cél), de a cella értéke a többi munkalapra is átmegy, mindenhol hibával, amit q kényelmetlen lekezelni.

 

Van valami jobb megoldás?

Eredő Vektor Creative Commons License 2024.05.31 0 0 38055

Az Excel-ben található hiperhivatkozások működése és a kattintási viselkedés beállítása több tényezőtől függ, beleértve a felhasználói beállításokat és a program verzióját is. Az alábbi lépések segíthetnek a probléma megoldásában:

1. Frissítések Telepítése

Győződjön meg róla, hogy minden felhasználó a legújabb Office frissítéseket telepítette. Ez sok esetben megoldhatja a problémákat.

2. Alapértelmezett Böngésző Beállítása

Győződjön meg róla, hogy minden felhasználónál ugyanaz a böngésző van beállítva alapértelmezettként. Az Excel hiperhivatkozások megnyitásához általában az alapértelmezett böngészőt használja.

3. Excel Beállítások Ellenőrzése

Ellenőrizze az Excel beállításait minden felhasználónál:

  1. Nyissa meg az Excel-t.
  2. Kattintson a Fájl menüre.
  3. Válassza a Beállítások lehetőséget.
  4. Menjen a Speciális fülre.
  5. Görgessen le a Szerkesztési beállítások szakaszhoz.
  6. Győződjön meg róla, hogy a "Hiperhivatkozások kattintásra aktiválása" beállítás be van kapcsolva.

4. Böngésző Biztonsági Beállítások

Néha a böngésző biztonsági beállításai megakadályozhatják a hiperhivatkozások közvetlen megnyitását. Ellenőrizze és szükség esetén állítsa vissza a böngésző biztonsági beállításait.

5. SharePoint Beállítások

Ha a fájl egy SharePoint alkalmazásban van tárolva, győződjön meg róla, hogy a SharePoint beállításai egységesek minden felhasználó számára. Az engedélyek és a hozzáférési beállítások eltérései is okozhatják a problémát.

6. Makró Biztonsági Beállítások

Néha a makró biztonsági beállítások is befolyásolhatják a hiperhivatkozások működését. Győződjön meg róla, hogy minden felhasználónál a makró biztonsági szint megfelelően van beállítva.

Összefoglalás

A probléma megoldása érdekében ellenőrizze a következőket:

  1. Office frissítések telepítése.
  2. Alapértelmezett böngésző beállítása.
  3. Excel beállítások ellenőrzése (különösen a "Hiperhivatkozások kattintásra aktiválása" opció).
  4. Böngésző biztonsági beállításai.
  5. SharePoint beállításai.
  6. Makró biztonsági beállításai.

Ezek a lépések segíthetnek abban, hogy a hiperhivatkozások minden felhasználó számára megfelelően működjenek.

Előzmény: dorogszu (38054)
dorogszu Creative Commons License 2024.05.30 0 0 38054

=HIPERHIVATKOZÁS(ÖSSZEFŰZ(G$1;B303);B303) adott ez a hivatkozás amely megfelelően működik . A file egy sharepoint alkalmazásban felhőben van elhelyezve. Több felhasználó is használja. Vannao olyan felhasználók akinél a hivatkozás a bal egérgombbal való kattintással megnyílik. Ez a jó. Vannak olyan felhasználók akiknél a hivatkozást csak két billentyű lenyomásával tudja elindítani. Mit kell beállítani, hogy a hivatkozás a bal egérmutató kattintásával elinduljon?

 

Fferenc50 Creative Commons License 2024.05.27 0 0 38053

Szia!
Elképzelhető, hogy a szövegből oszlopokkal lenne érdemes kezdeni. Ott a 3. lépésben ki lehet választani az oszlop formátumát.

Ráadásul rá lehet ereszteni ugyanarra az oszlopra, nem kell hozzá segédoszlop.

Üdv.

Előzmény: Eredő Vektor (38052)
Eredő Vektor Creative Commons License 2024.05.27 0 0 38052

Mi a dátumot tartalmazó cella szövegformátuma? (Ctrl+1 billentyűvel [is] megnézhető a szövegformátum)

 

 

Ha ez a szövegformátum nem dátum típusú (valószínűleg így van), akkor használd a 

https://support.microsoft.com/hu-hu/office/d%C3%A1tum-f%C3%BCggv%C3%A9ny-e36c0c8c-4104-49da-ab83-82328b832349

függvényt.

 

A hónap, nap szétválasztásához, pedig a BAL, JOBB, KÖZÉP függvények használhatóak a DÁTUM függvény belsejében.

 

Ez csak 1 lehetőség a sokból.

 

Ha nem dátum formátumúak az ilyen dátumot tartalmazó cellák, akkor lehet, hogy érdemes megpróbálni a szövegformátumot dátumra állítani, hátha dátummá alakul és onnantól a dátumfüggvények működnek rajta.

 

De ez még kevés lesz, végig kell az átalakított szövegformátumú cellákon "gyalogolni" egy F2, ENTER művelettel. Ha nagy tömegvben an van oszlopban , akkor ezt megteszi helyetted a szövegből oszlopok opció.

Előzmény: brandi12345 (38051)
brandi12345 Creative Commons License 2024.05.27 0 0 38051

Sziasztok! Segítséget szeretnék kérni.Van egy táblázatom amiben dátumok vannak

(sok dátum).Beirva úgy van,hogy 11,03, tehát forditva 3.hó 11 lenne.

Képlettel hogy lehetne megoldani hogy tudjam melyik hét a képletbe irjam be hogy melyik év.

Ha az idei év 2024-03-11 ez lenne az eredmény és ebböl már a HÉT.SZÁMA képlet megadná az eredményt.

Gondoltam összefüzésre. Az évet összefüzném a napok meg a hónapokkal de nem lett úgy jó.

Erre szeretnék megoldást.Köszönöm előre is.

zed79 Creative Commons License 2024.05.27 0 0 38050

Nagyon köszönöm, tökéletes!!!

Előzmény: pimre (38049)
pimre Creative Commons License 2024.05.26 0 0 38049

"az egyes értékek végén van még egy plusz vessző. (Valamint egy szóköz.) ".  Próbáld meg, akár jegyzettömbbel, akár Excellel megnyitni - utóbbinál egyelőre nem kérni a szövegből oszlopok transzformációt -, majd a cserénél a Vesző + szóközt valami másra (például pontosvessző) cserélni. ezzel megmaradnak tizedsvesszők, de a határolójel a pontosvessző lesz. Ezzel már fog működni a transzformáció.

Előzmény: zed79 (38048)
zed79 Creative Commons License 2024.05.26 0 0 38048

Sziasztok!

 

A problémám az alábbi. Egy térinfós szoftver .csv-ben dobja ki az eredménytáblát, amellyel tovább kellene dolgoznom.

A több oszlopban lévő numerikus értékek tizedesjegy elválasztója vessző, emellett az egyes értékek végén van még egy plusz vessző. (Valamint egy szóköz.) 

Próbáltam az Adatok/Szövegből oszlopok-kal (szóközt beállítva. mint határoló jelet), ami szépen külön oszlopokba rendezi az értékeket, ugyanakkor a gond továbbra is az egyes értékek végén található vessző. Ez nyilvánvalóan nem szükséges.

Hogyan lehetne eltávolítani az értékek utáni vesszőt? Köszönöm a segítségeteket!

 

 

Takeoff. Creative Commons License 2024.05.26 0 0 38047

Köszönöm! 

 

Ezzel el leszek egy darabig. 

Előzmény: Fferenc50 (38039)
Fferenc50 Creative Commons License 2024.05.25 0 0 38046

Szia!

Attól függ, milyen címzéssel használod a képletet, de a lehúzásnál is ugyanaz a helyzet. Ha abszolút ($-os) címzést használsz sorra és oszlopra is, akkor igen.

Ha lehúzással jó volt a képlet, akkor a másolással is jónak kell lennie.

De örülök, hogy Imre javaslatával megoldottad.

Üdv.

Előzmény: MM10 (38042)
MM10 Creative Commons License 2024.05.25 0 0 38045

nagyszerű megoldás,köszönöm 

pimre Creative Commons License 2024.05.25 0 0 38044

Járművön írtam telefonon, remélem az elutesek ellenére is érthető.

Előzmény: pimre (38043)
pimre Creative Commons License 2024.05.25 0 0 38043

Írd be a képletet egy segéd oszlopba (persze a B elé tegyél dollarjelet), aztán húzd le.

Utána másod kia teljes oszlopot, és irányított beillesztessel másold helyére csak a képletet.

Előzmény: MM10 (38042)
MM10 Creative Commons License 2024.05.25 0 0 38042

de így a képlet változatlan marad.

 

tehát a képletem mondjuk B7 ,és az alatta lévő helyen már B8 kell hogy legyen,majd B9 és így tovább. Ha lehúzom váltja a képletet is ugye,de a formátumot. én úgy szeretném hogy a formátum is megmaradjon minden helyen ahogy volt,és a képlet is változzon úgy mint lehúzásnál és ne keljen egyenként bemásolnom 800 helyre. Ezt így nem lehet megoldani sehogy sem?

Fferenc50 Creative Commons License 2024.05.25 0 0 38041

Szia!
Lehúzással megy a formázás is. Helyette: kijelölöd a másoladó képletet tartalmazó cellát, majd Ctrl +C  (vagy jobb egérgomb másolás), 

utána kijelölöd azt a tartományt, ahová a képletet szeretnéd másolni. Ezen állva jobb egérgomb - irányított beillesztés - képletet. Ezután ESC és megszűnik a kijelölés.

Ha egymás mellett vannak a képletet tartalmazó cellák, akkor együtt is megy a fentiek szerint.

Üdv.

Előzmény: MM10 (38040)
MM10 Creative Commons License 2024.05.25 0 0 38040

Üdv.

 

Egy olyan problémába ütköztem,hogy van nekem egy majdnem teljesen készen lévő táblám.

 

A cellák formázása kész teljesen (cella kitöltő szín,betűszín,betűtípús,betűméret), a rácsok készen vannak az egész táblához. 

 

Egyetlen egy dolog hiányzik a táblából,4darab képlet, amit 1-1x kéne beírnom a sor legtettejére és lehúznom a végtelenségig.

És itt jön a problémás rész,a képlet lehúzásával az összes cellában változik a formátum olyanra mint amelyik cellából lehúztam,ezeket visszaállítani órákig tartana.

Tudok valahogyan "Fill handle"-t (lehúzásos módszert) használni úgy hogy semmi mást ne alkalmazon a többi cellára csak a képletet és a formátumot és mindenmást hagyjon figyelmen kívül?

 

Jelenleg ezt google drive táblában csinálom,nem excelben.

Fferenc50 Creative Commons License 2024.05.24 0 0 38039

Szia!
Természetesen.

Feltételes formázás - új szabály - a formázandó cellák kijelölése képlettel - a képletbe pedig beírod a megfelelő relációt.

De a dátummal-idővel kicsit kacifántosabb a dolog.

FONTOS! Mindegy, hogy milyen formátumban látod a cellában az időt, mivel az Excel számként kezeli a dátumot és az időt a következőképpen:

Az egész rész az 1900 jan. 0! óta eltelt napok számát jelenti (tehát 1 = 1900.01.01!), a törtrész jelenti a napon belüli időt, pl. 0,5 =12:00:00.

Vagyis ha egy napon belüli időt írsz be, azt törtként fogja értelmezni az Excel. Ha arra vagy kíváncsi, hogy ez a mostani időhöz hogyan viszonyul, akkor a MOST() - MA() értéket kell hasonlítanod az adott időhöz. Ha időt közvetlenül szeretnél képletbe bevinni, akkor az IDŐ vagy az IDŐÉRTÉK függvényeket kell használnod.

MÁS A HELYZET, ha szövegként vannak a cellában az értékek, ebben az esetben a hasonlítást is szövegként (vagy idővé-azaz számmá - alakítás után) tudod megtenni, de a szövegek hasonlítása más eredménnyel járhat, mint a számok összehasonlítása!!!

Azt pedig, hogy az adott cellában szöveg vagy "szövegnek látszó" szám van, a cella formátum megváltoztatásával tudod tesztelni. Ha számformátumra állítod a cellát és marad a benne levő érték változatlan, akkor szövegként van tárolva az érték és csak látszik pl. időnek. Ellenkező esetben számmá - tizedes törtté kell változnia a megjelenésnek.

Remélem tudtam segíteni.

Üdv.

Előzmény: Takeoff. (38038)

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