Keresés

Részletes keresés

tbando Creative Commons License 2013.10.29 0 0 22882

Szia!

 

Elképzelni sem tudom mi a probléma nálad. Most újra teszteltem a képletet dátumokkal, normál számokkal, és működik. A dátumokat beírtam stringnek is, de akkor 0-t ad eredményül és nem #SZÁM! hibát. A képlettel mindenféle hibát (#érték!, #név!), elő tudtam idézni, de #szám!-ot azt nem. Tehát elképzelni sem tudom, hogy nálad mi okozhatta. Talán a dátumok számformátuma nem megfelelő. Próbáld ki a képletetet normál számokkal is, ha azokkal működik, akkor nagy valószínűséggel a dátumfomádat nem szereti. Ha nem, akkor valami excelbeállítási probléma lehet. Nálam a Lotus kompatibilitás szokott időnként nem várt eredményhez vezetni. Lehet hogy nálad is van valami extremítás. Ha nem boldogulsz, küldd el priviben, hagy nézzem meg én is.

 

És végül: Van egy olyan gyanúm, hogy valamit egészen másképp csinálsz mint kéne. Ezt abból gondolom, hogy ezt írod:  "de valamennyi cellában #SZÁM! az érték, akár aktív, akár inaktív szó áll az F mezőben". Hol vannak ezek a valamennyi cellák? Amikor összesen  csak 1 cella értéke fűgg az F mezőbeli beírásoktól. A max képleté.

 

Előzmény: pimre (22880)
pimre Creative Commons License 2013.10.29 0 0 22881

Nem hosszú 1-re, hanem hosszú í-re. És nem megoldásogra, hanem megoldásodra (és nem osztogatnak, hanem fosztogatnak:-)))

Előzmény: pimre (22880)
pimre Creative Commons License 2013.10.29 0 0 22880

