Hirdetés

2024. június 19., szerda

Gyorskeresés

Útvonal

Fórumok  »  OS, alkalmazások  »  Microsoft Excel topic (kiemelt téma)

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-11-13 08:31:56

LOGOUT.hu

A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.

Összefoglaló kinyitása ▼

Hozzászólások

(#16801) Fire/SOUL/CD válasza Mutt (#16800) üzenetére


Fire/SOUL/CD
félisten

Az nem megoldás, különösen, ha keresések is zajlanak, beépített fx-ekkel... :(

Traxx
Itt sajnos a legalapvetőbb problémát kellene kiküszöbölni, azt, amit adatbázisok estén egyszerű, de excelnél adatbázisul szolgáló táblázatoknál nem lehet (vagy igen körülményesen (min. makrót bevonva))
Nálad -adatbázis esetén így nevezik- egy a többhöz kapcsolat kellene... (legördülő listák alapból alkalmatlanok erre, stb stb)

[ Szerkesztve ]

Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

(#16802) petro3355 válasza Mutt (#16799) üzenetére


petro3355
csendes tag

és nem tudsz véletlen ilyen nyelvi csomagot 2007-es verzióhoz?

(#16803) Traxx válasza Fire/SOUL/CD (#16801) üzenetére


Traxx
őstag

Ezt úgy érted, hogy kb. bukta a dolog? :( Mert annak nem nagyon örülnék...

"Amúgy a lekvár leszedésre jobb módszer is van: le kell nyalni... elképzelem, ahogy egy nagy PH!-s procitesztben fLeSsék nyalogatják a procikat" by Male (Hűtőpaszta vs. lekvár 2. rész)

(#16804) Mutt válasza Traxx (#16794) üzenetére


Mutt
aktív tag

Hello,

lappy megoldása tökéletes. Az összes kereső függvénnyel (FKERES, HOL.VAN) az a gond, hogy csak 1 találatot add vissza, neked viszont akár több is kellene, ezt megoldani csak trükkösen lehet.

B90-be menjen ez:
=INDEX($A$57:$N$80;HOL.VAN($E$84;$A$57:$A$80;0);4)
B91-be ez:
=INDEX($A$57:$N$80;HOL.VAN($E$84;$A$57:$A$80;0)+1;4)
D95-be ez:
=INDEX($A$57:$N$80;HOL.VAN($E$84;$A$57:$A$80;0);9)
D96-ba ez:
=INDEX($A$57:$N$80;HOL.VAN($E$84;$A$57:$A$80;0)+1;9)

Az INDEX helyett akár az ELTOLÁS függvény is használható.

Alternatív megoldás az INDIREKT függvénnyel.
B90:
=INDIREKT("D"&VÁLASZT(HELYETTE($E$84;".";"");57;59;61;63;65;67;69;71;73;75;77;79))
B91:
=INDIREKT("D"&VÁLASZT(HELYETTE($E$84;".";"");57;59;61;63;65;67;69;71;73;75;77;79)+1)
D95:
=INDIREKT("I"&VÁLASZT(HELYETTE($E$84;".";"");57;59;61;63;65;67;69;71;73;75;77;79))
D96:
=INDIREKT("I"&VÁLASZT(HELYETTE($E$84;".";"");57;59;61;63;65;67;69;71;73;75;77;79)+1)

üdv.

A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

(#16805) pigster válasza Mutt (#16804) üzenetére


pigster
senior tag

Alternatív megoldás az INDIREKT függvénnyel. :Y
Még jó hogy havonta kell csinálnia, nem naponta...

Egyébként érdemes megnézni: Több érték visszaadása keresésből

[ Szerkesztve ]

FIGYELEM! A többszázezres Samsung okostévék kéretlen reklámokat tolnak az arcodba.

(#16806) Fire/SOUL/CD válasza Traxx (#16803) üzenetére


Fire/SOUL/CD
félisten

Pont most linkelte Mutt a trükkös megoldást, kár, hogy nem töltötte le a teljes táblázatot.
Esetedben ez annyit tesz, hogy minden egyes sorszámozott lap esetén egyéni "trükk" kell, ergó többet fogsz ezzel eltölteni, mint hogy a progi a kezed alá dolgozzon (mert így nem lehet egységes eljárást készíteni, mindhez külön kell lényegében)

Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

(#16807) Traxx válasza Mutt (#16804) üzenetére


Traxx
őstag

Nagyon köszönöm, tökéletes! :C :R Most már szerintem némi formázástól eltekintve ez marad a végleges változat :R

Egyébként a trükközés az egész táblázatra jellemző, mert az elején lévő srafozásos részt 2010-es excel alatt elég hamar összedobta a kolléga - csak éppen ahol használatban lenne ez az egész, ott csak 2003 van. És nem volt túlzottan nagy akarat a verziófrissítésre, és arra, hogy 50K-t rááldozzon a cég 1 táblázat kedvéért. Ami részemről is érthető és jogos :)

Fire/SOUL/CD: értem, amit mondasz, és van is benne igazság. Viszont ez a karbantartási lap kinyomtatásra kerül, és egyéb funkciója nem lesz, legalábbis a gépen nem. Tehát pl. jön egy javítás febr. végén, már tudjuk, mit fogunk végezni az adott gépen, vagyis a lap fölötti részletezés a legördülő menüből meglesz. Innentől kezdve Mutt megoldásának hála már csak a hónap számát kell módosítanom a karbantartási lapon, és beírni egy javítási dátumot, azt követően pedig kinyomtatni. Az adott gépnél a következő javításnál pedig ugyanezt lejátszani...az ebben az esetben lényegtelen, hogy az előző lap a gépen nem lesz meg, hiszem a funkcióját papír alapon tölti majd be.

Tehát én úgy látom, hogy pontosan így fog a kezem alá dolgozni :K :R eredetileg is így szerettem volna valahogy (és nem csak én, hanem az is, aki majd kezelni fogja ezt a tervet), szóval boldog lehetek :)

Jobb, kézreesőbb megoldástól nem zárkózok el, ha van javaslatod...mindig, mindent lehet még jobban és egyszerűbben :R De ez a mostani helyzet is korrekt szerintem.

[ Szerkesztve ]

"Amúgy a lekvár leszedésre jobb módszer is van: le kell nyalni... elképzelem, ahogy egy nagy PH!-s procitesztben fLeSsék nyalogatják a procikat" by Male (Hűtőpaszta vs. lekvár 2. rész)

(#16808) Wasquez


Wasquez
senior tag

Excel táblázatból hogyan kell a képleteket kiszedni egy táblázatból az értékek mögül?
Azt szeretném, hogy a számítások ne látszódjanak a cella értékek mögött!?

PC

(#16809) lappy válasza Wasquez (#16808) üzenetére


lappy
őstag

Szia!
Kijelölöd- másolod- Irányított beillesztés és csak értéket illesztesz be.

Bámulatos hol tart már a tudomány!

(#16810) hallgat


hallgat
csendes tag

Sziasztok!

Elakadtam egy valószínűleg triviális problémánál.

2010 Excelben makró.

A képleteket kicserélem csak adatokra úgy, hogy a kijelölt részt rámásolom saját magára, érték beillesztéssel.

A bajom az, hogy a számokat szövegként fogja betenni, amit ugyan kézzel könnyű átalakíttatni vele, de ez most nem jó.
A makró lefutása után a cellában már számként tárolt számnak kellene lennie, mert addig a mellette lévő FKERES sem működik stb...

Sajnos nem találtam rá utalást, hogy ezt miként lehet makróban megadni.
Próbálkoztam ezzel: Paste:=xlPasteValues*1 ami ugyan lefutott, de eredményt nem hozott, továbbra is szövegként tárolta a számot.

Előre is köszi, ha van valakinek megoldása!

Office 2010 Attól, hogy a verebek alakzatba állnak, az még nem SAS!

(#16811) atillaahun válasza Excelbarat (#16790) üzenetére


atillaahun
veterán

Köszönöm, jól működ, tényleg sokkal jobb kézzel számoltatni vele. :)

(#16812) m.zmrzlina válasza hallgat (#16810) üzenetére


m.zmrzlina
senior tag

Pedig ez szorzós módszer szokott működni.

Próbáld meg külön (makró)sorban és ne a beillesztéskor megszorozni a szöveget.

Range("A1").Value=Range("A1").Value*1
vagy valami ezzel ekvivalens megoldással

[ Szerkesztve ]

(#16813) bulanjoe


bulanjoe
tag

Hali.
Figyelem, Excel for Mac kérdés jön :) :

Adott egy excel munkafüzet, benne két lappal (nem tudom, hogy mondják ezt szépen magyarul) worksheet
Az első lap, adatok rögzitésére szolgál, a másodikon egy pivot table rendezi, összegzi, és feldogozza a bevitt adatokat.
Az első lapon leegyszerűsítve így néz ki egy adatsor:
datum bank -11 kiadas
datum bank2 35 kiadas
datum paypal -55 kiadas

Na ezt képzeld el sok sok sorral, több hellyel ahol a pénz lehet (bank, penztarca, masik penztarca, kocsi, paypal, kolcson, stb)
Az van, hogy sokszor egy egy hely nincs használva viszont kell, pl a paypal. általában nincs benne pénz és ilyenkor nincs miért nézni, viszont megesik, hogy oda érkezik valami, és akkor a pivot table-n bekapcsolom, hogy mutassa azt az oszlopot is.
Mindez működik szépen a windowos officeon, viszont macen már nincs olyan opcióm, hogy a már eltüntetett adatokat előhozzam.

Itt van egy példa fájl, remélem nem hagytam benne kényes infót.
[link]
Ebben a példában, most bevittem egy adatot, miszerint a paypalba érkezett pénz.
Windowson ezt szépen beállítom, hogy akkor a kimutatásban mutassa ezentul a paypalt is, mert már van benne valami.
Macen mindezt nem tudom megcsinálni... azaz ha windowson valamit kikapcsoltam, macen már nem tudom előhozni.

1. én vagyok a hülye és nem találom ezt az opciót?
2. felejtsem el, hogy macen ilyesmiket kapcsolgatok?
3. hogy hozzam fel ezt a problémát angolul,( hogy hívják azt amit én itt kapcsolgatni akarok), hogy más angol nyelvű fórumokon is tudjak zaklatni? :)
köszi

(#16814) Aladaar válasza Aladaar (#16779) üzenetére


Aladaar
tag

hurrá, találtam megoldást az első problémámra! Kicsit fapados, de működik.

1. van egy táblázatom, aminek az első oszlopában egy-egy érték többször is előfordulhat. Van egy listám, és ez alapján szeretnék szűrni a táblázatra, hogy csak a listában szereplő értékű sorok látszódjanak, csak nem szeretném ezeket manuálisan egyenként kiválasztani

az egyszerűség kedvéért legyen a táblázat 5 sor, 6 oszlop (A1:F5), a lista mondjuk H1:H10.

a táblázat alá beírom az alábbi képletet, és lehúzom 5 sornyit, jobbra 6 oszlopnyit
=HA(+FKERES($A1;$H$1:$H$10;1;0)=$A1;A1;"")
majd másol, beilleszt értékként, és A oszlop szerint sorbarakom. :)
viszont a másodikra továbbra sem találtam megoldást, valaki tud segíteni?

2. adott egy táblázat, aminek az egyik oszlopában ha rászűrök egy-egy értékre, akkor azt szeretném, hogy az az érték látszódjon a táblázat felett egy külön cellában is.

(#16815) Bishop1


Bishop1
tag

Sziasztok!
Bagatell kérdésem volna, hogy lehet a léptetőnyilat átfordítani?
Hogy ne le-fel hanem jobb bal irányba mutasson.
Active x vezérlőnyilat gond nélkül átfordítja ha keresztülhúzom a szemközti sarkon de a sima űrlap vezérlőnyilat nem és kezdek a falra mászni...

(#16816) rtom


rtom
senior tag

Szevasztok,

újabb problémával szembesültem, egy lapvédett oldalon szeretnék pivot-ot használni, a pivot celláit felszabadítottam (Cellaformázás->Védelem->Zárolt pipa kilőve), illetve a lapvédelemnél AllowUsingPivot = True; AllowFiltering = True, mégsem tudom a szűrési feltételeket módosítani védett állapotban. Mit nézek el? :F

(#16817) hallgat válasza m.zmrzlina (#16812) üzenetére


hallgat
csendes tag

Szia!
Köszönöm!

Közben egy favágó módszerrel megoldottam.
Felvettem egy cellát, aminek az értéke 1, majd ezt másolom az átalakítandó cellákra irányítottbeillesztéssel, a szorzást választva.
Nem túl szép, de működik :)

Office 2010 Attól, hogy a verebek alakzatba állnak, az még nem SAS!

(#16818) m.zmrzlina válasza hallgat (#16817) üzenetére


m.zmrzlina
senior tag

És ezt makróból csinálod, vagy a munkalapon kézzel?

(#16819) Mutt válasza Aladaar (#16814) üzenetére


Mutt
aktív tag

Hello,

2. adott egy táblázat, aminek az egyik oszlopában ha rászűrök egy-egy értékre, akkor azt szeretném, hogy az az érték látszódjon a táblázat felett egy külön cellában is.

Csak makróval megy és ha több kijelölésed van akkor is csak az első mutatja, itt a minta.

A szűrő feletti cellába tedd ezt (a filter tartományom A2:A11 volt):
=IF(SUBTOTAL(3;A$2:A$11)="";"";FilterCriteria(A$2))

A kód pedig:
Public Function FilterCriteria(rng As Range) As String
Dim Filter As String

On Error GoTo Finish
With rng.Parent.AutoFilter
If Intersect(rng, .Range) Is Nothing Then GoTo Finish
With .Filters(rng.Column - .Range.Column + 1)
If Not .On Then GoTo Finish
If .Criteria1 <> "" Then Filter = .Criteria1
End With
End With

Finish:
FilterCriteria = Replace(Replace(Filter, "*", ""), "=", "")
If Filter = "" Then FilterCriteria = ""

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

(#16820) Mutt válasza rtom (#16816) üzenetére


Mutt
aktív tag

Hello,

A lapvédelemnél gördítsd le a listát és engedélyezd még az alábbiakat:
- Autoszűrő használata
- Kimutatások használata

Ha a pivot növekszik, akkor még a sorok és oszlopok beszúrását is jelöld be.

üdv.

A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

(#16821) zhari


zhari
csendes tag

Sziasztok!

Olyan macroban tudtok segíteni, ami megnézni munkafüzetek füleinek a színét és egy meghatározott munkafüzet azonos nevű munkafüzeteinek a fül színét beszínezi . (kb 80 munkafüzet és 6-7 színt használva)

Előre is köszönöm

(#16822) Kobe


Kobe
veterán

helló

még egy syntax erroros problémám lenne :) Van egy makróm amit egy másik, accesses makróból szeretnék futtatni. Ehhez az kell, hogy a makrót sorrol sorra be tudjam másolni az Excel Visual Vasic ablakába. 98% ban megy, de sajnos 2 helyen syntax errorra fut a "" jelek miatt

Az eredeti, exceles makró egy részlete - ha ilyen formában futtatom excelből, tökéletesen fut, tehát nekem szóról szóra ezt kellene visszakapnom a beillesztés után

Range("P2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-11]=""YES"",RC[-8]-RC[-10],RC[-9]-RC[-10])"
Selection.AutoFill destination:=Range("P2:P" & lngLastRow)Range("P2").Select

2 módszert ismerek amivel be lehet illeszteni Excel VBA ba:

.InsertLines

vagy változóként definiálva

.InsertLines LineNum, "Range("P2").Select"
LineNum = LineNum + 1

.InsertLines LineNum, "ActiveCell.FormulaR1C1 = _"
LineNum = LineNum + 1

.InsertLines LineNum, ""=IF(RC[-11]="""YES""",RC[-8]-RC[-10],RC[-9]-RC[-10])""
LineNum = LineNum + 1

vagy

Code = "Range("P2").Select" &vbNewLine
Code = Code & "ActiveCell.FormulaR1C1 = _" &vbNewLine
Code = Code & ""=IF(RC[-11]="""YES""",RC[-8]-RC[-10],RC[-9]-RC[-10])"" & vbNewLine

A gondom az, hogy az Excelben a makró csak akkor fut le, ha az If feltételben megadott értéket 2 db idézőjellel írja vissza a modulba a program, pl ""YES"", mivel szöveges érték.

Akármelyik metódust választom a fentiek közül, mindig "levágja" 1 "" ra, és "YES" t csinált belőle és elakad a makró annál a sornál.

Próbáltam módosítani, de ha átírom accessben pl """YES""" re, akkor a sor többi részébe is be kell szúrnom plusz "" jeleket, mert nem fut le - Syntax Error - Expected End of Statement hibaüzit dob az accesses makró. Ha hozzáigazítom a többit, hogy jó legyen, akkor meg oda is felesleges "" jeleket rak be, ahova nem kéne, és így excelben akad el.

Van valami ötletetek, hogyan kellene a "=IF(RC[-11]=""YES"",RC[-8]-RC[-10],RC[-9]-RC[-10])" sort átrni, hogy a fent említett 2 megoldással is működőképes amradjon ?

[ Szerkesztve ]

(#16823) Mutt válasza zhari (#16821) üzenetére


Mutt
aktív tag

Hello,

...megnézni munkafüzetek füleinek a színét és egy meghatározott munkafüzet azonos nevű munkafüzeteinek a fül színét beszínezi...

Ezt tudod használni.

Sub Colorize()
Dim arrayColor() 'lapnev és lapszín megnevezése
Dim wbActual As Workbook
Dim c As Long, i As Long
Dim fileName As String
Const refFile As String = "c:\reference.xlsm" 'referencia fájl neve helye
Const filePath As String = "c:\list\" 'módosítandó fájlok helye
Const fileExt As String = "*.xls" 'módosítando fájlok kitejesztése

'a referencia alapján megjegyezzük a lapneveket és színeket
Set wbActual = Workbooks.Open(refFile)
ReDim arrayColor(1 To 2, 1 To wbActual.Sheets.Count)
With wbActual
For c = 1 To .Sheets.Count
arrayColor(1, c) = .Sheets(c).Name
arrayColor(2, c) = .Sheets(c).Tab.Color
Next c
End With
wbActual.Close
'végeztünk a referencia fájllal

fileName = Dir(filePath & fileExt, vbNormal)
'végigmegyünk a mappában lévő fájlokon
Do While Len(fileName) > 0
Set wbActual = Workbooks.Open(filePath & fileName)
With wbActual
For c = 1 To .Sheets.Count
For i = 1 To UBound(arrayColor, 2)
'ahol a lap neve egyezik ott szinezünk
If .Sheets(c).Name = arrayColor(1, i) Then
.Sheets(c).Tab.Color = arrayColor(2, i)
End If
Next i
Next c
End With
wbActual.Save
wbActual.Close
fileName = Dir
Loop

End Sub

üdv.

A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

(#16824) Mutt válasza Kobe (#16822) üzenetére


Mutt
aktív tag

Hello,

Röviden, ahol egy macskaköröm van oda ilyenkor 2 kell, ahol meg kettő oda 4 db.
pl. Range("P1") -> Range(""P1"") és ""YES"" -> """"YES""""

3 macskaköröm pedig a legelső vagy legutolsó egyszereset jelenti:
pl. "=IF(.... -> """=IF(....

üdv.

A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

(#16825) Aladaar válasza Mutt (#16819) üzenetére


Aladaar
tag

:R köszönöm szépen.

(#16826) Bishop1 válasza Bishop1 (#16815) üzenetére


Bishop1
tag

Senki nem tud segíteni? :S Nagyon fontos lenne még ma megoldanom és azt hittem csak valami csúnyán elkerüli a figyelmemet. Bosszantó hogy full kezdőként a függvényeket simán megírtam a nyavajás nyilat meg nem tudom elfordítani.

(#16827) zhari válasza Mutt (#16823) üzenetére


zhari
csendes tag

Köszönöm, működik szuper!!! :)) :))

(#16828) Delila_1 válasza Bishop1 (#16826) üzenetére


Delila_1
Topikgazda

Kijelölöd az űrlapvezérlőt. A szálkereszttel megrajzolod. Ha álló téglalapot rajzolsz vele, függőleges elrendezésű lesz a léptető vagy a görgető sáv, fekvő téglalapnál vízszintes. Ennyi. :)

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#16829) Bishop1 válasza Delila_1 (#16828) üzenetére


Bishop1
tag

Akkor valamilyen helyi hibaba futottam mert barhogy rajzolom allo lesz. Azert koszonom!

(#16830) Delila_1 válasza Bishop1 (#16829) üzenetére


Delila_1
Topikgazda

Próbáld meg másik gépen, vagy küldd el a füzetet, és rajzolok néhány fekvőt. :))

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#16831) BenJoe80


BenJoe80
senior tag

Sziasztok!

Adva van egy táblázat Excel 2003-ban, ahol ha pl. A1=1 akkor B1="EZ", ha A1=2 akkor B1="AZ", ha A1=3 akkor B1="AMAZ" ill. ha A1 üres akkor, B1 is üres. Korábban segítettek ezt a táblázatot megcsinálni. Most viszont ahhoz kéne segítség, hogy azt hogy lehet megcsinálni, hogy a táblázatból kiválogassa az összes 1-es értékű sorokat valamint az ehhez tartozó összegeket (amit, amúgy manuálisan írok be) és összegezve beírja mondjuk C2-be? Továbbá ugyan így tegyen a 2-es ill. a 3-as értékű sorokkal is...

A válaszokat és segítségeket előre is köszönöm!

Megisznak egy deci pálinkát. Miért? "Olyan savam vót, meg köllet innom egy deci pálinkát, aszittem megbolondulok." Aztán megisznak négy liter bort. Miért? "Há' semmi savam nem volt má'!"

(#16832) Delila_1 válasza BenJoe80 (#16831) üzenetére


Delila_1
Topikgazda

A B1 cella képlete
=HA(A1=1;"EZ";HA(A1=2;"AZ";HA(A1=3;"AMAZ";"")))

Hol vannak az összegzendő értékek? A SZUMHA függvénnyel tudod összegezni, a súgó megmondja, miként.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#16833) BenJoe80 válasza Delila_1 (#16832) üzenetére


BenJoe80
senior tag

Mondjuk a C oszlopban. Tegyük fel, hogy a C1-től C20-ig terjedő tartományban vannak az összegek.

Sajnos nem ismerem a "SZUMHA" függvényt...

Megisznak egy deci pálinkát. Miért? "Olyan savam vót, meg köllet innom egy deci pálinkát, aszittem megbolondulok." Aztán megisznak négy liter bort. Miért? "Há' semmi savam nem volt má'!"

(#16834) Delila_1 válasza BenJoe80 (#16833) üzenetére


Delila_1
Topikgazda

Azért javasoltam, hogy nézd meg a súgóban.
De itt a példa:

A szerkesztőlécen láthatod a függvényt.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#16835) lappy válasza BenJoe80 (#16833) üzenetére


lappy
őstag

Szia
SZUMHA(A1:A20;"=1";C1 : C20)

[ Szerkesztve ]

Bámulatos hol tart már a tudomány!

(#16836) BenJoe80 válasza Delila_1 (#16834) üzenetére


BenJoe80
senior tag

Aha... köszönöm... ezt most ki is próbálom!

Megisznak egy deci pálinkát. Miért? "Olyan savam vót, meg köllet innom egy deci pálinkát, aszittem megbolondulok." Aztán megisznak négy liter bort. Miért? "Há' semmi savam nem volt má'!"

(#16837) Delila_1 válasza BenJoe80 (#16836) üzenetére


Delila_1
Topikgazda

Szívesen.

Az A és C oszlopra vonatkozó részt megadhatod fixen is, ahogy lappy írta.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#16838) Jorus


Jorus
nagyúr

Sziasztok! Adott egy relatíve nagy .txt (file server jogosítások), amit AD-ból csak ebben a formában, vagyis sörtörésekkel tudok kiszedni. Emiatt a hosszabb elérési utak külön sorba kerülnek, így az excel-lel nem tudom megetetni, hogy ott kényelmesen tudjam rendezni az adatokat (elérési út, jogosítások, usergroup-ok, stb.). Most ott tartok, hogy megnyitottam excel-ben a txt-t, osztatlanul, tehát minden adat az A oszlopban sorakozik, a táblázat egyébként 224.000+ sorból áll.

Így fest egy "jó" adatblokk:

Path E:\fs\MGH\JO\irattar2012temp\001-049\015 belépők\2013. behajtási engedélyek
Owner BUILTIN\Administrators
AccessToString MAGHFS\Administrator Allow FullControl
BUILTIN\Administrators Allow FullControl
NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Users Allow ReadAndExecute, Synchronize
BUILTIN\Users Allow AppendData
BUILTIN\Users Allow CreateFiles

Így pedig egy "rossz":

Path E:\fs\MGH\JO\irattar2012temp\001-049\014 utasítások-SZEMLELAPOK Rendszám szerint\Tárgyi eszköz beruház
ás, üzembe helyezés
Owner BUILTIN\Administrators
AccessToString MAGHFS\Administrator Allow FullControl
PUBLIC\LudvigA Allow FullControl
BUILTIN\Administrators Allow FullControl
NT AUTHORITY\SYSTEM Allow FullControl
CREATOR OWNER Allow 268435456
BUILTIN\Users Allow ReadAndExecute, Synchronize
BUILTIN\Users Allow AppendData
BUILTIN\Users Allow CreateFiles

A megoldás - szerintem - pl. az lehetne, hogy egy makró vmi ilyesmit csinálna:

1 Vizsgáld a cella tartalmát az A oszlopban
2 Ha a cella a következő karakterlánccal kezdődik
3 "Path", akkor ellenőrizd az oszlop A, sor+1 cellát
4 Ha a cella következő karakterlánccal kezdődik
5 "Owner", akkor ellenőrizd az A oszlop, sor+1 cellát
6 Ha bármi más, a cella értékét fűzd hozzá az A oszlop sor-1 cellájának értékéhez
7 bármi más, ugorj az A oszlop, sor+1 cellára

Csak sajnos nem értek a makrókhoz. :) Bármi más megoldás is jól jöhet persze.

[ Szerkesztve ]

''És nagy kópék vagyunk. Igyunk barátaim, yo-hoo!'' - Jack Sparrow

(#16839) hallgat válasza m.zmrzlina (#16818) üzenetére


hallgat
csendes tag

Mármint mit? :)
A cellát kézzel vettem fel a munkalap egy távol eső sarkában, értéke állandó 1.
Ennek másolását szorzással viszont már a makró csinálja.

Office 2010 Attól, hogy a verebek alakzatba állnak, az még nem SAS!

(#16840) atillaahun


atillaahun
veterán

A múltkori darabteli-vel duplázódás számolás kapcsán szeretnék még egy kis segítséget kérni.
Hogyan tudnám hatékonyan kitörölni a duplán szereplő cellákat úgy, hogy egyúttal az eredetijük is törlésre kerüljön? Tehát azokból a cellákból amikből kettő van, végül egy se maradjon.

[ Szerkesztve ]

(#16841) Excelbarat válasza Jorus (#16838) üzenetére


Excelbarat
tag

Hi ez a kis makró talán segíthet :)
A munkalap fülére jobb gomb kód megjelenítése és oda beírod.

Sub hasonlit()
Dim sor1
Dim sor2

For i = 1 To ActiveSheet.UsedRange.Rows.Count
talalt = False
For j = 1 To ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row
If Left(Cells(i, 1), 4) = Left(Cells(j, "B"), 4) Then
sor1 = ActiveSheet.Cells(Rows.Count, "C").End(xlUp).Row + 1
Cells(i, 1).Copy Destination:=Cells(sor1, "C")
talalt = True
End If
Next j
If talalt = False Then
sor2 = ActiveSheet.Cells(Rows.Count, "C").End(xlUp).Row
Cells(sor2, "C") = Cells(sor2, "C") & " " & Cells(i, 1)
End If
Next i
End Sub

Ehhez annyi segítséget kell nyújtanod hogy a "B" oszlop soraiba beírod hogy mik legyenek az új sor szavai. Tehát felsorolsz minden olyan szót ami új sorral kezdődjön (tehát ne fűzze az előzőhöz). (legalább az első 4 karaktert! és fontos a kis és NAGY betű)
Te esetedben így néz ki:
B1: Path
B2: Owner
B3: Access
B4: BUILT
B5: NT AUTH

A "C" oszlopban pedig látni fogod az eredményt ha megfelel törlöd az A és B oszlopot utána
Még egyszer megjegyzem fontos, hogy a nagybetűt nagy betűvel a kis betűt kis betűvel! :)

(#16842) Jorus válasza Excelbarat (#16841) üzenetére


Jorus
nagyúr

Wow! Maxirespect, tökéletes lett, nagyon köszönöm! :R :R

''És nagy kópék vagyunk. Igyunk barátaim, yo-hoo!'' - Jack Sparrow

(#16843) gurabli


gurabli
senior tag

Sziasztok!

Segítségeteket kérném, a következőt kellene valahogy automatizálva megoldani.

Adott egy Excel fájl, ami egy táblázat, ami a kitöltés után ki lesz nyomtatva. Van egy másik xls fájl, amiből az adatok eddig manuálisan, másol/beilleszt-el lettek átrakva az első táblázatba. Ebben a második fájlban, ahol az adatok vannak, kb 200 sor van, soronként három adatot (cellát) kellene átmásolni az első fájl adott cellájába. Ezt követően az első fájlt ki kellene nyomtatni (lementeni nem is szükséges), majd a második sor három adatait átmásolni ugyanabba a táblázatba, azt is kinyomtatni, majd a harmadik, és így végig.

Remélem, hogy érthető, hogy mit kellene megoldani. Tudnátok ebben segíteni, ez megoldható valahogy automatizálva, hogy ne kelljen minden cellát külön átmásolni, kinyomtatni manuálisa?

Köszönet előre is! :R

"Akinek pénze van, az ne zavarja dolgozással a mások munkáját " R.J.

(#16844) Delila_1 válasza gurabli (#16843) üzenetére


Delila_1
Topikgazda

Ez egy tipikus Word körlevél funkció.

Wordben kell megrajzolnod a táblázatot, az lesz a körlevél. A hozzá tartozó adatokat tárolod az Excelben, egy-egy sorban a 3 másolandó adatot.

Egyszer kell összeállítanod, utána 1 kattintásra nyomja ki a sok táblázatodat.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#16845) Excelbarat válasza atillaahun (#16840) üzenetére


Excelbarat
tag

Hi! Írtam egy makrót:

Sub torol()
For i = 1 To ActiveSheet.UsedRange.Rows.Count
If WorksheetFunction.CountIf(Range(Cells(1, 1), Cells(ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row, "A")), Cells(i, "A")) > 1 Then
a = Cells(i, "A").Value
For j = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If Cells(j, "A").Value = a Then
Cells(j, "A").EntireRow.Delete
End If
Next j
End If
Next i
End Sub

Kihangsúlyozom hogy ez minden olyan SORT töröl amiben az A oszlopban van azonos és nem hagy egyet sem. (ergo aminél talál legalább kettőt abból egyet sem hagy!)
használata:
lapfülre jobb gomb - kód megjelenítése oda bemásolod és nyomsz egy F5-t (vagy felül a zöld kis play nyilacskára katt). és ha minden jól ment akkor csak egyedi értékek maradtak.
Azért mielőtt megcsinálod csinálj egy másolatot a fájlból mert a makrókat nem lehet visszavonni! (amit lefuttatsz és változtat(töröl) azt már nem tudod előhozni. (persze úgy igen h nem mented el a végeredményt, bezárod és újra megnyitod)

(#16846) Delila_1 válasza atillaahun (#16840) üzenetére


Delila_1
Topikgazda

A darabteli függvény minden adatod mellé odaírja, hány db van belőle a kérdéses oszlopban. [=darabteli(A:A;A1)].
Erre az oszlopra teszel egy autoszűrőt, és kiszűröd az 1-nél nagyobbakat.

Kijelölöd az összes látható sort, kitörlöd.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#16847) gurabli válasza Delila_1 (#16844) üzenetére


gurabli
senior tag

Ó, igazad van, ez egyszerűen nem ugrott be! Én rögtön valami makrót akartam készíteni, illetve megkérni Titeket erre:)
Mindjárt csinálom is! :R

"Akinek pénze van, az ne zavarja dolgozással a mások munkáját " R.J.

(#16848) Excelbarat válasza Delila_1 (#16846) üzenetére


Excelbarat
tag

most hogy kicsit makrózok már nem jut eszembe makrón kívüli megoldás :( :S tényleg egyszerűbb szűréssel és úgy törléssel. (bár lehet kattintások száma alapján a makrós gyorsabban kivitelezhetőbb :D )

[ Szerkesztve ]

(#16849) Delila_1 válasza Excelbarat (#16848) üzenetére


Delila_1
Topikgazda

Szoktam én is jobb kézzel bal fület vakarni. :DD

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#16850) atillaahun válasza Delila_1 (#16846) üzenetére


atillaahun
veterán

Jéé ... nagyon menő dolog ez a darabteli. :))
Azt hittem ezt csak úgy lehet használni, ahogy múltkor mutattad. Mármint akkor ugye még csak azt számoltam, hogy az adott helyen hanyadszorra szerepel az adott cella az oszlopban.
Köszi. :R

Egyébként megcsináltam én már ezt régen egyszer FKERES-el, csak már akkor is olyan bonyolult volt, hogy azóta elfelejtettem.:D

(#16845) Excelbarat
Természetesen köszönöm a te megoldásod is, valószínűleg előbb üzemeltem volna be, mint a saját régi fkeres-es varázslatomat. :B

[ Szerkesztve ]

Útvonal

Fórumok  »  OS, alkalmazások  »  Microsoft Excel topic (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.