- Újabb államok perelik az Apple-t, mert sok pénzt szed ki a vevőkből
- Windows 11
- SUSE Linux
- Meggyőző arcjátékkal reagál a kínai humanoid robot
- Milyen routert?
- Alternatív kriptopénzek, altcoinok bányászata
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Otthoni hálózat és internet megosztás
- Max
- Béta iOS-t használók topikja
-
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
-
Mutt
aktív tag
válasz pero19910606 #50485 üzenetére
Szia,
Az én megoldásom azon alapul, hogy a márkát és típusokat egy szóköz és vmilyen szám kombója választja el egymástól.
Ezek alapján Excel változattól függően az alábbi képletek műkődhetnek.1. Microsoft 365 esetén SZÖVEGELŐTTE (TEXTBEFORE) függvény segít.
=SZÖVEGELŐTTE(A2; {" 1";" 2";" 3";" 4";" 5";" 6";" 7";" 8";" 9"})2. Régebbi Excelben pedig egy tömb-függvény, SUMPRODUCT (SZORZATÖSSZEG) segítségével keressük meg az első előfordulást.
=BAL(A2;SZORZATÖSSZEG(MIN(HAHIBA(SZÖVEG.TALÁL({" 1";" 2";" 3";" 4";" 5";" 6";" 7";" 8";" 9"};A2);1024))))3. A típust pedig a maradék szöveg, amit legegyszerűbben így lehet megkapni.
=HELYETTE(A2;B2;"")üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
ny.janos
tag
válasz pero19910606 #50485 üzenetére
-
ny.janos
tag
Legfeljebb még nem, mert eddig nem használtad. Ha több problémát is sikerül megoldani vele (SZORZATÖSSZEG), akkor a megoldások keresése során elkezd vele egyre gyakrabban szemezgetni az ember (én legalábbis így vagyok vele).
Ha van kedved hozzá, akkor rákereshetsz a fórumban a függvény nevére, érdekes megoldásokra lehet bukkanni a használatával. -
Fferi50
őstag
válasz Lasersailing #50499 üzenetére
Szia!
A megnyitás-bezárás bizony elég lassú művelet az excelben, pláne a mostani verziókban (tömörítés miatt). Keresni kellene olyan megoldást, amivel nem kell minden beolvasás érdekében újranyitni az "adatbázist".
Ha már adatbázis - miért nem adatbáziskezelőben vannak az adatok? Az lehetővé teszi a több felhasználós működést, már az Access is ilyen.
Milyen típúsúak a beolvasások-kiírások? Ugyanabba a cellába kerülnek különböző adatok egymás után?
Talán érdemes lenne megfontolni az "adatbázist" közös használatúvá tenni, mivel nem abban futnak a makrók, működhetne is szerintem.
Üdv. -
Pá
addikt
Tudja valaki mi alapján tartja számon Excel a használt cellákat?
Ha nyomok egy Ctrl+End-et, akkor elvileg az utolsó használtba ugrik, de nekem a legutolsó oszlop 2027-es sorára ugrik.
Annak ellenére is, hogy ha kijelölöm az egész területet és ClearAll-t nyomok. Ugyanúgy ragaszkodik hozzá.Azért nyomozgatok, mert rejtélyesen nagyra nő a file mérete és próbálok mindent kitörölni belőle, ami nem feltétlenül szükséges, de ezek szerint nem jól csinálom.
''Annyira vagyunk egészségesek, amennyire a gondolataink humánusak.''
-
Fferi50
őstag
Szia!
Nézz körül légy szíves a képletek között, van(nak)-e olyanok, amelyek egész sorra/oszlopra vonatkoznak: Pl.Fkeres(A1;B:D;2;0)
Ez lassítja a futást és növeli a területet is.
A feltételes formázásokat is érdemes átnézni, mert előszeretettel szakítja meg a területeket pl. beszúrás vagy törlés esetén, így többlet formázások jönnek létre az egybefüggő helyett.
Üdv. -
Lasersailing
senior tag
válasz Fferi50 #50509 üzenetére
Szia!
Először is köszönöm a segítségedet!
1) tömörítés: Ezt nem lehet kikapcsolni esetleg? (hamarabb leszek nyugdíjas, mint hogy a foglalt tárhely számítson, pedig még félidőnél sem járok...)
Most nem látom az adatbázist, de szerintem ~száz kb lehet jelenleg és szerintem évek mire Mb-os méretűvé válik
2) beolvasás miatti megnyitás: Az volt a koncepcióm (lehet, hogy hibás), hogy két file van: Egyik az adatbázis maga, amiben adatokat tárolok (lényegében 3 sheet 3-10 oszlopnyi adattal), másik meg a programot tartalmazza, amit futtatunk 4 számítógépen. A program különböző funkciókat tud ellátni, és mindig az adatbázis file-ba írja az adatokat (ez egyszerre 1-5 cella értékének megváltoztatása). Az adatbázis semmilyen függvényt nem tartalmaz, hogy ne kalkulálgassa újra (ill. egy counts van benne, ezt mondjuk ki tudnám szedni, érdemes lenne?)
3) adatbáziskezelő: sajnos nem értek hozzá. Ill. egész pontosan még középiskolában (25 éve) DBF, meg Clippert tanultam, de azóta azt csak felejtettem. DBF-et tudna excel kezelni? Van esetleg erre valami jófajta oktatóanyag?
accesst nem ismerem egyáltalán, abban nem mernék elmélyedni...
4) beolvasások - kiírások típusa:
elvileg ugyanabba a cellába nem akarok írni kétszer, viszont sokszor írok új sorba. Magyarán az előfordulhatna, hogy mondjuk a 125. sorba írjon egyszerre a program két verziója, két különböző adatot. Amúgy a közös használatúvá tételt 15+ éve használtam melóban, de elég rossz tapasztalatunk volt vele, mindig konfliktus volt belőle, amit viszont az adatbázissal (amit emberi szem nem is lát) nem mernék kockáztatni. -
Pá
addikt
válasz Fferi50 #50512 üzenetére
Közben találtam még pár apróságot, de a fő ludas valóban az volt, hogy egy Transpose függvényem volt, dinamikus indirektes range-dszel és emiatt lefoglalta magának az egész sorokat, plusz valahogy a formázást is vitte magával. Ezt alig tudtam kitörölni.
De így már sikerült elérni a 2.5MB fogyókúrát és most nagyjából reálisnak is tűnik a fileméret.
''Annyira vagyunk egészségesek, amennyire a gondolataink humánusak.''
-
M6454
tag
Szervusztok!
Segítséget szeretnék kérni Excel (365)-el kapcsolatban.
1 olyan excel filet szeretnék, amihez egy időben akár 2-3 helyről (PC és Android) is hozzáférhet, 2-3 user. A problémám az, hogy szeretnék benne vonalkódokat is generáltatni. (Google doksit próbáltam, ott megy a vonalkód generálás, viszont függvényekben nem igazán van benne amire szükségem lenne.) Microsoft 365-re regisztráltam, most megy a próbaidőszakom, de oda meg sehogy nem tudok font-ot telepíteni a vonalkódhoz.
Első körben az lenne a kérdésem, hogy mire is lenne szükségem? Sharepoint, Onedrive, Microsoft 365, stb?
Illetve, ha jó a 365-ös vonal, akkor ott hogyan tudok vonalkódot generáltatni?
Köszönöm! -
Fferi50
őstag
válasz Lasersailing #50513 üzenetére
Szia!
Nem emlékszem, melyik Excel verziót használjátok?
1. A tömörítés az új (2017-től) Office verziók formátuma, automatikusan megy és nem befolyásolható - illetve mentéskor választhatsz korábbi formátumot (.xls), de akkor kompatibilitási problémák keletkezhetnek, ráadásul nem is lesz gyorsabb. Ez az új szabvány az Office-ban.
A munkafüzet megosztását szerintem érdemes kipróbálni - O365-ben van egy új lehetőség, a társszerzőség. Persze az egymás után bevitt adatok esetleges felülírását ütközés esetén itt is nehéz szabályozni. Egyszerűbbnek tűnik, ha mindenki számára van egy dedikált terület, ahova írhat - így nem vághatja agyon senki a másik által bevitt adatot. A nap végén - vagy bizonyos időszakonként a napon belül - lehet összefuttatni akár makróval is a felvitt adatokat. Így szerintem elkerülhető az állandó nyitás-mentés-zárás. Keresni pedig a megnyitott fájlban természetesen lehet. ---> Ez a dedikált terület lehet akár a makrófuttató fájl egy munkalapja ill. az "adatbázis" munkafüzetben egy-egy külön munkalap.
Még további gondolat:
Ha mindenki a saját munkafüzetében menti a változásokat, akkor az "adatbázis" munkafüzetet minden felhasználó megnyithatja csak olvasásra. Természetesen ekkor is csak összedolgozáskor frissülhetnek az adatok az "adatbázisban".
Egyidejű - online - adatfrissítés bizonyos korlátozásokkal csak közös használattal és folyamatos mentéssel lehetséges. Amíg a mentés tart, addig nem lehet újabb adatokat bevinni a fájlba természetesen.
Ha gondolod, esetleg priviben még beszélgethetünk a feladatról.
Üdv. -
andreas49
senior tag
Sziasztok,
Lehetséges-e objektumokat csoportosan középre igazítani? Jelenleg a mező balfelső részéhez vannak igazítva. Az Excel nem enged több munkalapon kijelölni minden objektumot egyszerre? (ez felgyorsítaná a folyamatot) makró is jó lenne
Köszi a segítséget előre is.[ Szerkesztve ]
HONOR Magic5 Pro - Huawei P30 Pro 8/128 GB - Xiaomi MI Note 10 Pro - Huawei Mate 10 Pro
-
Pá
addikt
Ez egy teljesen új project lesz, érdekelne, hogy érdemes nekilátni, illetve konkrét segítséget is elfogadok.
Van egy oszlopban sok cellám (ezres nagyságrend). Mindegyikben sok száz vagy ezer karakternyi szöveg. A szöveg az alábbi logika szerint épül fel.
[időbélyeg] - [munkafázis] - [név] - [pozició] - [időbélyeg] - [munkafázis] - [név] - [pozició] - [időbélyeg] - [munkafázis] - [név] - [pozició] - [időbélyeg] - [munkafázis] - [név] - [pozició] - [időbélyeg] - [munkafázis] - [név] - [pozició] - [időbélyeg] - [munkafázis] - [név] - [pozició] - stbstb
Változó, hogy hány ilyen ciklus szerepel egy cellában. Általában van legalább 3-4, de lehet akár 10-12 is. Az időbélyegen kívül minden fázis teljesen random szöveg, változó kötőszavakkal összekötve, szóval nincs bennük semmi logika.
Van ezen kívül egy 10-15 névből álló listám.2 dolgot szeretnék megkapni.
1. Minden név mellé egy szám, hogy hány projectben vett részt. (gyakorlatilag annyi, hogy hány celláben szerepel a neve. Az lényegtelen, hogy egy cellán belül hányszor van a neve, szóval a munkafázisok száma szerencsére nem kell.) --> ez elég egyszerű egy =DARAB(SZÖVEG.KERES(NÉV,OSZLOP)) fügvénnyel meg is vagyok.2. Ez a macerás rész. Minden név mellé, hogy egy bizonyos munkafázisban (ami az ellenőrzés) részt vett-e. Itt lényegében arra kellene egy függvény, hogy 2 [timestamp]között szerepel-e az adott név ÉS egy kulcsszó (legyen mondjuk ellenőrzés). Sok projectben egyáltalán nincs ilyen munkafázis egyébként, szóval nem minden cellában szerepel a kulcsszó.
Nyilván legrosszabb esetben fel lehetne darabolni cellákat timestamponként munkafázisokra és ott keresgélni, de az sok szempontból nem lenne ideális, így első körben főleg az érdekel, hogy enélkül megoldható-e. Szöveggel buherálással nincs sok tapasztalatom excelben.
Szóval csak, hogy egyértelmű legyen, a végén mind a 10-15 név mellé két számot szeretnék kapni.
1. Hány projectben vett részt aktív szereplőként. (hány cellában szerepel a neve a kulcsszó nélkül)2. Hány projectben vett részt ellenőrként. (hány cellában szerepel a neve ÉS a kulcsszó két időbélyeg között)
+1. Előfordulhat, hogy valaki aktív résztvevőként és ellenőrként is részt vesz. Szóval lehetséges, hogy szerepel a neve a kulcsszóval, de szerepel a neve a kulcsszó nélkül is a cellában. Ez esetben mindkét mezőhöz oda kéne számolni. --> de mivel ez meglehetősen ritka, így ha ezt nem sikerül megoldani, azzal ki tudok békülni.
Ez pedig az időbélyeg formátuma, szerencsére ez teljesen egységes az egész projecten keresztül.
2023-01-17 14:53:30 +0100:''Annyira vagyunk egészségesek, amennyire a gondolataink humánusak.''
-
Fferi50
őstag
Szia!
Próbáld meg ezt a TÖMBKÉPLETET:=SZUM(HAHIBA((SZÖVEG.KERES("név";$A$1:$A$6)>0)*(SZÖVEG.KERES("ellenőrzés";$A$1:$A$6)>0);0))
A tömbképletet Shift+Ctrl+Enter billentyű kombóval kell lezárni, az Excel kapcsos zárójelbe teszi.
A tartományt igazítsd a listádhoz. A "név" helyére és az "ellenőrzés" helyére természetesen írhatsz olyan cella címet, amelyik a szükséges értéket tartalmazza.
Üdv. -
Pá
addikt
válasz Fferi50 #50523 üzenetére
Köszi! Indulásnak jó, de úgy látom, hogy ez minden névre találatot ad a cellában, amelyikben megtalálható a kulcsszó. Nekem arra lenne szükségem, hogy csak arra a névre adjon találatot a cellán belül, ami két időbélyeg között szerepel együtt a kulcsszóval. (egy cellán belül jelenleg sok munkafázis és név van, ebből csak konkrétan egyet keresek)
Most minden névre találatot ad, amik a cellán belül szerepelnek, függetlenül attól, hogy a kulcsszavas, vagy másik munkafázisban szerepelnek.
''Annyira vagyunk egészségesek, amennyire a gondolataink humánusak.''
-
Pá
addikt
Igazából egy olyan logikára lenne szükségem, ha megoldható, hogy
1. Megnézi, hogy a cellában megtalálható-e az adott kulcsszó. ("ellenőrzés")
2. Ha nincs, akkor az eredmény nulla.
3. Ha megtalálható, akkor onnan jobbra elkezdi keresni az adott ember nevét és az időbélyeget. Ha először az időbélyeghez ér, akkor az eredmény szintén nulla. Ha az időbélyeg előtt megtalája a nevet, akkor az eredmény 1.Annyi könnyebbség, hogy rájöttem, hogy minden időbélyeg előtt van egy | jel. Szóval elég a " | " jelet keresni.
Ugye a Szöveg.Keres függvény megadja, hogy hányadik karakternél van a kulcsszó. Annyit kéne megnézni, hogy utána hamarabb jön-e az adott név, mint a | jel.
A nehézség pedig az, hogy | jelből jó sok van a cellában, mivel minden munkafázis azzal kezdődik, illetve az adott név is többször szerepelhet, ha több munkafázisban részt vett az emberke.
De minket csak a kulcsszó utáni első név vagy " | " jel érdekel.''Annyira vagyunk egészségesek, amennyire a gondolataink humánusak.''
-
Magnat
veterán
válasz Lasersailing #50490 üzenetére
Szia,
bakker hogy nem ütötte ki a szememet, nagyon köszi
̿' ̿'\̵͇̿̿\з=(◕_◕)=ε/̵͇̿̿/'̿'̿ ̿
-
Mutt
aktív tag
Szia,
Ha jól értelmezem a feladatot, akkor ez az UDF tud segíten a 2-es problémán.
Function Munkafazis(adat As Range, nev As String, munka As String) As Long
Dim fSplit
Dim r As Long, c As Long
Dim TimeStamp As Boolean
Dim m As Long
Munkafazis = 0
m = 0
For r = 1 To adat.Rows.Count
fSplit = Split(adat.Rows(r), " - ")
TimeStamp = False
If UBound(fSplit) > 1 Then
'menjünk végig a listán
For c = 0 To UBound(fSplit)
'ha a név egyezik akkor nézzük meg a munkafázist és a timestampet
If fSplit(c) = nev Then
'ha a munkafázis egyezik és már volt timestamp akkor számolhatjuk az elvégzett munkát
If TimeStamp Then
m = m + 1
Exit For
End If
If fSplit(c - 1) = munka Then
If Not TimeStamp Then TimeStamp = True
End If
End If
Next c
End If
Next r
Munkafazis = m
End Functionüdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
ny.janos
tag
Szia!
Az ellenőrzés munkafázis egy sorban egyszer fordulhat elő, vagy többször? Függvénnyel arra lehet megoldást találni, ha csak egyszer szerepel, mert ez esetben ismert, hogy meddig (következő | jel) kell a nevet keresni. Ha viszont többször is lehet ellenőrzés munkafázis cellán belül, akkor úgy gondolom, hogy mindenképpen darabolni kellene a cellákat (kivéve persze a makrós megoldást - amihez én nem értek).
Jól értem, hogy adott személyhez az összes sort szeretnéd vizsgálni egyszerre, hogy melyekben szerepel az ellenőrzés munkafázisnál az ő neve és ezek darabszámára vagy kíváncsi az összes sorból? Ha igen, akkor Power Query irányába is el lehet indulni szerintem. -
TillaT
junior tag
Sziasztok!
Feltételes formázással kapcsolatban szeretnék útba igazítást kérni.
A problémámat legegyszerűbben talán egy táblázatba foglalt öröknaptárral tudnám szemléltetni. Ahol az A1, B1 cellákba lehet beírni a megjeleníteni kívánt naptár évét és hónapját. Az A5:A32 tartományban pedig a napok száma van egymás alatt felsorolva.Azt szeretném, hogy az A1 és B1 cellák által kijelölt év, hónap szerinti szombatra és vasárnapra eső napokon az érintett sorok az A:Q oszloptartományban legyenek valamilyen színűek. Ezt még meg is oldom a "=HÉT.NAPJA(DÁTUM(A1;B1;SOR()-4);2)>=6" képlettel.
Mindez egészen jól működik, amig a táblázatom változatlan. De miért is lenne ilyen egyszerű az élet(em). Mivel előfordulhat, hogy a táblázatomba sorokat kell beszúrni, a képletben alkalmazott Sor() függvény már nem nyújtana kielégítő megoldást. Mivel sorok beszúrása után az "A" oszlop celláiban lévő előre beírt napszámozás nem változik, ahhoz szeretném kötni a formázást.
A fenti képletnél maradva olyan megoldás kellene, ami a Sor() függvény helyett az "A" oszlop adott sorszámú naphoz tartozó cellájában lévő sorszámmal(ból) számol.
Évekkel ezelőtt jól ment nekem ez a feltételes formázás, és szerintem már ilyen problémát is megoldottam, de most csak üresjáratban bámulom a monitort.
Köszönöm, ha tudtok segíteni.[ Szerkesztve ]
-
ny.janos
tag
Még egy kérdés: az
[időbélyeg] - [munkafázis] - [név] - [pozició]
struktúra minden eleme mindig megjelenik a cellában, vagy előfordulhat olyan, hogy valamelyik adat hiányzik?
Azaz lehet olyan, hogy a következő időbélyeg előtt ennyi áll?[időbélyeg] - [név] - [pozició]
Ha utóbbi előfordulhat, akkor munkafázis pozíció teljesen hiányzik, vagy a szögletes zárójel megvan, de nem tartalmaz adatot? -
TillaT
junior tag
válasz ny.janos #50530 üzenetére
Szia!
Köszönöm, én is ezzel próbálkoztam, de nekem nem működött, amikor kijelöltem a tartományt. Aztán próbálkoztam úgy is, hogy csak egy sorra jelöltem ki, majd arról ecsettel átmásoltam az egész tartományra. Akkor előfordult, hogy működött. Pedig előtte minden formázást töröltem a munkalapról. Nagyon dühített, ezért gép kikapcsolás, vacsora és újra nekifutottam. Most már úgy működik, ahogy kell.
Egész nap makróztam. valószínűleg az agyam is és a gépem is nagyon lezsibbadt már reggel 5 óta.
Még egyszer köszönöm a választ.
Szép estét és hétvégét!
Üdv[ Szerkesztve ]
-
ny.janos
tag
válasz TillaT #50532 üzenetére
Ha a feltételes formázásban írod meg a képletet és kijelöléssel hivatkozol a cellára, akkor a DÁTUM függvény 3. paramétere abszolút hivatkozás ($A$5) lesz. Azt kézzel át kell írni vegyes hivatkozásra, hogy mindig az adott sort vizsgálja, de minden esetben az A oszlopot.
-
Pá
addikt
válasz ny.janos #50531 üzenetére
+Mutt
Ahh, bocsánat, azt hiszem félreérthető voltam. Sajnos a szöveg egyáltalán nincs ilyen szépen tagolva, záró- és kötőjelekkel. Azt csak azért írtam be, hogy nagyjából tudják mi áll a szövegben, de sajnos nem struktúrált semennyire, kb random szövegből áll. Ez a fő baj.Az egyetlen ismétlődő és sosem változó elem az a | jel és utána az időbélyeg.
| 2023-01-17 14:53:30 +0100:De közben eszembe jutott egy lehetséges megoldás, csak technikailag nem tudom megvalósítani.
VBA macroval meg lehetne oldani, a következőt?1. Keresse meg a kulcsszót a cellában. ("ellenőrzés").
2. Keresse meg a kulcsszótól jobbra és balra eső első | jelet. És a két | jel közötti szöveget vágja ki és tegye át a szomszédos cellába.Így két oszlopom lenne. Az egyikben csak a rendes project munka szerepelne, a másik oszlopban csak az ellenőrzés. Innentől pedig nagyon könnyű lenne számolgatni mindkettővel külön-külön.
Nem tudom a fenti megvalósítható-e, de talán így lehetne legjobban kihúzni a fogát a feladatnak.''Annyira vagyunk egészségesek, amennyire a gondolataink humánusak.''
-
Pá
addikt
válasz Fferi50 #50535 üzenetére
Nem mondanám 100%-ra, de szerintem olyan nincs. 90% hogy az csak egyszer tud előfordulni.
Mindenesetre, ha elő is fordulhat többször, az annyira elenyészően ritka, hogy együtt tudok élni vele, ha azt az esetet nem tudjuk megfelelően kezelni.''Annyira vagyunk egészségesek, amennyire a gondolataink humánusak.''
-
eszgé100
őstag
Sziasztok!
Szeretném A1-be megtalálni "d"-t (D4) feltétel, hogy a C oszlop legyen 3, B oszlop pedig az első TRUE.
A fenti formulával próbálkoztam, de az duplikáció esetén figyelmen kívül hagyja, a B oszlopot és utolsó 3-ashoz tartozó betűt adja eredményként, az figyelmen kívül hagyva, hogy B oszlop TRUE vagy FALSE"-Meddig tart a játék? -Amíg mindenkinek ki nem verik a fogát..."
-
Fferi50
őstag
Szia!
"2. Keresse meg a kulcsszótól jobbra és balra eső első | jelet. És a két | jel közötti szöveget vágja ki és tegye át a szomszédos cellába."
Az alábbi felhasználói függvény megteszi ezt:Function ellenor(crange As Range) As String
Const ell = "ellenőrzés", hatar = "|"
Dim a, b
ellenor = ""
a = crange.Value
If InStr(a, ell) = 0 Then Exit Function
b = Split(a, hatar)
For Each a In b
If InStr(a, ell) > 0 Then ellenor = a: Exit Function
Next
End Function
Másold egy modulba vagy az adott munkalap kódlapjára. (Ez utóbbi esetben nem tudod másik munkalapon használni.)
Ugyanúgy kell használni, mint a beépített függvényeket, pl. =ellenor(A1) és húzható is.
Ha a forrás cellában szerepel az ellenőrzés szó, akkor a határoló jelek közötti értéket írja a cél cellába, ha nem, akkor üres szöveg kerül bele.
Ha nem működne, akkor a határolójelet másold a hatar konstansba az egyik cellából (előfordulhat, hogy más a karakterkészleted).
Ha más kulcsszóra szeretnél keresni, akkor az ell konstansba írd azt a szót.
A munkafüzetet makróbarátként vagy binárisként kell mentened.
Remélem, sikerül.
Üdv.[ Szerkesztve ]
-
ny.janos
tag
Kijelölöd az adataidat, majd az adatok menü adatok beolvasását táblázatból vagy tartományból pontot választod (PQ). PQ-ben a kezdőlapon az oszlop felosztását választod
A betöltés után a nevekből és a munkafázisból csinálsz egy táblázatot, majd aSZORZATÖSSZEG((SZÁM(SZÖVEG.KERES([NÉV];[PQ által létrehozott tartomány]))*(SZÁM(SZÖVEG.KERES([munkafázis];[PQ által létrehozott tartomány])))))
függvénnyel megkeresed mi mennyiszer fordul elő (ha egy sorban ugyanaz a név ugyanahhoz a munkafázishoz többször szerepelne, akkor azt duplán fogja számolni az összesítésben).A PQ betöltés munkalapját elrejted, ha neked szeretnéd látni.
[ Szerkesztve ]
-
eszgé100
őstag
szia, nem működött, de az egymásba ágyazott keresés adott egy ötelet.
=XLOOKUP(1,(B1:B11="TRUE")*(C1:C11=F1),D1:D11,XLOOKUP(F1,(C1:C11),D1:D11,"No Match",0,-1),0,1)
legszebb, hogy az utolsó kapcsolóval tudom állítani, hogy az előről kezdje a keresést, vagy a végéről, ha nincs találat, akkor egyszerűen csak a legutolsó "3"-t keresem meg, feltétel nélkül, ha egyáltalán nincs 3-as sem, akkor "No Match"
mindenesetre köszönöm a segítséget
[ Szerkesztve ]
"-Meddig tart a játék? -Amíg mindenkinek ki nem verik a fogát..."
-
vince
őstag
Félve teszem fel a kérdést, mert nagyon alap dolognak tűnik, de hiába gugliztam többféle kifejezésre is, nem jött szembe hasonló probléma.
Létezik az, hogy az Excelben (Windows 11, M365 asztali app, 2301 a verziója) nem lehet kijelölést úgy bővíteni, hogy az egérgörgővel lapozok közben lefelé? Tehát belekattintok egy cellába (lenyomva tartom az egér gombját) és hiába görgetek, nem mozdul a munkalap, nem tudom ilyen módon bővíteni a kijelölt területet. Ha lehúzom a kurzort az ablak aljára, akkor elindul lefele, de én ugyanezt szeretném az egérgörgővel elérni.
Én nézek be valamit vagy ilyet tényleg nem lehet excelben? Az esetek többségében LibreOffice-t használok, ott ez megy szépen, de néha kell az Excel is és bosszant, hogy a görgővel nem, csak az egeret mozgatva lehet bővíteni a kijelölést"Ha eredményesen akarunk valakit megcáfolni, bebizonyítva, hogy téved, előbb vizsgáljuk meg, melyik oldaláról szemléli a dolgot, mert arról az oldalról tekintve rendszerint igaza is van." - Blaise Pascal
-
ny.janos
tag
Szerintem nem egyedi esetről van szó. Soha nem próbáltam még így kijelölni, de most megnéztem és Win 10, 2019 Office esetén sem működik. Szerintem máshol sem fog.
Javaslom, hogy tanulj meg billentyűkombinációkat (Ctrl, Shift, A, Space, "kurzormozgató nyilak", End, Home,Page Up, Page Down) használni a kijelöléshez az egér helyett, hidd el sokban meg fogod könnyíteni a saját munkádat.
Itt találsz egy csomó billentyűkobinációt összeszedve egy csokorba, köztük a kijelölésre vonatkozóakat is. -
Pá
addikt
válasz Fferi50 #50539 üzenetére
Csak most tudtam megnézni, mert hétvégén másik laptop volt nálam.
Köszi, ez tökéletesen működik, pont azt csinálja, amit szerettem volna tőle. Egy dolgot kéne még megoldani. Hogy amit kiírtunk az új cellába (tehát a függvény eredményét) ki is törölje az eredeti cellából. Vagy a függvények alapvetően nem tudják módosítani a cél cellát és erre egy külön subot kéne írni?Ráadásul talán sikerült is nagyjából visszafejtenem és megértenem, hogy működik, szóval még tanultam is. Egyedül a végén a "For Each a In b" kifejezés nem logikus. Ha jól értem az a "a" nagyobb egység mert az egész cellára utal. A "b" pedig a kisebb egység, hiszen csak két határoló bizbasz közti rész, nem? Akkor miért nem "For each b In a"?
Mármint látom, hogy valamikor "a" lett a kisebb egység, hiszen a értékér írjuk ki a függvény eredményeként. Csak az nem világos, hogy mikor ment át "a" a teljes cella értékéből csak az adott résszé.ny.janos: neked is köszi, de a fenti megoldás ebben a helyzetben jobban passzol, mert egyéb design okokból sokkal jobb így adott helyen egy extra oszlopból megoldani ezt, mint ennyire szétszedni.
[ Szerkesztve ]
''Annyira vagyunk egészségesek, amennyire a gondolataink humánusak.''
-
ny.janos
tag
Persze a makrós megoldás is tetszés szerint bővíthető, de azért is tettem ki végül a megoldásomat, mert azzal akár az összes dolgozó, összes munkafázisban történő részvétele összeszámolható egyetlen függvénnyel megfelelő előkészítés mellett.
Ha megengeded, hogy őszinte legyek, elsőre úgy gondoltam közzé sem teszem a megoldást, mert a - nem szándékosan, hanem rosszul megfogalmazott - struktúra miatt úgy éreztem, hogy feleslegesen akarok segíteni és nem hiányzik nekem, hogy tovább gondolkodjak a megoldáson, mert majd újra kiderül valami, ami nem úgy van, ahogy elsőre tűnt. Aztán meggondoltam magam, mert bármelyikünk hibázhat és a megoldások sokszínűsége segíthet egy későbbi probléma megoldásában másnak is, illetve én azokból tanultam sok mindent, amit itt a fórumon olvastam.A PQ-t mindig azért tartom nagyszerű megoldásnak, mert olyan dolgokat lehet vele viszonylag könnyedén megoldani sok esetben, melyhez vagy nagyon bonyolult, sokszorosan egybeágyazott függvények kellenének, vagy makrót kellene segítségül hívni. Mivel én utóbbihoz még annyi ismerettel sem rendelkezem, hogy egy kapott kódot hova kellene másolni (azt tudom, hogy az összefoglalóban meg tudnám nézni, de magamtól tényleg nem tudom), ezért mindig örülök, ha létezik programozási ismeret nélküli megoldás a PQ segítségével.
A te esetedre visszatérve: ha az általam javasolt megoldást úgy módosítod, hogy PQ-ben a beolvasás után felveszel egy indexoszlopot, majd a darabolást követően szűrsz azokra a sorokra, amelyek tartalmazzák az ellenőrzés kódot, akkor betöltés után ebből a táblából az index sorszám alapján az eredeti adataid mellé egy külön oszlopba ugyanúgy hozzá tudod olvasni a kinyert részletét az adatodnak (a módszert - PQ, index-hol.van, fkeres-sor függvények pedig tetszőlegesen megválaszthatod)
-
Pá
addikt
válasz ny.janos #50547 üzenetére
Mindenképp jó, hogy megosztod. A PQ bevallottan egy vakfoltom, biztos, hogy nem használom eleget és szerintem ezzel nem is vagyok egyedül, szóval hasznos, ha néha felhívják rá a figyelmem.
És ha makrós megoldás nem működik, akkor ebbe az irányba indultam el, de ebben a helyzetben ez most egyszerűbb és jobban passzol a file többi részéhez.Ezzel együtt köszönöm mindenkinek, aki időt szánt a problémámra, akár írt végül, akár csak magában gondolkozott rajta.
Már az évek alatt sokszor írtam, hogy ez az egyik legjobb topic a PH!-n, mert mindig kapok legalább 1 megoldást olyasmira is, amire nem is feltétlenül reméltem, hogy lesz és még tanulok is közben.''Annyira vagyunk egészségesek, amennyire a gondolataink humánusak.''
-
Mutt
aktív tag
Szia,
Feri kódja nem nézi, hogy az ellenőrzés után van-e újabb timestamp. Nem tudom, hogy ez a valós adaton gondot okoz-e vagy sem. Ahhoz hogy helyben cserélhesd az adatokat másik makró kell, amit billentyűparanccsal vagy külön gombbal tudsz indítani. Vigyázz mert nem lehet visszavonni a makró módosításait!
Sub ellenor2()
Dim rngAdatok As Range
Dim adat As Range, adatSzoveg As String
Dim posEllenorzes As Long, posHatar As Long, posKovetkezoHatar As Long
Const ell = "ellenőrzés", hatar = "|"
Set rngAdatok = Selection.CurrentRegion 'kijelölt cellát tartalmazó tartomány használata
For Each adat In rngAdatok
posEllenorzes = InStr(1, adat, ell)
adatSzoveg = ""
'ha van benne "ellenőrzés" szöveg akkor nézzük át
If posEllenorzes > 0 Then
posHatar = InStrRev(adat, hatar, posEllenorzes) 'ellenőrzes előtti határjel helye
posKovetkezoHatar = InStr(posHatar + 1, adat, hatar) 'ellenőrzés utáni első határjel helye
If posKovetkezoHatar > posEllenorzes Then
adatSzoveg = Mid(adat, posHatar, posKovetkezoHatar - posHatar - 1)
End If
End If
adat = adatSzoveg
Next adat
End SubPower Query (PQ)-ben pedig több lépéses a dolog.
Az én mintám így néz ki:Bal oldalt az adatsor, jobb oldalt pedig egy munkafázis ahol lehet módosítani hogy mire keressen.
1. Első lépésként mindkét táblát betöltöm PQ-be. A jobb oldalinak adtam egy ilyen nevet "tblMunkafazis".
2. Megkeressük hogy van-e "ellenőrzés" az adatsorban. Ehhez egy új oszlopot szúrunk be, neve nálam "Ellenorzes". A képlete pedig:
=Text.PositionOf([Adatok], tblMunkafazis[Munkafázis]{0})
3. Az ehhez tartozó pipe-ot is megkeressük. Az oszlop neve: "Határ", képlete:
=Text.PositionOf(Text.Start([Adatok],[Ellenorzes]),"|",Occurrence.Last)
4. Az ezutáni pipe helyének a képlete:
=Text.PositionOf(Text.Middle([Adatok],[Hatar]+1),"|")+[Hatar]
5. Minket csak azok érdekelnek ahol van ellenőrzés szöveg és ahol a két pipe eltér. Új oszlopba pedig kirakjuk az eredeti szöveg pipeok közötti részét. A képlet:
=if [Ellenorzes]>0 and [Kovetkezo hatar] > [Hatar] then Text.Middle([Adatok],[Hatar],[Kovetkezo hatar]-[Hatar]-1) else null
6. Azok a sorok ahol null van nem kellenek és a többi oszlopot is eltávolítjuk.
7. Eredményt Excel-be visszatöltjük.A teljes M-kód:
let
Forrás = Excel.CurrentWorkbook(){[Name="Táblázat1"]}[Content],
#"Típus módosítva" = Table.TransformColumnTypes(Forrás,{{"Adatok", type text}}),
#"Egyéni oszlop hozzáadva" = Table.AddColumn(#"Típus módosítva", "Ellenorzes", each Text.PositionOf([Adatok], tblMunkafazis[Munkafázis]{0}), Int64.Type),
#"Egyéni oszlop hozzáadva1" = Table.AddColumn(#"Egyéni oszlop hozzáadva", "Hatar", each Text.PositionOf(Text.Start([Adatok],[Ellenorzes]),"|",Occurrence.Last), Int64.Type
),
#"Egyéni oszlop hozzáadva2" = Table.AddColumn(#"Egyéni oszlop hozzáadva1", "Kovetkezo hatar", each Text.PositionOf(Text.Middle([Adatok],[Hatar]+1),"|")+[Hatar], Int64.Type),
#"Egyéni oszlop hozzáadva3" = Table.AddColumn(#"Egyéni oszlop hozzáadva2", "Eredmeny", each if [Ellenorzes]>0 and [Kovetkezo hatar] > [Hatar] then Text.Middle([Adatok],[Hatar],[Kovetkezo hatar]-[Hatar]-1) else null, type text),
#"Sorok szűrve" = Table.SelectRows(#"Egyéni oszlop hozzáadva3", each ([Eredmeny] <> null)),
#"Többi oszlop eltávolítva" = Table.SelectColumns(#"Sorok szűrve",{"Eredmeny"})
in
#"Többi oszlop eltávolítva"üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
vince
őstag
válasz ny.janos #50543 üzenetére
Köszi, a billentyűkombók nagyjából megvannak, nekem kifejezetten az egérgörgővel történő kijelölésbővítésre lenne szükségem, de ha nem tud ilyet az Excel, akkor nincs mit tenni, nem tudja Csak azért furcsa ez, mert eddig nem nagyon találkoztam olyan programmal (általánosabb célú, nem valami spéci célszoftver), amiben ez a funkció ne működött volna, például a Wordben is megy ugyanez, táblázat esetén is.
"Ha eredményesen akarunk valakit megcáfolni, bebizonyítva, hogy téved, előbb vizsgáljuk meg, melyik oldaláról szemléli a dolgot, mert arról az oldalról tekintve rendszerint igaza is van." - Blaise Pascal
Új hozzászólás Aktív témák
- Elnéztük a mai dátumot
- Kerékpárosok, bringások ide!
- E-roller topik
- Apple iPhone 15 Pro Max - Attack on Titan
- Diablo IV
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- sziku69: Fűzzük össze a szavakat :)
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Projektor topic
- Milyen légkondit a lakásba?
- További aktív témák...
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- 10 Darab PC Játék (Bontatlanul!) Egyben 6990Ft.-ért Foxal!!!
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Adobe Creative Cloud - 2024. 04. 05 - 2025. 04. 05-ig