Akkor most egy pillanatra visszatérnék egy több mint 3 hete elhangzott megoldásogra, a tömbképletre.  Djmorphy 22505-ös kérdésére az =Max(ha(F:F=äktiv";A:A)) képletet javasoltad megoldásnak tömbképletként beírva.

Érdekelt a dolog, kipróbáltam, és nekem semmiképp sem akar összejönni. A tömbképlet rendben megjelenik {=MAX(HA(F:F="aktív";A:A))}, de valamennyi cellában #SZÁM! az érték, akár aktív, akár inaktív szó áll az F mezőben. Az A oszlopban dátumok vannak 2013.01.01, 2013.01.02 stb. formában, az F oszopban aktív, vagy inaktív, ügyelve a hosszú 1-re.

Ha a függvényből a MAX() részt elhagyom, akkor is ugyanez az eredmény.

 

Vajon ez miért nem működött nálam. Akkor nem akartam rögtön megzavarni a dolog megoldását a kérdésemmel, de azért továbbra is érdekel.

 

 

 

Előzmény: tbando (22507)
Sánta Kutya (SK) Creative Commons License 2013.10.29 0 0 22879

Ezt hívja Dale Carnegie mesterelmének, ezért érdemes ilyen fórumokban tagnak lenni.

Előzmény: tbando (22878)
tbando Creative Commons License 2013.10.29 0 0 22878

Pont jókor. A probléma a tripletek munkafűzeti és vba sorbarendezési különbsége  volt. 

 

A legszebb ebben a történetben, ahogy egymásra épültek a fejlemények. Ahogy tisztázódott. 

Előzmény: Sánta Kutya (SK) (22877)
Sánta Kutya (SK) Creative Commons License 2013.10.29 0 0 22877

És én még el sem olvastam, mi volt a feladat, csak a tripletek rendezésénél kapcsolódtam be. :-)

Előzmény: tbando (22874)
tbando Creative Commons License 2013.10.29 0 0 22876

Valamit azonban nem értek ennél az autoszűrőnél. A 255 karakternél hosszabb stringeket is illene szűrnie az 1-255 karakter alapján. De nem teszi. Miért? Úgy dereng az írányított szűrőnél nem volt ilyen probléma.

Előzmény: tbando (22873)
Fferi50 Creative Commons License 2013.10.29 0 0 22875

Szia!

 

Benne van a VBA elején az Option utasítások között. Ugyanott van az Option Base is. Valamint a szöveghasonlító strcomp függvény magyarázata is hivatkozik rá.

Én sokkal izgalmasabbnak és újdonságnak találtam a magyar kettősbetűk ügyét.

 

Üdv.

Előzmény: Sánta Kutya (SK) (22871)
tbando Creative Commons License 2013.10.29 0 0 22874

Klassz! Máris megérte feltenni ide a problémát. 

Előzmény: pimre (22870)
tbando Creative Commons License 2013.10.29 0 0 22873

Az autószűrőnek van korlátja. 255 karaktert képes szűrni. (excel 2007)

 

Ha ennél hosszabb szövegeket akarsz szűrni, használd a special (írányított) szűrőt. Annak is van korlátja, de lényegesen magasabb. Hogy mennyi, arra nem emlékszem, de sok, több mint ezer. Arra viszont emlékszem, hogy nekem még annak a korlátját is túl lépve kellett szűrnöm (excel 2003-mal). meg is oldottam. De József feltett ide a fórumra  egy az enyéménél elegánsabb megoldást, ami szintén többezres stringeket volt képes szűrni. De megtalálni...... Talán ha olvassa, kedve lesz újra ismertetni. Ha nem és szűkséges lesz, megírhatom az én módszeremet. 

Előzmény: NeomatiK (22869)
pimre Creative Commons License 2013.10.29 0 0 22872

Ja és elfelejtettem itt a táblázatba betenni az összetett magyar betűket, de kipróbáltam, és az opció alkalmazásával azokat is a magyar ABC szerint rendezi, ahogy ezt megírtad.

Előzmény: Sánta Kutya (SK) (22868)
Sánta Kutya (SK) Creative Commons License 2013.10.29 0 0 22871

Ezt valahová fel kéne írni a topikkincstárba...

Előzmény: pimre (22870)
pimre Creative Commons License 2013.10.29 0 0 22870

Megtaláltam a megoldást a VBA-ban. Ha a modul elején elhelyezzük az Option Compare Text utasítást, akkor az adott nyelvi beállításokat veszi figyelembe. Ki is próbáltam ezt, és az alábbi táblázatban szedtem össze az eredmények közti különbséget:

 

Option Compare Text

nélkül rendezve            Option Compare Text használatával rendezve

Az                                      Az

Er                                       az

Iz                                        Áz

Ok                                      áz

Ut                                       Er

az                                       er

er                                        Ér

iz                                        ér

ok                                       Iz

ut                                        iz

Áz                                      Íz

Ér                                       íz

Íz                                        Ok

Ók                                      ok

Ön                                      Ók

Út                                       ók

Üt                                       Ön

áz                                       ön

ér                                        Őn

íz                                        őn

ók                                       Ut

ön                                       ut

út                                        Út

üt                                        út

Őn                                      Üt

őn                                       üt

Űt                                       Űt

űt                                        űt

 

Ez kicsit csúnyácska lett, de a lényeg látszik. Tehát az opció nélkül lefuttatva a nagybetűk előre kerültek, az á, é, í ó, ö, ú és ü utánuk, ezen belül is a nagy-, majd a kisbetűk, aztán az Ő és ő végül az ű és Ű. Az opció használatával csak a nagybetűk kerülnek a saját kisbetűs párjuk elé. 

Előzmény: Sánta Kutya (SK) (22868)
NeomatiK Creative Commons License 2013.10.29 0 0 22869

Sziasztok!

2002-es Excelben autószűrőt használok a mukalap oszlopaira. Az egyik oszlop celláiban (20 cella kb) elég sok szöveg van, van közte egyforma is és van különböző tartalmú is, kb 14 fajta van. A fönti szűrő gomb lenyílásakor azonban csak 6 szűrési lehetőség jelenik meg. Létezik, hogy van valami karakterbeli korlát? És emiatt nem listázza a többit?

Sánta Kutya (SK) Creative Commons License 2013.10.29 0 0 22868

:-)

 

Nem is olyan meglepő, hogy ezeket hátrébb sorolja, hisz így már másik betű. Ez az alapja az Excel sorbarendezésének.

 

Czanyik Katalin

Csabai Gyula

Pátzai Pál

Pátyi Lajos

 

Ezek Excellel ábécébe rendezett nevek. Tehát általában így előnyös. Néha meg nem. :-)

Előzmény: tbando (22865)
tbando Creative Commons License 2013.10.29 0 0 22867

