- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Geri Bátyó: B550 szűk keresztmetszet, de mi és miért?
- bitpork: Augusztus 2- szombat jelen állás szerint.
- sziku69: Fűzzük össze a szavakat :)
- Magga: PLEX: multimédia az egész lakásban
- Parci: Milyen mosógépet vegyek?
- sziku69: Szólánc.
- Aggregátor gondjai, örömei, és elmélkedései
- Chosen: Canon 5D II - portrézás 2025-ben
-
LOGOUT
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
-
RoBos
senior tag
Sziasztok,
egy olyan kérdésem volna, h milyen függvénnyel lehet egy cella tartalmát szétszedni?
Példa: Tóth és Tóth Kft. kellene szétszednem két cellába, h Tóth és Tóth az egyik cella, és a Kft. a másik. Tehát a Kft.-t kellene nekem mindig kiszedni az adott cellákból és a neve egy másikba. Próbáltam függvényekkel de mind hibát adott vissza: #érték, #hiányzik, #név?Magyar Excel 2019-et használok. Köszi!
-
hajbel
addikt
Sziasztok! 2 darab dupla oszlopot kéne összehasonlítani és megjelölni vagy, kiírni az egyedi kombinációs párokat. Köszönöm!
-
ReSeTer
senior tag
Helló!
Olyan kérdésem lenne, hogy van egy táblázat ami így néz ki:
A oszlopban nevek
B oszlopban számok
C-ben pedig az egyik cellába megkell keresni a B oszlopban a legnagyobb számot, DE, nem a számot kell kiírni, hanem az A oszlopban lévő nevet ami a legnagyobb számmal azonos sorban van.
Gyakorlatilag mintha megkeresnénk a legnagyobb keresetű emberkét, de nem az összeget íratnám ki a C oszlop egyik cellájába, hanem a nevét.
Na most a legnagyobb szám megvan, de a nevet hogyan íratom ki vele?
Tudom, hogy többféle megoldás van, valószínűleg én bonyolultan oldanám meg, a legegyszerűbb megoldásra lennék kíváncsi.Köszönöm!
-
-
Geryson
addikt
Készítettem egy egyszerű pivotot, 2 oszloppal. Az egyikben az ügyfél neve, a másodikban - mint összeg - a forgalma. Van egy szűrő a pénznemre vonatkozóan. Eddig minden szuper. Miért nem jelenik meg a sorrend nyilacska, amikor nekem az kellene, hogy elől legyen a magas, hátul az alacsony? Egyszerűen sehol nem találom ezt a beállítást...
-
ny.janos
tag
Szia Mutt!
Nekem ma bela85 kérésére írt kódot pl. át kellett írnom, és alkalmaznom kellett benne az általad javasolt List.Accumulate függvényt a számlaszámok kiszedésére mert a 2016-os verzió még nem ismeri a Splitter.SplitTextByCharacterTransition függvényt (2019 igen).
De ugyancsak hibát írt a 2016-os verzió a Table.AddIndexColumn fügvényre, mert míg a 2019-es verzióban 5 paramétert lehetséges megani, a 2016-os verzió hibát dobott rá, hogy 2-4 paraméter adható meg.
-
KaliJoe
tag
válasz
Fferi50 #53582 üzenetére
Szia Fferi50,
Evvel a javítással (perjel helyett visszaperjel avagy slash helyett backslash) és úgy, hogy elő és mögé beírtam a { illetve } jeleket, plusz beleállva nyomtam CSE-t úgy ott kapcsozta be ahol kell, nem az elején. Szintaktikailag helyesebb lett a képlet, noha a slash-t is elfogadta..., és kiterjesztés után, kisvártatva megjöttek a számok is. Hurrá!
Köszönöm mindenkinek!
-
KaliJoe
tag
Szia Mutt,
sorok név javítva ÖsszSor-ra.
A2 javítva A1-re. Azt hittem elírás, de akkor mégiscsak úgy kellett és nem értettem a képletet.
Tömbképlethez CSE nyomva, de az egész = jel utáni részt kapcsos zárójelezte. A függvény így már szintaktikailag helyes lett..., de nem működik. Minden számhármasra 0-t hoz eredményül, ami biztosan téves. Ellenőriztem - szűrő funkcióval, és tutti van 1-2-5, 1-2-6, és 1-2-7 is. De nemcsak ezekre, az összesre nullát hoz. :-(
Várom válaszod.
-
Mutt
senior tag
válasz
KaliJoe #53580 üzenetére
Szia,
Tömb képletről van szó, de az újabb Excel verziókban (szerintem 2021es verziótól) már nem kell a Ctrl+Shift+Enter.
A képletben a {1/2/3/4/5} arra "kényszeríti" az INDEX függvényt, hogy egyszerre több oszlopot adjon vissza (alapból csak 1et fog). Gépeld be a kapcsos zárójelet, de nem kell CSE-t nyomnod. (Ha így is sem megy, akkor azért próbáld ki hogy belül gépeled a kapcsoszárójelet és a végén nyomsz CSEt.)
Egy hiba van a képletedben, a SOR(INDiREKT után A1 kell, nem A2. Az a rész valójában nem az A-oszlopról és az adatairól szól, hanem egy bevett szokás hogy egyesével növekvő számokat (1, 2, 3 stb) állítsunk elő. Későbbi Excelben erre már a SORSZÁMLISTA függvény van erre. Ha A2-vel indul, akkor az adathalmaz első sorát ki fogod hagyni.
Még annyi, hogy lehet nem volt szerencsés a második valtozót "Sorok"-nak hívni, amikor van ilyen függvény Excelben. Két helyen írd át mondjuk ""osszsor"-ra.
Üdv
-
KaliJoe
tag
Kedves Mutt,
Annyira tetszett a képleted és a megoldás (hogy nem kell hozzá makró), hogy úgy döntöttem veszek frissítést és áttérek az Office 2021-re, csak hogy azzal oldhassam meg a problémát.
Akadt némi gondom a verzió frissítéssel, de ma meglett az is. Azonnal nekiugrottam, beírtam a képletet, de sajnos nekem nem működik.
Jelenleg ez szerepel a cellában:=LET(Adathalmaz;INDIREKT("A2:E" & Öhsz;IGAZ);Sorok;SOROK(Adathalmaz);Adatsor;INDEX(Adathalmaz;SOR(INDIREKT("A2:A" & Sorok));1/2/3/4/5);aoszlop;INDEX(Adatsor;0;1);boszlop;INDEX(Adatsor;0;2);coszlop;INDEX(Adatsor;0;3);doszlop;INDEX(Adatsor;0;4);eoszlop;INDEX(Adatsor;0;5);SZUM(((aoszlop=K2)+(boszlop=K2)+(coszlop=K2)+(doszlop=K2)+(eoszlop=K2))*((aoszlop=L2)+(boszlop=L2)+(coszlop=L2)+(doszlop=L2)+(eoszlop=L2))*((aoszlop=M2)+(boszlop=M2)+(coszlop=M2)+(doszlop=M2)+(eoszlop=M2))))
Ez jelenleg annyiban tér el a tiédtől, hogy a ;1/2/3/4/5 (amit nem is értek, hogy mit jelent, és mire való, hogy azok nem szerepelnek {} kapcsos zárójelek között. Ha az ott tömbképlet akar lenni, akkor nem tudom (ebben az esetben, hogy csak azt alakítsa tömbképletté), hogy hogyan kellene azt beírni. Ha meg simán beírom a kapcsos zárójeleket elé és utána, akkor képlethibával el sem fogadja.Mit csinálok még mindig rosszul? Vagy mit nem csinálok? Tudsz ebben segíteni?
Előre is köszönettel, KaliJoe
-
Mutt
senior tag
válasz
Fire/SOUL/CD #53578 üzenetére
Szia,
Egyelőre még kevés dolog van Power Queryben, ami korábbi változatokban nem elérhető.
Ilyenek a fuzzy search, vagy adatok sorokba bontása.Ami már problémásabb azok az adat kapcsolatok hiánya egy korábbi Excel verzióban vagy akár ugyanazon verzió Pro és Home veziója között. Bővebben itten.
üdv
-
Más programnyelvekben használom a Reguláris kifejezéseket, de VBA-ban kerülöm. Ez régi beidegződés, felhasználóra nem bízok referenciák bekapcsolást, pont eleget szívtam régen ilyenek miatt (nem kapcsolta be, nem tudta bekapcsolni, nem jót kapcsolt be, Office újratelepítést követően megint nem lett bekapcsolva, más verziót kapcsolt be, más referenciák esetén x64 esetén más kód, MS módosította, megszüntette stb stb stb).
Szóval nem, nem játszom ilyet.Más: Írtam, hogy majd a hosszú téli éjszakákon megsasolom a PQ képességeit.
PQ-nál is az a szitu, hogy lehet olyan M-kódot előállítani Excel 365-l, ami a korábbi verziókban nem? -
Tamy
senior tag
válasz
Fire/SOUL/CD #53576 üzenetére
Valóban benéztem, igazából már régebben küzdöttem vele, most csak eszembe jutott, de összekevertem. Viszont hogy ontopic maradjon, mobilos Excelből se megy.
-
-
Tamy
senior tag
Gyakran használom a "kivágott cellák beszúrása" funkciót, amit viszont sehol sem találok az O365-ben. Valóban kivették?
-
ny.janos
tag
Nem tudom mire gondoltál a megoldás menetének ismertetése kapcsán, de olyan részletességgel, ahogy Mutt szokott itt publikálni sajnos nem lesz időm közzétenni a lépéseket, de úgy hiszem, hogy nem is erre van szükséged.
A fájlt itt letöltheted és tanulmányozhatod a lépéseket.A felosztás alapja az oszlopfelosztás számjegyről nem számjegyre és fordítva lépés, és ehhez egy elő és utótag beszúrása, hogy biztosan ne kezdődjön a szöveg számmal és ne is végződjön arra.
A sorok csoportosítása után pedig egyéni lépést követően a két megelőző lépés adatai vannak összesítve úgy, hogy az M kódban végeztem módosítást a megfelelő lépés meghivatkozásával. A csoportosításban pedig a már említett trükköt használtam, mait Mark-tól tanultam. Ha valamely lépésben további segítség kell, írj nyugodtan, akár PM-ben is.Köszönöm a javaslatot, elmentem magamnak a megoldást. Megtisztelő, hogy ilyen megoldásokat osztasz meg velem, de be kell valljam, hogy túlbecsülöd a képességeimet az általad javasolt megoldások / kódok általam történő felfogását illetően.
A 2016-os excel verzióhoz javasolt megoldásodból lemaradt, hogy tömbképlet, azaz régi excel verziókban CSE-el kell lezárni.
(A képletet még meg kell fejtenem, mert még nem jutott rá időm.) -
Mutt
senior tag
válasz
Fire/SOUL/CD #53569 üzenetére
Legyen akkor elválasztójel (ha úgy gondolkodunk, hogy a 24 számot osztjuk fel 3 csoportra).
Felraktam a 2016-os verziómat, és nem ismerte fel a SZÖVEGÖSSZEFŰZÉST frissítés után sem. Rosszul emlékeztem akkor. Én két linket szoktam nézni, ha nem a memóriámra hagyatkozom:
https://hu.excel-translator.de/fuggveny/
Excel Microsoft Support PageMiért nem lehet üresre "" cserélni (kivágni) azt a karaktert szóköz helyett?
Ez esetben egybe fognak folyni a számok és nem lehet tudni, hogy ha több mint 24 szám van, akkor hol végződik az első bankszámlaszám és hol kezdődik a következő. Ha csak 1 bankszámlaszám lehet, akkor üres a jobb megoldás.Ha vki MS365 Insider-t használ, annak pedig már van REGEXP is függvényben:
A képlet:
=REGEXKIVONÁS(A1;"\d{8}-?\d{8}-?(\d{8})?";1)
VBA-ban már régóta lehet REGEXP-et használni, referenciák között engedélyezni kell a "Microsoft VBScript Regular Expressions 5.5" osztályt. Aztán lehet használni:
Function BankSzamlak(cella As Range, minta As String) As Variant
Dim regExp As New regExp
Dim talalat
Dim eredmeny, c As Long
With regExp
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = minta
End With
If regExp.Test(cella) Then
Set talalat = regExp.Execute(cella)
ReDim eredmeny(talalat.Count - 1)
For c = 0 To UBound(eredmeny)
eredmeny(c) = talalat(c).Value
Next c
Else
eredmeny = "(nincs adat)"
End If
BankSzamlak = eredmeny
End Function
üdv
-
Fferi50
Topikgazda
válasz
Fire/SOUL/CD #53569 üzenetére
Szia!
Köszönöm. Tanulmányozni fogom. Az újabb függvényekkel már soha nem látott feladatokat is meg lehet oldani. A PQ-ról nem is beszélve.
Üdv. -
válasz
Fferi50 #53568 üzenetére
Van, de téves infókkal van tele (pl. vannak olyan fx-k, amiket MS365-nek jelöl, de O2021-ben is megy, de ugyanúgy MS365-nek jelöli azt is, ami nem megy korábbi Excelekben)
Mindenképpen rá kell kattintani az adott FX linkjére és Apllies To kinyit, ott van ténylegesen (már ha igaz is valóban), hogy mely Excel-k támogatják.Tényleg Muppet Show az egész...
-
Fferi50
Topikgazda
Szia!
"ahol számot vagy gondolatjelet lát azokat megtartja, a többit szóközre cseréli"
Miért nem lehet üresre "" cserélni (kivágni) azt a karaktert szóköz helyett?
Ebben az esetben nem lenne szükség a KIMETSZ függvényre sem.
Üdv.
Ps. Azért elszomorító, hogy ennyiféle verziója fut az Excelnek (Officenek). Nem tudom, van-e valahol egy "függvénykatalógus", ami megmondaná, hogy melyik újabb függvényt melyik verziótól lehet használni. -
1.
...ahol számot vagy gondolatjelet lát...
Milyen gondolatjelre gondolt a költő?
2. A táblázat utolsó sorában -nem tudom, hogy szándékosan, vagy véletlenül (hisz elég későn írtad a hsz-t)- egy 25 jegyű számlaszám szerepel. Az O365-ben írt képlet rosszul dolgozza fel.
3. Mivel nincs telepítve O2016 nálam, ezért az MS doksikra támaszkodom, viszont eszerint a SZÖVEGÖSSZEFŰZÉS nem létezik O2016-ban (pont ezért nem is foglalkoztam cellaképlettel való megoldással) -
Mutt
senior tag
válasz
bela85 #53564 üzenetére
Szia,
Jöttek már jó megoldások, én csak pár plusz dolgot, de nem a végeredményt mutatom.
Excel 2016-ban van SZÖVEGÖSSZEFŰZÉS (TEXTJOIN), amit tudunk használni ahhoz hogy a vegyes adatsorból csak a számokat kinyerjük.
B2-képlete:=KIMETSZ(SZÖVEGÖSSZEFŰZÉS("";0;HA(SZÁM(--KÖZÉP(A2;SOR(INDIREKT("A1:A"&HOSSZ(A2)));1))+(KÖZÉP(A2;SOR(INDIREKT("A1:A"&HOSSZ(A2)));1)="-");KÖZÉP(A2;SOR(INDIREKT("A1:A"&HOSSZ(A2)));1);" ")))
A képlet lényege, hogy a cella tartalmán egyesével végigmegy és ahol számot vagy gondolatjelet lát azokat megtartja, a többit szóközre cseréli. A szövegösszefűzés az egészet egybeírja. Mivel lesznek elől, középen és hátul felesleges szóközök ezeket a KIMETSZ-el eltávolítjuk illetve középen pedig egyre csökkentjük.
Aki MS365-ös verziót használ, annak van már REDUCE függvénye, ami tudja ezt egyszerűsíteni. A képlet C2-ben:
=KIMETSZ(REDUCE("";SORSZÁMLISTA(HOSSZ(A2));
LAMBDA(s;c;
s&HA(SZÁM(--KÖZÉP(A2;c;1))+(KÖZÉP(A2;c;1)="-");KÖZÉP(A2;c;1);" "))))
üdv
-
Mutt
senior tag
válasz
ny.janos #53561 üzenetére
Szia,
Egy trükk, hogyan tudod a számokat kinyerni egy vegyes adatsorból.
Az M-kód pedig:let
Forrás = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Added Custom" = Table.AddColumn(Forrás, "Számok",
each
Text.Trim(
List.Accumulate(Text.ToList([Adat]),
"",
(s, c) => if Text.Contains("0123456789- ", c) then s & c else s)
)
, type text)
in
#"Added Custom"
Ezzel a kódodban kb. 10 lépést (kb. Érték felülírva - Oszlopok eltávolítva3 részt) tudsz megspórolni.
üdv
-
bela85
aktív tag
válasz
ny.janos #53561 üzenetére
Köszönöm! Mára végeztem és nincs előttem a tábla, de holnap, ahogy időm engedi kipróbálom. Remélem tényleg a 2016-os verzióban is megvannak ezek a függvények.
A számlaszámok átalakítását meg akár makróval, akár "kézzel" manuálisan meg fogom tenni, (végülis egyszer kell megtenni és utána már ezt a formátumot tartani.) -
ny.janos
tag
válasz
Fire/SOUL/CD #53562 üzenetére
Pedig érdemes lehet és ezt nem én mondom
"How difficult is Power Query to learn?
So, how difficult is it to learn Power Query? If you are thinking that you need to be a programmer, or at least an Excel expert, you would be wrong. Power Query has an easy-to-use interface which is designed for everyday users.
There is a bit of a learning curve, but most of that is learning what each button does.
It takes years to become competent in VBA macros, it takes months to become competent in Power Query. Since 80% of what we did with VBA can be achieved with Power Query, then that is the place to focus.
If you want to go deep into Power Query, there is a programming language called “M” which you could learn. But you can harness 99% of the power without needing it at all."A megoldás egyébként (ha még jól emlékszem) egyetlen lépés kivételével a menüszalagról elérhető parancsokkal történt. Az utolsó 3 oszlopba az egyes azonosítók összevonásához kell az M kódba kézzel belenyúlni, melynek megoldását én magam Mark How to use Power Query Group By to summarize data bejegyzéséből tanultam.
-
válasz
ny.janos #53560 üzenetére
Bravo, szép megoldás!
Bevallom PQ meg sem fordult a fejemben (ritkán használom, de majd téli éjszakákon belemélyedek jobban)Most már csak az van, hogy a kibővített számlaszámokat a forrás- és cél oszlopban is lecserélni ill. (ha időd engedi) egységes formátumra/kinézetre hozni a cellákat (ne mindenféle elválasztó legyen, hanem csak pl. kötőjel stb stb)
Akkor ebbe már nem keverünk bele makrót.
Én is szívesen venném, ha leírnád a menetét, hasznos lenne, számomra biztosan.
-
ny.janos
tag
válasz
bela85 #53559 üzenetére
Még mielőtt elfelejteném: a számlaszámokon kívül más szám nem lehet a cellában, mert akkor a kód nem fog megfelelően működni!
Az előző bejegyzésemben írt eredményhez az alábbit kellene tenned (a megoldást 2019-es excelben készítettem ,csak remélni tudom, hogy a PQ függvényei működnek a 2016-os verzióban is).
1. A fájlod adott munkalapjának egyetlen oszlopát (melyben az adataid vannak) alakítsd táblázattá, az oszlop fejlécét írd át Adat-ra, a táblázat neve pedig Táblázat1 legyen.
2. A táblázat bármely részén állva az Adatok menü Táblázatból vagy tartományból pontját válaszd.
3. A PQ felugró menüjének kezdőlapján balra fent rákattints a Speciális szerkesztő-re, majd kijelölve az ott található kódot, az alábbira cseréld:let
Forrás = Excel.CurrentWorkbook(){[Name="Táblázat1"]}[Content],
#"Indexoszlop hozzáadva" = Table.AddIndexColumn(Forrás, "Index", 1, 1, Int64.Type),
#"Érték felülírva" = Table.ReplaceValue(#"Indexoszlop hozzáadva","-","",Replacer.ReplaceText,{"Adat"}),
#"Érték felülírva1" = Table.ReplaceValue(#"Érték felülírva"," ","a",Replacer.ReplaceText,{"Adat"}),
#"Hozzáadott előtag" = Table.TransformColumns(#"Érték felülírva1", {{"Adat", each "a" & _, type text}}),
#"Hozzáadott utótag" = Table.TransformColumns(#"Hozzáadott előtag", {{"Adat", each _ & "a", type text}}),
#"Oszlop felosztása karakterátalakítás alapján2" = Table.SplitColumn(#"Hozzáadott utótag", "Adat", Splitter.SplitTextByCharacterTransition((c) => not List.Contains({"0".."9"}, c), {"0".."9"}), {"Adat.1", "Adat.2", "Adat.3", "Adat.4"}),
#"Oszlopok eltávolítva2" = Table.RemoveColumns(#"Oszlop felosztása karakterátalakítás alapján2",{"Adat.1"}),
#"Oszlop felosztása karakterátalakítás alapján3" = Table.SplitColumn(#"Oszlopok eltávolítva2", "Adat.2", Splitter.SplitTextByCharacterTransition({"0".."9"}, (c) => not List.Contains({"0".."9"}, c)), {"Adat.2.1", "Adat.2.2"}),
#"Oszlop felosztása karakterátalakítás alapján4" = Table.SplitColumn(#"Oszlop felosztása karakterátalakítás alapján3", "Adat.3", Splitter.SplitTextByCharacterTransition({"0".."9"}, (c) => not List.Contains({"0".."9"}, c)), {"Adat.3.1", "Adat.3.2"}),
#"Oszlop felosztása karakterátalakítás alapján5" = Table.SplitColumn(#"Oszlop felosztása karakterátalakítás alapján4", "Adat.4", Splitter.SplitTextByCharacterTransition({"0".."9"}, (c) => not List.Contains({"0".."9"}, c)), {"Adat.4.1", "Adat.4.2"}),
#"Oszlopok eltávolítva3" = Table.RemoveColumns(#"Oszlop felosztása karakterátalakítás alapján5",{"Adat.2.2", "Adat.3.2", "Adat.4.2"}),
#"Hozzáadott utótag2" = Table.TransformColumns(#"Oszlopok eltávolítva3", {{"Adat.2.1", each _ & "00000000", type text}}),
#"Hozzáadott utótag3" = Table.TransformColumns(#"Hozzáadott utótag2", {{"Adat.3.1", each _ & "00000000", type text}}),
#"Hozzáadott utótag4" = Table.TransformColumns(#"Hozzáadott utótag3", {{"Adat.4.1", each _ & "00000000", type text}}),
#"Többi oszlop elemi értékekre bontva" = Table.UnpivotOtherColumns(#"Hozzáadott utótag4", {"Index"}, "Attribútum", "Érték"),
#"Oszlopok eltávolítva4" = Table.RemoveColumns(#"Többi oszlop elemi értékekre bontva",{"Attribútum"}),
#"Kinyert első karakterek1" = Table.TransformColumns(#"Oszlopok eltávolítva4", {{"Érték", each Text.Start(_, 24), type text}}),
#"Típus módosítva" = Table.TransformColumnTypes(#"Kinyert első karakterek1",{{"Index", type text}}),
#"Oszlop felosztása pozíció alapján" = Table.SplitColumn(#"Típus módosítva", "Érték", Splitter.SplitTextByRepeatedLengths(8), {"Érték.1", "Érték.2", "Érték.3"}),
#"Oszlopok egyesítve" = Table.CombineColumns(#"Oszlop felosztása pozíció alapján",{"Érték.1", "Érték.2", "Érték.3"},Combiner.CombineTextByDelimiter("-", QuoteStyle.None),"Érték"),
#"Sorok csoportosítva1" = Table.Group(#"Oszlopok egyesítve", {"Érték"}, {{"Előfordulás száma", each Table.RowCount(_), Int64.Type}, {"Indexsorok száma", each Text.Combine([Index],","), type nullable text}}),
Egyéni1 = #"Oszlopok egyesítve",
#"Egyesített lekérdezések" = Table.NestedJoin(Egyéni1, {"Érték"}, #"Sorok csoportosítva1", {"Érték"}, "Egyéni1", JoinKind.LeftOuter),
#"Kibontott Egyéni1" = Table.ExpandTableColumn(#"Egyesített lekérdezések", "Egyéni1", {"Előfordulás száma", "Indexsorok száma"}, {"Előfordulás száma", "Indexsorok száma"}),
#"Oszlopok átnevezve" = Table.RenameColumns(#"Kibontott Egyéni1",{{"Index", "Sorszám"}}),
#"Típus módosítva1" = Table.TransformColumnTypes(#"Oszlopok átnevezve",{{"Sorszám", Int64.Type}, {"Előfordulás száma", type text}}),
#"Sorok rendezve" = Table.Sort(#"Típus módosítva1",{{"Sorszám", Order.Ascending}}),
#"Típus módosítva2" = Table.TransformColumnTypes(#"Sorok rendezve",{{"Előfordulás száma", type text}}),
#"Sorok csoportosítva" = Table.Group(#"Típus módosítva2", {"Sorszám"}, {{"Számlaszámok", each Text.Combine([Érték]," ; "), type text}, {"Előfordulások száma számlaszámonként", each Text.Combine([Előfordulás száma]," ; "), type nullable number}, {"Indexsorok száma számlaszámonként", each Text.Combine([Indexsorok száma]," ; "), type nullable text}}),
#"Típus módosítva3" = Table.TransformColumnTypes(#"Sorok csoportosítva",{{"Előfordulások száma számlaszámonként", type text}})
in
#"Típus módosítva3"4. A menüben a Bezárás és betöltés - Bezárás és betöltés adott elyre parancsot válaszd, majd a táblázatot kijelölve adj meg egy olyan cellát a munkalapodon, ahol már nincs adat, amit felülírnál. Ugyanabba a sorba tedd, ahol a táblázatod fejadatai vannak.
-
ny.janos
tag
válasz
bela85 #53557 üzenetére
Nos, ha vannak olyan cellák, amelyben több számlaszám is szerepel, akkor már halmozódnak a problémák, azt nem tudom, hogy PQ-vel meg lehetne-e oldani (illetve feltehetően igen, de ahhoz lehet, hogy már Mutt tudása kell).
Abban az esetben, ha csak egyetlen számlaszám szerepel egy cellában és biztosan nincs benne más szám a számlaszám 16 vagy 24 karakterén túl, úgy működik az általam javasolt megoldás a 8 db nullával történő kiegészítéssel, ahogy azt Fire/SOUL/CD is írta.
-
bela85
aktív tag
válasz
Fire/SOUL/CD #53556 üzenetére
Sejtettem, hogy az lehetett, hogy megkavart az azonos profilkép. (még én is nézem sokszor, hogy "mi van? ilyet nem is írtam....
ja azt más írta, nem én"
Nos, köszönöm, jó lehet az a makró az átalakítással. Amúgy ny.janos megoldása annyiból tetszik, hogy rögtön megadná, hogy hol található az azonosság, melyik sorban.
Amit most vettem észre, és lehet bonyolítja a dolgot, hogy van olyan cella, ahol nem csak 1 számlaszám van, hanem akár 2 vagy 3.
-
válasz
bela85 #53554 üzenetére
ny.janos - Ezt sem neked írom, és a korábbi válaszaimat is hagyd figyelmen kívül!
Bocsesz!Az azonos profilképünk ne tévesszen meg.
De. Rendesen benéztem, ezért válaszoltam nem is Neked...
(Megkeveredtem, mint vasorrú bába a mágneses viharban)De pl: Erste Banknál meg pont hogy az 2x8 karakter azonos és az utolsó 8 számnál van eltérés általában.
A 24 jegyű számlaszámokkal nem kell tenni semmi, viszont a 16 számjegyűeket 24 számjegyre kellene konvertálni (8 db nullával kibővíteni) és ezt mindkét tartományban elvégezni (amit keresel oszlopban meg amiben keresel oszlopban is).amit keresel: 12345678-12345678
amiben keresel: 12345678-12345678-00000000
Ha az elsőt keresed a másodikban, akkor lesz egyezés, de fordítva már nem, pedig a 2 számlaszám ugyanaz.Szóval ezt Tőled kérdem (nem ny.janos-tól
)
1. Ez a makró megfelelne számodra?
2. elvégezzem benne azt a módosítást, ami elvégzi a 24 számjegyre konvertálást? -
ny.janos
tag
válasz
Fire/SOUL/CD #53552 üzenetére
Bocs, de ezt most te nem értelmezted megfelelően.
A korábbi kérdésem tartalmazta, hogy csak az első 16 karakter alapján kell az összehasonlítás? Ezt feltételezve készült a megoldás is. Ha egy 16 számjegyként megadott bankszámlaszámot hasonlítunk össze egy 24 számjegyből álló bankszámlaszámmal, és az első 16 karakter azonos, akkor az ugyanazt a számlaszámot jelenti (attól, hogy kiírjuk a nyolc darab nullát, vagy nem, attól az nem lesz másik bankszámlaszám). -
bela85
aktív tag
válasz
Fire/SOUL/CD #53552 üzenetére
Az azonos profilképünk ne tévesszen meg.
A számlaszámok nem így néznek ki, mint ny.janos példáiban.
Rendesen, ahogy korábban is írtam a példákat, a számlaszámok rendesen kötőjellel vannak elválasztva, tehát az egységes, csak épp előtte lehet, hogy nincs bank név írva, vagy ha van is, akkor előtte a név nincs, vagy szóköz ott stb. (ezzel azt akartam sugallni, hogy nem csak bankszámlaszám van a cellában és nem csak bank név)Ami a rossz, hogy van olyan számlaszám általában OTP bank olyan, hogy 2x8 karakterrel rögzítettek mert az utolsó 8 karakter már csak nulla. De volt aki úgy rögzítette be az OTP számlaszámot, hogy 3x8, tehát a végére is kiírta a 8 db nullát.
De pl: Erste Banknál meg pont hogy az 2x8 karakter azonos és az utolsó 8 számnál van eltérés általában. -
bela85
aktív tag
válasz
ny.janos #53551 üzenetére
Annyiból tetszik ez a megoldás, hogy megmutatná, hogy hol van az azonosság, és utána nem kéne azt külön bogarászni.
Bocsánat, hogy itt egyben válaszolok mindenkinek.
Nos, a számlaszámok mindig kötőjellel vannak elválasztva, maximum előtte a név,bank lehet, hogy ott nincs kötőjel, vagy szóköz.
A számlaszám egyezésnél fontos lenne az úgymond teljes egyezés, de pl: van olyan bankszámlaszám a táblámban ahol csak 2x8 karakterként lett felvíve az egyik helyen, a másik helyen ugyanaz 3x8 karakterként, mert az utolsó 8 karakter nyilván a 8db nulla. (na itt nyilván jó lenne, ha a 2x8 karakter miatt érzékelné, hogy az ugyanaz a két számla, de pl ahol 3x8 számból áll egy számlaszám, ott nem elegendő a 2x8 karaktert vizsgálni. -
válasz
ny.janos #53551 üzenetére
Ezt újra kell gondolnod, nem pedig tovább, mert hibás a dolog...
Az első sorban szereplő 24 számjegyű számlaszám csak 1x szerepel, nem 3x...
Az 1,3,7 sor azt a 24 jegyű számlaszámot nem tartalmazza.Sajnos a makrómat is kukázni lehet, mert ha valóban így néznek ki az adatok (és nem csak tesztelés miatt hoztad létre), hogy még a számlaszámok formátuma is el van baszarintva, nem egységes (különböző elválasztók, egybe is van írva stb)), akkor oldja meg az a vadegér, aki ezt így összehozta...
-
válasz
ny.janos #53548 üzenetére
Module1 kód
Option Explicit
'Fire/SOUL/CD - 2024
Public Function Fire_BankAccount_FX(MyCell As Variant) As String
'MyCell -> forrás cella címe (amit fel kell dolgozni)
'elválasztó karakter (itt kötőjel),
'ezzel vannak elválasztva számalászom 8-as csoportjai a cellá(k)ban
Const MYDELIMITER = "-"
'szöveg típusú dinamikus tömb
Dim MyStringArray() As String
'ciklusszámláló
Dim i As Long
'ebben hozzuk létre a cellákból kiszedett számlaszámot
Dim BankAccount As String
'FELOSZTÁS függvény segítségével, a MYDELIMITER paraméterrel tömböt hozunk létre
MyStringArray = Split(MyCell.Value, MYDELIMITER)
BankAccount = ""
For i = 0 To UBound(MyStringArray)
'eltávolítjuk a felesleges szóközöket a szöveg jobb- és bal oldaláról
MyStringArray(i) = Trim(MyStringArray(i))
'egy számlaszám 8-as csoportja akkor érvényes
'ha 8 karakter hosszú és számként lehet értelmezni
'(0-9 karaktereket tartalmazhat, mást nem)
If (Len(MyStringArray(i)) = 8) And (IsNumeric(MyStringArray(i))) Then
BankAccount = BankAccount + MyStringArray(i) + MYDELIMITER
End If
Next i
'számlaszám végén mindig keletkezik egy felesleges kötőjel karakter, töröljük
BankAccount = Left(BankAccount, Len(BankAccount) - 1)
'függvény visszaadja a megtalált, érvényes formátumú számlaszámot
Fire_BankAccount_FX = BankAccount
End Function
Ez a makró függvény(másolható) semmi mást nem tesz, csak az adott cellából kiszedi a számlaszámokat. Innentől hagyományos keresőképletekkel kivitelezhető, hogy a keresési tartományban lévő cellák melyike tartalmazza az adott számlaszámot.
-
ny.janos
tag
válasz
bela85 #53542 üzenetére
Szia!
Fire/SOUL/CD kérdésein túl pár további:
5. Jól értem, hogy valójában ismétlődéseket szeretnél keresni számlaszám alapján, azaz tényleg az oszlopon belüli azonosságokat szeretnéd megjelölni (pl. színnel) a számlaszám alapján (oszlopon belül mindkettő vagy több cellát)?
6. A cellában a számlaszám 16 vagy 24 karakterén kívül előfordulhat, hogy más szám is szerepel?
7. Az azonosságot a számlaszám hány karaktere alapján szeretnéd vizsgálni? Elegendő az első 16 karakter? Vagy ha szerepel 2x8 és 3x8 formátumban is, azt ne mutassa azonosnak?A legjobb lenne, ha fiktív adatokkal tudnál egy több sort tartalmazó mintát mutatni.
-
Fferi50
Topikgazda
válasz
bela85 #53542 üzenetére
Szia!
Sajnos a "szabálytalanságokat" nagyon nehéz szabályba rendezni. Valószínűleg több lépésre lesz szükség és segédoszlopokra.
Amire én gondoltam, képlettel szerintem ki lehet a számlaszámokat szedni egy segédoszlopra. A képlet pedig attól függ, milyen verziót használsz és a számok egyformán vannak a szövegen belül - mint a mintádban "-" jellel elválasztva.
O365 esetén használhatod a SZÖVEGELŐTTE, SZÖVEGUTÁNA függvényeket.
Korábbi verzióknál a SZÖVEG.KERES és a JOBB és BAL szövegdaraboló függvényeket.
A függvényeket attól függően paraméterezed, ahány kötőjel van a szövegben. Ez nem lesz azért túl sok verzió.
Ezután DARABHA (DARABTELI) függvénnyel megszámolhatod az ismétlődéseket, majd ennek eredménye alapján használhatsz feltételes formázást az eredeti oszlopodra. A segédoszlopokat pedig el is lehet rejteni.
Frissítés:
Mivel 2016-os Exceled van, az O365 függvények nem használhatók. Marad a második verzió vagy a makró.
Üdv. -
válasz
bela85 #53545 üzenetére
4. Általában fix (szóközkötőjelszóköz), de nem minden esetben, mivel nem csak én töltöm a táblát.
Tehát lehet szóköz nélküli kötőjel is?xxxxxxxx-xxxxxxxx-xxxxxxxx-Teszt Elek-K&H
de akár más elválasztó is bekerülhet a képbe?
MBH + Gipsz Jakab + xxxxxxxx-xxxxxxx
Sorolj fel néhány elválasztó karaktert, amit tipikusan előfordulhat/használtok
(pl. + és - és & stb stb)Muszáj tudnunk ilyen infókat, mert csak úgy lehet rá korrekt megoldást adni.
Excel 2016 révén -ha kivitelezhető is- az biztosan makrós megoldás lesz. Cellaképlettel -szvsz- nem kivitelezhető (nem egyforma sorrend ill különböző elválasztók miatt)vegyes elválasztó nem lehet! (ilyen esetet nem lehet feldolgozni)
MBH - Gipsz Jakab + xxxxxxxx-xxxxxxx
-
bela85
aktív tag
válasz
Fire/SOUL/CD #53544 üzenetére
1. 2016-os az Excel
2. Igen.
3. Igen, csak a számlaszám alapján kellene keresni, hogy az egyezik e.
4. Általában fix (szóközkötőjelszóköz), de nem minden esetben, mivel nem csak én töltöm a táblát. -
válasz
bela85 #53542 üzenetére
1. Milyen verziójú az Excel?
2. Akkor vannak/lehetnek ilyen cellák is? (
hol ugyanilyen sorrendben, hol másképp, (ha pl nem tudtuk a bankot...
)Gipsz Jakab - xxxxxxxx-xxxxxxx (hiányos)
MBH - Gipsz Jakab - xxxxxxxx-xxxxxxx (más sorrend)
xxxxxxxx-xxxxxxxx-xxxxxxxx - Teszt Elek - K&H (más sorrend)3. csak és kizárólag számlaszám alapján kellene keresni?
4. a név, bank, számlaszámot elválasztó karakter az fix?
pl itt esetedben " - " (szóközkötőjelszóköz) -
válasz
KaliJoe #53538 üzenetére
Uppsz, ez Excel 2019-es.
Uppsz, akkor Fferi50 makróját használd
"Szerencsétlen" Mutt teljesen el fog alélni a boldogságtól, szvsz az avatarján is 90 fokot fordult a sapka... -
bela85
aktív tag
Sziasztok!
Segítséget szeretnék kérni egy excel táblával kapcsoaltban.
Meg lehet oldani valahogy azt, hogy van egy tábla, amiben az egyik cellájában név, bankszámlaszám, bank neve szerepel. (hol ugyanilyen sorrendben, hol másképp, (ha pl nem tudtuk a bankot, illetve a bankszámlaszám is van ahol 2x8 karakter, van ahol 3x8 karakter) hogy ha a táblában ugyanebben az oszlopban de más cellában esetleg ugyanaz a számlaszám már előfordul akkor jelölje meg, vagy színezze a cellát (akár a betűszínt?)Ha képlettel megoldható az lenne a legjobb, de ha csak makróval akkor az is jó.
Pl: Gipsz Jakab - MBH - xxxxxxxx-xxxxxxx
vagy
Teszt Elek - K&H - xxxxxxxx-xxxxxxxx-xxxxxxxxSzétszedve nem lesz az adat külön-külön cellákra, szóval valahogy ebben a formában kéne megoldani.
Köszönöm előre is a segítséget!
-
ny.janos
tag
Sziasztok!
Nem tartom kizártnak, hogy csak én nem ismertem, miközben egy köztudott dologról van szó, azonban én már többször szenvedtem azzal, hogy amennyiben egy képletben nem tartományra, hanem táblázatra hivatkoztam, akkor azt a képletet jobbra vagy balra másolva a táblázat oszlopai ugyanúgy megváltoztak, mint ha relatív hivatkozás történt volna egy tartományra. Emiatt táblázatra hivatkozva is módosítottam ilyenkor a képleteket, és a táblázat ellenére tartományként hivatkoztam meg az oszlopokat (mert ugye a táblázat hivatkozásában a $ jel nem használható).
Ma azonban Mark (Excel Off The Grid) egyik videójából sikerült megvilágosodnom
, hogy a táblázatoszlopokra vonatkozó hivatkozások hogyan tehetők abszolút hivatkozássá. Gondoltam megosztom, hátha mégsem csak én voltam tudatlan eddig.
(Balra a táblázat, amire hivatkozok, jobbra fent a normál hivatkozás, amelyet jobbra másolva az oszlopok nem várt módon megváltoznak, jobbra lent pedig a megoldás a problémára.)
Üdv.
-
KaliJoe
tag
válasz
Fire/SOUL/CD #53534 üzenetére
Szia Fire,
Uppsz, ez Excel 2019-es. És nem aposztóffal írtam, és nem ismeri a LET függvényt. De Névmegadást / elnevezést használhatok hozzá akkor is, nemde?
-
KaliJoe
tag
válasz
Fire/SOUL/CD #48498 üzenetére
Szia Fire/SOUL/CD,
Ha jól értem a problémát nekem erre van egy szebb (igaz, nem egy képletben megfogalmazott) megoldásom. Ha érdekes - hálából
- elküldhetem Neked.
-
jotzo01
tag
Üdv mindenkinek,
lehet, hogy nagyon láma kérdés, de lehet excel-ben létrehozni egy körlevélhez hasonló fáljt, mint a Word-ben?
Pl.: van egy excel táblázat, és néhány cella tartalmát, pl. név, anyja neve, TAJ szám, stb. egy másik, .csv fáljból szúrja be.Közben rákerestem itt, ezek szerint inkább Word körlevél+excel adattábla.
-
válasz
KaliJoe #53533 üzenetére
Az O2021 Magyar (Én is ezt használom) is ismeri a LET függvényt.
Ezt a képletet másold be bármely cellába:=LET(x;1;y;2;x+y)
Nem tudom, hogy csak beíráskor bakiztál, de a Te képleted a hozzászólásodban aposztróffal kezdődik valamiért, úgy biztos nem oké. '=LET(sgsfg)
#53528 Mutt
Szerintem az a képlet szép.Ha csúnya képletet szeretnél látni, akkor nézd meg ezt.
-
KaliJoe
tag
Szia Mutt,
Le vagyok nyűgözve.
Ez a megoldás azért tetszik legjobban, mert nem használ Makrót, és mert Excel2021-ben is működik.
Holnap... ööö... azaz ma ki is fogom próbálni.Megjegyzem már én is attól tartottam, hogy makrót kell írnom hozzá, de Ti zseniálisak vagytok. Köszönöm értékes segítségeteket.
-
KaliJoe
tag
válasz
Fire/SOUL/CD #53525 üzenetére
Szia Fire/SOUL/CD,
Igen, találat!
-
KaliJoe
tag
válasz
Fire/SOUL/CD #53523 üzenetére
Szia Fire/SOUL/CD,
Feri érti jól az #53524-ben.
Tehát az (5 számot tartalmazó) adatbázis rendezett, balról jobbra növekvő.
A keresett számhármas rendezett, balról jobbra növekvő, ezért a 3-10-12 lehetséges csak, a 10-3-12 nem (mert a műveleti / eredeti) adatbázis rendezett, ott nem fognak így szerepelni.
Viszont - ahogy Feri jól értette - a 3-10-x-12 (ez esetben x csak 11-gyel lehet egyenlő),
vagy szemléletesebb példán a 8-20-42 számhármas, lehet úgy, hogy 8-x-20-y-42, vagy x-y-8-20-42, 8-x-y-20-42, és ezek lehetséges permutációi, stb. Tehát, az elé- közbe, utána ékelődés minden verziója megengedett.
Feri jól mondja:Az viszont sehol nincs feltételként megadva, hogy a keresett számoknak közvetlenül egymás után kell az adott sorban lenniük, csak az, hogy legyenek benne a sorban.
-
Mutt
senior tag
válasz
Fferi50 #53527 üzenetére
KaliJoe,
Feladtad a leckét, én is inkább már makrós megoldás (vagy akár Power Query) felé tendálnák.
Fferi adott makrót, én korábban egy MS365-ös képletet, de most egy Excel 2021-ben is működő(?) képlet jön, csúnya lesz!=LET(
adatok;INDIREKT("A2:E20");
sorok;SOROK(adatok);
adatsor;INDEX(adatok;SOR(INDIREKT("A1:A"&sorok));{1/2/3/4/5});
a;--INDEX(adatsor;0;1);
b;--INDEX(adatsor;0;2);
c;--INDEX(adatsor;0;3);
d;--INDEX(adatsor;0;4);
e;--INDEX(adatsor;0;5);
SZUM(((a=H2)+(b=H2)+(c=H2)+(d=H2)+(e=H2))*
((a=I2)+(b=I2)+(c=I2)+(d=I2)+(e=I2))*
((a=J2)+(b=J2)+(c=J2)+(d=J2)+(e=J2)))
)
A K2-es cellában van a képlet, ami húzható lefelé. A LET utáni első változó ("adatok") tartományát neked kell módosítani. Az "adatsor" változó képletének a végén van egy felsorolás ("{1/2/3/4/5}"), ez angol Windows-os gépre telepített Excelben "{1,2,3,4,5}" -re javítandó.
Hogyan műkődik a képlet?
Próbálja az Excel 2021-ben még nem létező BYROW függvényt helyettesíteni. A tartomány minden sorát egyesével vizsgálja. A sorban található 5 számot külön változókba teszi (a, b, c stb) és megnézi, hogy ezek vmelyike egyezik-e a H2-ben, majd az I2-ben és a J2-ben lévő számokkal. Ahol van egyezés mindhárom keresett értékkel, ott 1 lesz az eredmény a többinél 0. Ezt minden soron megcsinálja és szummáz a végeredményhez.A sortörések a képlet könnyebb olvashatóságát célozzák, nincs egyéb jelentőségük.
FireSoul/FFeri,
Köszönöm a segítséget. Ha sorrend számítana, akkor csak makróval tudnám a megoldást elképzelni. A korábbi példámban lustaság miatt nem voltak növekvő sorrendben a számok.
üdv
-
Fferi50
Topikgazda
válasz
KaliJoe #53522 üzenetére
Szia!
Ha használhatsz makrót, akkor az alábbi lehetőséget próbáld ki:
Sub szamkeres()
Dim rngalap As Range, rngkeres As Range, rrow As Range, keresrow As Range, kerescell As Range, talalat As Integer, total As Integer
Set rngalap = Range("A2").CurrentRegion
Set rngkeres = Range("H2").CurrentRegion
talalat = 0
For Each keresrow In rngkeres.Rows
For Each rrow In rngalap.Rows
For Each kerescell In keresrow.Cells
talalat = talalat + IIf(rrow.Find(what:=kerescell.Value, LookIn:=xlValues, lookat:=xlWhole) Is Nothing, 0, 1)
Next
If talalat = 3 Then total = total + 1
talalat = 0
Next
Cells(keresrow.Row, 12).Value = total
talalat = 0: total = 0
DoEvents
Next
End Sub
Ez a makró "egy menetben" végigkeresi a H2-től kezdődő tartomány számhármasait az A2 -től kezdődő adattartományban és az L oszlopban mellé írja a keresés eredményét.
A2 és H2 esetében a hozzájuk tartozó összefüggő tartományt használja, ezért nem kell megadni csak a kezdő címet. Ezért az A:E és a H:J tartomány mellé kell legalább egy üres oszlop! Emiatt írja az eredményt az L oszlopba. Így ismételt futtatás esetén sem lesz gond a tartományokkal.
Az alábbi függvény egy konkrét számhármast keres egy megadott tartományban:Function szamkereso(hol As Range, mit As Range) As Integer
Dim rnghol As Range, rngmit As Range, rngszam As Range, talalat As Integer, total As Integer
For Each rnghol In hol.Rows
For Each rngmit In mit.Cells
talalat = talalat + IIf(rnghol.Find(what:=rngmit.Value, LookIn:=xlValues, lookat:=xlWhole) Is Nothing, 0, 1)
Next
If talalat = 3 Then total = total + 1
talalat = 0
Next
szamkereso = total
End Function
Bemenő paraméterek:
hol = az adattartomány címe - ha $-os formában adod meg, akkor húzható lefelé a képlet.
mit = a keresendő számhármas címe
Ez egy felhasználó által létrehozott függvény, ugyanúgy használható, mint a beépített függvények.
Pl. =szamkereso($A$2:$E$100;H2:J2) a H2:J2 cellákban levő számhármas A2:E100 tartományban levő előfordulásának számát adja meg.
A függvény érték frissül, ha változtatod az alap tartományban vagy a keresési értékben levő számokat.
Az első makrót viszont változtatáskor ismét le kell futtatnod.
Fontos:
Hibakezelés nincs benne.
Ha 3 egyforma számot keresnél, akkor rossz értéket ad vissza.
A munkafüzetet makróbarátként vagy binárisként kell mentened!
Üdv. -
Fferi50
Topikgazda
válasz
Fire/SOUL/CD #53525 üzenetére
Szia!
Szerintem - az eredeti kérdést figyelembe véve - találatnak számít.
Nem szükséges a közvetlen egymás utáni előfordulás. Pl. mintha lottószámokat keresnél.
Üdv. -
válasz
Fferi50 #53524 üzenetére
Az eredeti kérdés szerint "Az ötös csoportok soronként rendezettek, vagyis A<B<C<D<E, számismétlődés nincs." és a minta is azt mutatja, hogy a keresett értékek is emelkedő sorrendben vannak a H-J oszlopban.
Pont ezért vetődött fel bennem a kérdés.
Mi van akkor, ha 3,10,12 számhármast keressük a pl 1,3,10,11,12 rendezett halmazban? Ez most akkor találtnak számít avagy sem? -
Fferi50
Topikgazda
válasz
Fire/SOUL/CD #53523 üzenetére
Szia!
Amit én eddig kihámoztam:
Az eredeti kérdés szerint "Az ötös csoportok soronként rendezettek, vagyis A<B<C<D<E, számismétlődés nincs." és a minta is azt mutatja, hogy a keresett értékek is emelkedő sorrendben vannak a H-J oszlopban. Ilyen módon tehát a sorrend fontos.
Az viszont sehol nincs feltételként megadva, hogy a keresett számoknak közvetlenül egymás után kell az adott sorban lenniük, csak az, hogy legyenek benne a sorban.
Emiatt szerintem az abc karaktersorozat szerinti keresés sajnos nem játszik, külön-külön és együtt kell meglenniük egy adott sorban.
Mutt példája azért sántít, mert nincs sorba rendezve a keresési tartomány.
Szép kis feladat, erre a megoldást Mutt a BYROW függvénnyel megadta, de az gondolom nincs a kérdező által használt verzióban még.
A korábbi verziókban esélyes nagyon egy makrós megoldás.
Üdv. -
válasz
KaliJoe #53521 üzenetére
Egyáltalán nem mindegy, hogy Te mit értesz számhármason...
Definíció szerint a sorrend is számít, azaz, ha Mutt példáját vesszük alapul, ahol a 3,10,12 keressük, akkor pl. a 12,10,3 meg minden egyéb nem jó.Itt a képen (ha a sorrend is számít, azaz kizárólag 3,10,12 számot és ilyen sorrendben keresünk) csak az 5. sor felel meg a feltételnek, a 7. sor meg nem, azaz a találatok száma 1, nem pedig 2...
Szóval esetedben kell, hogy számítson a sorrend avagy sem?
(ha számít a sorrend, az olyan, mintha egy szöveges fájlban keresnénk, hogy hányszor fordul elő az abc karaktersorozat, nem pedig, hogy azt keressük, hogy minden sorban szerepel-e az a és b és c karakter, mert nagyon nem mindegy)
-
KaliJoe
tag
válasz
Delila_1 #53518 üzenetére
Szia Delila,
Ezt már az eredeti #53516-ban is leírtam, hogy működik. DE...!!!, nem csak ez a feladat.
Hanem ezeket úgy kell kombinálni, hogy egyszerre mondja meg, hogy az adott számhármas létezik az (teljes) adatbázisban és ha létezik, akkor pontosan hányszor fordul elő?!
-
KaliJoe
tag
Szia Mutt,
Excel 2021-et használok.
OK, értem a SZORZATÖSSZEG megoldást, de az nem teljesen az, amit keresek. Ugyanis nemcsak egy darab számhármast keresek, hanem nagyon sokat, és azt kellene megmondanom, hogy egy adott számhármasból hány darab van a bázisadatként szolgáló adatbázisban. Tehát össze is kell számolni, hogy hányszor találom meg - a Te példádat véve alapul - a 3, 10, 12 számhármast? Aztán nézem / keresem a következő például 4, 8, 20; majd a 4, 8, 21 számhármast és így tovább.
Azt szeretném, hogy megjelenítem a számhármast, majd mögé írom, hogy hányszor található meg az adatbázisban. A következő sorban meg a következő számhármast, és hogy hányszor van meg.Így érthetőbb a probléma?
-
Mutt
senior tag
válasz
KaliJoe #53516 üzenetére
Szia,
Amikor több öszlopban keresed az értéket (vagyis DARABHATÖBB(A:E;H2) esetén), akkor soronként mindegyik oszlopra van egy eredmény a találatokról (pl. {IGAZ,HAMIS,HAMIS,HAMIS,HAMIS}).
Ha megadod a többi keresési értékeket, akkor pedig minden keresési értékre szintén visszakapod az oszloponkénti eredményt. Vagyis az 5 oszlop és 3 keresési érték alapján lesz 15 eredmény soronként.
A függvény ezen mátrixnak a produktumát adja vissza, amely MINDIG 0 lesz ha eltérő értékeket keresel, mert egy cellában egyszerre csak 1 db szám lehet, amely vmelyik keresendő számmal egyezik vagy sem, de egyszerre mindhárom keresendő számmal nem egyezhet.
Itt egy minta ami talán érthetőbbé teszi mint amit fent írtam:
Bal oldalon A-E-oszlopok (szürke háttér) ahol keresünk. Sárga amit keresünk.
Alatta pedig egy eredmény, hogy az A-E oszlop adott sorában megtaláltuk-e a keresendő számot. Ahol 1 ott igen, ahol 0 ott nem volt egyezés (bal oldalt zölddel ezek be is színezve). Ahogy látszik az első sorban a 3-as szám meg van az első oszlopban, a 10-es szám nincs sehol, a 12-es pedig a harmadik oszlopban van. Az első oszlopban van egy találat és kettő hiány, ennek a szorzata 0. A második oszlopban mindenhol 0 van, eredmény 0. A harmadik hasonló mint az első 1 talalát ellen van kettő hiány, megint 0 és így tovább.Ami neked kell, hogy mindegyik feltétel 1 találatot adjon vissza (lényegtelen hogy a számot a sor melyik oszlopában találjuk meg, az számít hogy van-e vagy sincs.
Vagyis az 1,0,0,0,0 helyett 1 vagy a 0,0,0,0,0 helyett egy 0 kell. Ezt SZUM-al lehet megcsinálni. Ezt láthatod lent, narancssárga helyeken már 1 db szám van.Neked azon sorok kellenek, ahol soronként mindenhol 1 van. Ezt egy szorzással lehet elérni, a K4-es cella képlete =H4*I4*J4. Majd ezt a K oszlopot összegezve megkapod a végeredményt. Vagy 1 lépésben SZORZATÖSSZEG, amelyet az L4-be látsz és aminek a képlete:
=SZORZATÖSSZEG(H4:H7;I4:I7;J4:J7)
Ha MS365-ön vagy, akkor viszont lehet egyszerűsíteni a BYROW függvénnyel, amely soronként végigmegy az adatokon:
A képlet:=SZUM(--BYROW(A2:E20;LAMBDA(r;(DARABHA(r;$H$2)+DARABHA(r;$I$2)+DARABHA(r;$J$2))=3)))
Más:
Szerintem érdemes lenne a Névkezelőben a INDIREKT("A2:E" & Öhsz;IGAZ) -nak egy nevet adni (pl. adatok) és onnantól már minden képleted egyszerűsíthető.üdv
-
Mutt
senior tag
válasz
KaliJoe #53505 üzenetére
Szia,
Nem írtál Excel verziót, de Excel 2021 vagy frissebben vagy, akkor van EGYEDI (UNIQUE) és akár SORBA.RENDEZ (SORT) függvényed.
Ez esetben
=ÖSSZESÍT(14;6;EGYEDI(U20:U85 );{1;2;3}
vagy=INDEX(SORBA.RENDEZ(EGYEDI(U20:U85);1;-1);{1;2;3})
MS365 változat esetén pedig TAKE (jelenlegi fordítása ÁTHELYEZ is van):
=ÁTHELYEZ(SORBA.RENDEZ(EGYEDI(U20:U85);1;-1);3)
üdv
-
KaliJoe
tag
Sziasztok,
Soronként ötös számcsoportokból (mindegyik szám külön cellában), hármas számcsoportok gyakoriságát szeretném meghatározni. Egyelőre több száz sor, később lehet több is. Az ötös csoportok soronként rendezettek, vagyis A<B<C<D<E, számismétlődés nincs. Öhsz=sorok száma. Ezért a DARABHA függvényt akartam használni.
A-tól E-ig az ötös számcsoportok.
H-I-J-ben a keresett hármas számcsoport.Ha szimplán annyit írok, hogy: =DARABHATÖBB(INDIREKT("A2:E" & Öhsz;IGAZ);H2), akkor simán megtalálja, hogy x darab van a H2-ben letárolt számból a halmazban.
Ha szimplán annyit írok, hogy: =DARABHATÖBB(INDIREKT("A2:E" & Öhsz;IGAZ);I2), akkor simán megtalálja, hogy y darab van a I2-ben letárolt számból a halmazban. stb.Viszont, ha ezt kombinálom, akkor egyből 0 lesz minden, noha a keresett számhármasokból VAN előfordulás:
=DARABHATÖBB(INDIREKT("A2:E" & Öhsz;IGAZ);H2;INDIREKT("A2:E" & Öhsz;IGAZ);I2;INDIREKT("A2:E" & Öhsz;IGAZ);J2)
A képlet szintaktikailag helyes, nincs hibaüzenet, az eredmény mégis hibás. Ti látjátok a hibát? Mit rontok el? Van jobb megoldásotok?Köszönettel
-
KaliJoe
tag
válasz
Delila_1 #53513 üzenetére
Szia Delila,
Már nem tudom mik voltak benne, csak arra emlékszem, hogy teszteléshez előre elkészített listáid voltak. Könnyű volt velük véletlenszerű adatokat felvenni, legyen az szöveges, vagy számos, akár vegyes.
UPC megszűnt, sőt azóta már a digikábeles is. Most a mail@kalijoe.hu vagy a kagvukiny@gmail.com élnek.
Köszönöm.
-
Fferi50
Topikgazda
válasz
KaliJoe #53505 üzenetére
Szia!
"önmagában egy másik cellában hozza a :$A$47:$W$85 hivatkozást, az INDEX függvény azonban mégsem fogadja be, mint cellahivatkozást."
Igen, csakhogy az egy szövegérték és nem tartomány hivatkozás. Ahhoz, hogy hivatkozás legyen belőle, bele kell foglalni az INDIREKT függvénybe!
Üdv.
-
KaliJoe
tag
Sziasztok,
Most máshol került elő a hasonló problémám. Időről időre le akarok majd futtatni egy makrót, amely egy kiindulási táblát fog feldolgozni. A forrástábla sorainak száma folyamatosan növekedni fog. Ezért fontos, hogy indig tudjam az össz sorok számát. Egyszerűen DARAB függvénnyel megszámoltatom, és ahol szám van az jó. De... a további számítások érdekében erre az össz sorra, hogy gyorsítsam a munkát és ne a 'végtelenségig' pl.: A:A hivatkozással, hanem mondjuk konkrétabban csak A2:A664 tartományban számoljon (aztán majd A2:A665, még később A2:A700, stb.) a DARAB függvényem a következőképpen néz ki: =DARABHA(INDIREKT("$A:A" & Öhsz);"=1"), ahol Öhsz egy név, ami arra a cellára hivatkozik, ahol az aktuális össz sorok számát már megszámoltattam.
Újra #HIV! hib. Mit csinálok rosszul? Hogy kell ezt Excelül helyesen írni?
-
KaliJoe
tag
válasz
Delila_1 #53506 üzenetére
Delila kedves,
Anno küldtél nekem egy olyan Excel táblát, amiben 100 számra voltak előkészített listák. Most megint szükségem volna rá (plusz tudnék én is adni Neked egy két lista ötletet), de nem találom.
Megkérlek szépen, küldd el nekem megint azt a szuper kis tábládat, szeretném betenni a sablonba.Köszönöm.
-
KaliJoe
tag
Sziasztok,
Új kérdés: Egy cellát szeretnék (pontosabban az abban lévő értéket) szeretném megjeleníteni, megtalálni, bizonyos feltételek mellett.
T88: =NAGY($U$20:$U$85;1)
T89: =NAGY($U$20:$U$85;2)
T90: =NAGY($U$20:$U$85;3)
U88: =INDEX($A$20:$W$85;HOL.VAN(NAGY($U$20:$U$85;1);U$20:U$85;0);OSZLOP(T88))
U89: =HA(T89<T88;INDEX($A$20:$W$85;HOL.VAN(NAGY($U$20:$U$85;2);U$20:U$85;0);OSZLOP(T89));INDEX($A$47:$W$85;HOL.VAN(NAGY($U$47:$U$85;1);U$47:U$85;0);OSZLOP(T89)))
U90: =HA(T90<T89;INDEX($A$20:$W$85;HOL.VAN(NAGY($U$20:$U$85;3);U$20:U$85;0);OSZLOP(T90));INDEX($A$47:$W$85;HOL.VAN(NAGY($U$47:$U$85;2);U$47:U$85;0);OSZLOP(T90)))Tehát, mit csinál a fenti rész? Egy véletlenül változó rendezetlen számsorból kikeresi a 3 legnagyobb értéket. Sima ügy. Azonban, ha van azonos nagy (tehát pl. az legnagyobb = a második legnagyobbal), akkor a kikérdezett hozzá tartozó érték már nem lesz helyes, mert ugyanúgy az elsőt fogja megtalálni. Nosza, a NAGY függvény keresési tartományát csökkentsük annyira, amiből már kizárjuk az előbb megtalált NAGY értéket. Ez helyes, és működik, de a fenti példa szerint beégetett, tehát csak akkor jó, ha a 46. sorban találtam meg az első legnagyobb értéket, és abból a sorból szereztem meg, amit akarok. DE..., ha bárhol lehet a két egyező elem, akkor ezt függvényesíteni kell(ene). És biztos én vagyok béna, vagy valamit félre értek, de állandóan #HIV hibát kapok, ha a behelyettesített verzióval próbálkozom:
U89: =HA(T89<T88;INDEX($A$20:$W$85;HOL.VAN(NAGY($U$20:$U$85;2);U$20:U$85;0);OSZLOP(T89));INDEX(CÍM(SOR(INDEX($A$2:$U$85;HOL.VAN(U88;$T$2:$T$85;0);OSZLOP(U88)))+1;1;1;IGAZ) & ":" & CÍM(SOR(W85);OSZLOP(W85);1;1);HOL.VAN(NAGY($U$47:$U$85;1);U$47:U$85;0);OSZLOP(T89))), az érdekes rész: HOL.VAN(U88;$T$2:$T$85;0);OSZLOP(U88)))+1;1;1;IGAZ) & ":" & CÍM(SOR(W85);OSZLOP(W85);1;1)
mi önmagában egy másik cellában hozza a : $A$47:$W$85 hivatkozást, az INDEX függvény azonban mégsem fogadja be, mint cellahivatkozást.Mit rontok el? Kérlek, segítsetek! Előre is köszönöm.
-
Mutt
senior tag
válasz
Fire/SOUL/CD #53502 üzenetére
Szia,
A bug helyes linkje ez.
A fejlesztői csapathoz továbbkerül a probléma, meglátjuk hogy mikor lesz belőle vmi.
A korábbi Power Query sorbarendezési problémára még semmit sem mondtak.üdv
-
KaliJoe
tag
válasz
Fire/SOUL/CD #53500 üzenetére
Szia Fire,
Köszönöm. Letöltöttem, majd tesztelem.
-
Logikus, amit írsz.
Én sem igen használtam az S-t, csak régebbről rémlett, hogy nem működött(aztán el is felejtődött, gondoltam majd frissítéssel javítják stb), viszont most jól jött volna, mert -ahogy írtad is- így kiváltható lenne a LET, itt-ott rövidülne is a képlet hossza, de mégis lehetne tudni, hogy mihez tartozik az adott szabály.
Ha már szabály: ugye írtam, hogy O2024-l is próbáltam, egy jó dolgot azért végre-valahára beletettek, "javítottak", nevezetesen, hogy ezt az ablakot végre át lehet méretezni, így egy hosszabb képlet is teljes egészében látható, könnyebb benne navigálni (O2021-ben még fix/nem méretezhető)
Amúgy kösz a hibajelentést!
UI: ha nem javasoltad volna az N-s megoldást, akkor nem jutott volna eszembe az S, úgy hogy ezt közösen "hoztuk össze"...
-
Mutt
senior tag
válasz
Fire/SOUL/CD #53499 üzenetére
Szia,
Bugot találtál, bejelentettem itt.
Az én teoriám az, hogy az S betű egy foglalt szó, amit elsődlegesen az aktuális sort jelenti. Ha átkapcsolsz S1O1 (sor-oszlop) hivatkozásra, akkor a képlet bevitele során egyből kijelöli az aktuális sort. O esetén pedig az oszlopot.
Excel 2010-ben is megvan a hiba, de annyira kevesen használják ezt a függvényt, hogy te vetted észre egyedül. Korábban T-t használtam, ez esetben pl. HIBÁS(T("USA"))
VBA-val be lehet vinni a függvényt, és ha más nyelven használjuk akkor ott sincs ezzel gond.
üdv
Új hozzászólás Aktív témák
Hirdetés
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Google Pixel 9 Pro XL - hét szűk esztendő
- HiFi műszaki szemmel - sztereó hangrendszerek
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Óra topik
- exHWSW - Értünk mindenhez IS
- PROHARDVER! feedback: bugok, problémák, ötletek
- Ubiquiti hálózati eszközök
- Mibe tegyem a megtakarításaimat?
- Nintendo Switch 2
- További aktív témák...
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem, Most kedvező áron!
- Antivírus szoftverek, VPN
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- ÁRGARANCIA! Épített KomPhone Ryzen 5 9600X 32/64GB RTX 5070 12GB GAMER PC termékbeszámítással
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max/
- Iphone 16E 128GB Fekete Bontatlan 24 Hónap Garancia
- Telefon felvásárlás!! Samsung Galaxy A14/Samsung Galaxy A34/Samsung Galaxy A54
- 0% THM részletfizetés, beszámítás! Gamer PC, notebook, konzol, Apple termék, hardver KAMATMENTESEN!
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PC Trade Systems Kft.
Város: Szeged