Kösz. De a transpose mellé kérnék egy másik kíírási utasítást is. Olyat, amelyik nem transzponal. 

Előzmény: Delila10 (22859)
Delila10 Creative Commons License 2013.10.29 0 0 22866

Két makró szükséges hozzá. Az elsőt a Munka1 lapodhoz kell rendelned (ahogy az előzőnél).

 

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim sorBeir As Integer, nev  'helyfoglalás a változókhoz
    If Target.Column = 2 Then  'ha a bevitel oszlopa a B, akkor
        nev = Target.Value   'a nev válztozó vegye fel a kiválasztott értéket
        sorBeir = Target.Row  'a sorBeir változó vegye fel a beírás sorának a számát
        Keres nev, sorBeir  'Meghívjuk a Keres makrót, átadva a nev és sorBeir változók aktuális értékét
    End If
End Sub

A másodikat modulba tedd. VB szerkesztőben Insert | Module. A kapott üres lapra másold be:

 

Sub Keres(nev, sorBeir)
    Dim sor As Integer
    sor = Application.WorksheetFunction.Match(nev, Sheets("Adat").Columns(6), 0)  'Az Adat lap G oszlopában (6) meghatározza a nev változó sorát (a HOL.VAN függvény VBA-s megfelelője a Match)
    Sheets("Adat").Range("G" & sor).Copy Sheets("Munka1").Range("G" & sorBeir) 'másolás
End Sub

Az első figyeli a Munka1 lapon történt változásokat. Mikor a B oszlopban kiválasztasz egy adatot az érvényesítésből, akkor a változás értékét (a megadott adatot), és a változtatás sorát átadja a modulba írt makrónak. Erre azért van szükség, mert az egyes lapokhoz rendelt makrók csk a saját lapjukon tudnak dolgozni.

 

Előzmény: hunterzsolt (22863)
tbando Creative Commons License 2013.10.29 0 0 22865

SK! Megemelem elötted a kalapom. A munkafüzeten alkalmazott < reláció a magyar abc szerinti müködik, míg a vba-é az angol szerint.  Amint az a berakott táblázaton is látható, csak a magyar kettős betüknél borult a reláció. Nagy meglátás volt! Elismerésem.

 

(A táblázat elég nagy, ha a fórummotor nem fogadná felteszem egy elérhető tárhelyre)

 

Előzmény: Sánta Kutya (SK) (22857)
pimre Creative Commons License 2013.10.29 0 0 22864

A függvényként való működtetésnél egyszerűen a tömb nevét adom át paraméterként:

 

Dim tömb(elemszám) ' vagy ReDim tömb(elemszám)

 

' tömb feltöltés

 

Call quicksort(tömb) 

 

A stringgel kapcsolatos hiba okára nincs ötletem. Én is megnéztem, és nálam is jó volt a sorrend, de ellenőrzéskor hibásnak jelezte az Excel az általad megadott párokat.

 

Viszont, amikor kipróbáltam ezek rendezését, és találtam egy hibát a programban. Ugyanis az elmúlt évtizedekben eddig kizárólag számokkal használtam az algoritmust, így két változót hibásan numerikusnak (Double) deklaráltam Variant helyett. Az érintett sor helyesen: Dim aktelem As Variant, segédvált As Variant. De ezt Te nyilván korrigáltad, hiszen lefutott nálad a program a stringekkel.

 

 

Előzmény: tbando (22851)
hunterzsolt Creative Commons License 2013.10.29 0 0 22863

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim sor As Integer
If Target.Column = 4 Then
sor = Application.WorksheetFunction.Match(Target, Columns(8), 0)
Cells(sor, 9).Copy Cells(Target.Row, 4)
End If
End Sub

Megpróbáltam, töröltem a Selection-t, beírtam a lapnevet, de nem történik semmi! 
A Munka1 fülön a G oszlopba kellene, hogy betegye a másolatot az Adat fül G oszlopából! Egyébként a Munka1 fül C oszlopában listázom ki az Adat fül F oszlop adatait, amiből választok! 

Egy részletes magyarázatot tudnál adni a kód sorairól, hogy ha itt és itt változtatok, akkor mi történik, csak, hogy több helyen is tudjam ezt alkalmazni, és a jelenlegi funkciójára is rá tudjam bírni?

Előzmény: Delila10 (22862)
Delila10 Creative Commons License 2013.10.29 0 0 22862

A makró címéből vedd ki a Selection-t.

Add meg a füzet nevét, és a lapnevet, ahonnan másolni akarsz.

Előzmény: hunterzsolt (22860)
hunterzsolt Creative Commons License 2013.10.29 0 0 22861

 Ez lemaradt! :)

Előzmény: hunterzsolt (22860)
hunterzsolt Creative Commons License 2013.10.29 0 0 22860

Köszönöm Delila10 a kódot! Működik bár nem teljesen úgy, ahogy szeretném mert a B oszlopba, ha üres mezőre kattintok, hogy kilistázza választási lehetőséget, hibát ír ki! Ezt ki lehet valahogy küszöbölni? 
Úgy működik az egész, hogy a B oszlopban kilistázza a tételt én kiválasztom az egyiket és a D sorban a hozzá rendelt ajánlat megjelenik.
Jelenleg a hibánál, ha a stopra kattintok, majd újra a cellára, úgy már megjelenik az amire szükségem van!
Még egy kérdés: Mivel ez a táblázat, amikről a képeket készítem csak szemléltetésnek van így a valós táblázatom nem teljesen így nézne ki! Meg lehet ezzel a kóddal (valamelyik sor/sorok módosításával) azt oldani, hogy a cellákat egy másik munkafüzet lapjáról másolja be?

Előzmény: Delila10 (22846)
Delila10 Creative Commons License 2013.10.29 0 0 22859

Range("M11:M19")=Application.Transpose(tmb)

Előzmény: tbando (22852)
Sánta Kutya (SK) Creative Commons License 2013.10.29 0 0 22858

Bocsánat, ez valószínűleg nem az Excel verziójától függ ilyenkor (főleg makróban), hanem a locale beállításaitól. Mi van, ha a vezérlőpultban full angolra állítasz minden nyelvi-területi beállítást?

Előzmény: Sánta Kutya (SK) (22857)
Sánta Kutya (SK) Creative Commons License 2013.10.29 0 0 22857

Próbáld ki angol Excellel is. Az a vakmerő elképzelésem támadt, hogy esetleg a te verziód felismeri a mindegyik párban látható kétjegyű magyar mássalhangzókat, de valamiért az ábécé végére sorolja.

Előzmény: tbando (22855)
tbando Creative Commons License 2013.10.29 0 0 22856

Na persze a data.hu link lemaradt. Természetesen :((((

 

Letöltőlink : http://data.hu/get/7076944/kisebb.xlsx 

Előzmény: tbando (22855)
tbando Creative Commons License 2013.10.29 0 0 22855

Szia!

 

Úgy néz ki igazad van. Az 5000 tripletpárból 35-nél a bináris és a szöveges összehasonlítás valószinűleg eltérő eredményt ad.  De most mennyivel vagyunk előbbre azzal, hogy ezt megállapítottuk?  Gyakorlatilag semmivel. Mert ettől még teljesen érthetetlen, hogy ezeknél a textuális miért ad más eredményt mint a normális bináris? A többi meg a helyes relációt mutatja, mind textuálisan, mind binárisan.

 

Egyáltalán: mi az hogy bináris és mi az hogy szöveges összehasonlítás. A vbUse CompareOption-ról már nem is beszélve, mert azt meg nem is volt hajlandó végrehajtani.

 

A CSX-CTA triplet párt  vizsgálva az derült ki, hogy a CS párosítás gázos. Ugyanis a CS nem csak a CT-nél nagyobb, de T utáni többi betűs párosításnál is  (lásd az ábrát).  És ilyen gázos stringpárból még 34 akadt, de a résztvevő karakterek gyakoriságából semmi féle tendencia nem rajzolódik ki.

 

A gázos tripletpárokat felraktam a data.hu-ra. Hátha valakinek mondanak valamit.  

 

 

Előzmény: Fferi50 (22854)
Fferi50 Creative Commons License 2013.10.28 0 0 22854

Szia!

 

Szerintem az összehasonlítási módtól függ, hogy melyiket látja nagyobbnak. Nézd meg az strcomp függvénnyel és látni fogod a különbséget.

Hogy miért van így azt "Redmondtól" kellene megkérdezni....

 

Üdv.

Előzmény: tbando (22851)
Sánta Kutya (SK) Creative Commons License 2013.10.28 0 0 22853

2000-ben jó a sorrend.

Előzmény: tbando (22851)

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