-
GAMEPOD.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.
Új hozzászólás Aktív témák
-
Fferi50
őstag
Szia!
Szerintem csak meg kell nézned, hogy az A oszlopban levő cella értéke (a képlet eredménye) nem üres string és ott abbahagyni a kimásolást.
Gondolom valamilyen ciklus végzi a másolást, akkor a következő másolás előtt (For Next ciklus esetén:pl. If Range("A" & sor+1).Value="" Then Exit For
ahol a sor az aktuális sor száma
vagyIf Range("A" & sor).Offset(1,0).Value="" Then Exit For
Más ciklusszervezésnél is hasonló lehet a vizsgálat.
Üdv. -
jackal79
aktív tag
válasz Fferi50 #44375 üzenetére
Ezt nem tudom, hogy hoztad össze, de működik. Sajnos nem értem a logikát.
Még egy kérdésem lenne. Ha csak egy másik file-ból szeretnék értékeket megjeleníteni, ami az eredeti file-ban oszlopban szerepel, de én az új helyen sorokban jeleníteném meg. Ha a képletből a $-t kiveszem a szám elől, ugye akkor az nem fix és elhúzom jobbra, akkor miért nem viszi magával az értékeket. Ilyen esetben csak másol.
Köszi a segítséget! -
Fferi50
őstag
válasz jackal79 #44402 üzenetére
Szia!
"Ha csak egy másik file-ból szeretnék értékeket megjeleníteni, ami az eredeti file-ban oszlopban szerepel, de én az új helyen sorokban jeleníteném meg."
Egy másik helyen hívd be az értékeket az eredeti elrendezésben.
Utána az új helyen használd a TRANSZPONÁLÁS függvényt. Figyelj rá, hogy egyszerre kell kijelölni a teljes céltartományt, abszolut címzést használj és TÖMBfüggvényként kell lezárnod (Shift+Ctrl+Enter). (Érdemes a hozzá tartozó HELP-et megnézni előtte.)
A képletet majd holnap elmagyarázom, ma már késő van hozzá.
Üdv.[ Szerkesztve ]
-
Brumi
senior tag
válasz Fire/SOUL/CD #44400 üzenetére
Sziasztok!
Ez lenne a fájl:
[kép]
És ez a makró:
[kép]A fájl már a feltöltéshez butított verzió. a Q oszlopig kell benne lennie mindennek, a hossza viszont változhat, jelenleg ott van vége, ahol az első oszlopban az 50-es szám van, de maga a képletezés még folytatódik az 1100-as sorig, csak nem hoz semmilyen eredményt. Viszont olyan nem lesz, hogy kimarad sor és aztán újra lesz benne tartalom.
Ebből kell egy olyan txt, ami ténylegesen az utolsó tartalommal rendelkező sorig tart.
Életemben nem csináltam makrót, szóval teljesen kezdő vagyok a témában...http://www.flickr.com/photos/brumi/
-
Fferi50
őstag
válasz jackal79 #44403 üzenetére
Szia!
A magyarázat:
A kiinduló képlet:=SZUM('[Extruding műszaknapló 2020.06.xlsm]1'!$B$212:$B$213;'[Extruding műszaknapló 2020.06.xlsm]1'!$B$236:$B$237;'[Extruding műszaknapló 2020.06.xlsm]1'!$B$260:$B$261;'[Extruding műszaknapló 2020.06.xlsm]1'!$B$284:$B$285;'[Extruding műszaknapló 2020.06.xlsm]1'!$B$308:$B$309;'[Extruding műszaknapló 2020.06.xlsm]1'!$B$332:$B$333)
Ezt szeretnéd elhúzni jobbra úgy, hogy a munkalapok nevét jelentő 1 változzon, azaz az oszlopnak megfelelő nevű munkalapra hivatkozzon a képlet. A képlet többi része tehát változatlanul kell, hogy maradjon. Vagyis szét kell szedni a képletet állandó és változó részre.
Erre a célra általában megfelel az INDIREKT függvény, amely a paraméterként megadott szöveget címként tudja értelmezni. Mivel azonban most külső hivatkozás van, ez csak akkor működik, ha a forrás fájlod meg van nyitva.
Kicsit meg kell trükközni a képletet. Ezért volt az első lépés az, hogy szétszedjük a képlet állandó és változó részét az A1 cellában:="SZUM('[Extruding műszaknapló 2020.06.xlsm]" & OSZLOP() &"'!$B$212:$B$213;'[Extruding műszaknapló 2020.06.xlsm]" & OSZLOP() &"'!$B$236:$B$237;'[Extruding műszaknapló 2020.06.xlsm]" & OSZLOP() & "'!$B$260:$B$261;'[Extruding műszaknapló 2020.06.xlsm]" & OSZLOP() & "'!$B$284:$B$285;'[Extruding műszaknapló 2020.06.xlsm]" & OSZLOP() & "'!$B$308:$B$309;'[Extruding műszaknapló 2020.06.xlsm]" & OSZLOP() & "'!$B$332:$B$333)"
Azidézőjelek közé a képlet fix része kerül, ehhez fűzzük hozzá a változó részt, ami az OSZLOP függvény, mert az OSZLOP függvény így paraméterek nélkül az aktuális oszlop számát adja vissza.
Ha tehát ezt elhúzzuk jobbra, akkor a szövegek változatlanok maradnak, az OSZLOP függvény értéke pedig változik.
Ez így most egy képlet, ami szöveg formátumú eredményt ad a cellákban. Azért, hogy képletként lehessen használni, át kell alakítani értékké. Ezt csinálja a másolás - irányított beillesztés értékként. Ezzel megkaptuk a számunkra szükséges képlet szövegét.
Ahhoz, hogy képletként működjön is, elébe kell tenni az egyenlőség jelet, ami a képletet jelzi az Excel számára.
Mivel az adott cellában szeretnénk a képletet hagyni, ezért nem lehet függvénnyel csinálni. Erre jó a Keres - cserél menü, ami "helyben" végzi el a műveletet. Keressük a SZUM szót, amivel kezdődnek a képletek és kicseréljük =SZUM -ra. Minden cellában.
Ezután már képletként fog működni a "kreációnk"! Akkor is, ha a forrás fájlod nincs nyitva.
Remélem, érthetően tudtam elmagyarázni a lépések okát és eredményét.Üdv.
-
Brumi
senior tag
válasz Fferi50 #44406 üzenetére
Szia!
Minden kell a lapról a fejlécek is, mert az SAP így lett lefejlesztve a cellák pontosan definiálva lettek a fejlesztőnek. A képlet ott van az A oszlopban (meg a többi oszlopban is), csak semmilyen eredményt nem ad, ha a forrásban nincs input, de alapvetően feltölthetem 0-val is, ez nem gond.
http://www.flickr.com/photos/brumi/
-
Fferi50
őstag
Szia!
Próbáld ki ezt a makrót légy szíves:Sub mentes()
Sheets("input").Activate
Range(Cells(1, 1), Cells(ActiveSheet.UsedRange.Columns(1).Find(what:="", LookIn:=xlValues, lookat:=xlPart).Row - 1, ActiveSheet.UsedRange.Columns.Count)).Copy
Sheets.Add
Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
ActiveSheet.Move
ActiveWorkbook.SaveAs Filename:="SAP_booking.txt", FileFormat:=xlText
ActiveWorkbook.Close False
End Sub
Üdv.
-
Csokishurka
őstag
-
Csokishurka
őstag
válasz Csokishurka #44411 üzenetére
Vagy az is eleg ha ranyomok a makrora es keri hogy mire cserelje le az eleresi utat.
"Megtanulta (millió lélekváltó árán): akinek minden a vállán nyugszik, nem nyugszik senki vállán."
-
félisten
ezt a sort
ActiveWorkbook.SaveAs Filename:="SAP_booking.txt", FileFormat:=xlText
módosítod erre
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & "SAP_Booking.txt", FileFormat:=xlText
Ez meg egy másik megközelítés, talán van/lesz hasznos dolog a későbbiekben számodra.
Private Sub CommandButton1_Click()
Dim MyWorkBook As Workbook
Dim MySheet As Worksheet
Dim MyRange As Range
Dim MyFilename, TextFileLine As String
Dim MyFirstColumn, MyLastColumn As String
Set MyWorkBook = ThisWorkbook
Set MySheet = Sheets("input")
'Feldolgozandó adatok kezdőcellája
MyFirstColumn = "A4"
'Feldolgozandó adatok utolsó oszlopa
MyLastColumn = "Q"
'Fájlnév megadása, ami az adott Excel munkafüzettel egy könyvtárban kerül létrehozásra
MyFilename = MyWorkBook.Path & "\" & "SAP_Booking.txt"
'Adattartomány meghatározása
Set MyRange = MySheet.Range(MyFirstColumn & _
":" & _
MyLastColumn & _
MySheet.Range(MyLastColumn & Rows.Count).End(xlUp).Row)
'Fájl létrehozása (ha nem létezik létrehozza, ha létezik KÉRDÉS NÉLKÜL felülírja
Open MyFilename For Output As #1
'Végigszaladunk az adattartomány celláin
For i = 1 To MyRange.Rows.Count
'Ha az adattartomány kezdő oszlopában található cella nem üres(ha üres, akkor a sor is üresnek tekindendő),
'akkor feldolgozzuk az adott sorban lévő adatokat
If Not IsEmpty(MyRange.Cells(i, 1)) Then
For j = 1 To MyRange.Columns.Count
'Tabulátorral elválasztott szöveg létrehozása a sor celláinak feldolgozásával
TextFileLine = IIf(j = 1, "", TextFileLine & vbTab) & MyRange.Cells(i, j)
Next j
'Kiírás fájlba
Print #1, TextFileLine
End If
Next i
'Fájl lezárása
Close #1
End Sub[ 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)
-
Brumi
senior tag
válasz Fire/SOUL/CD #44413 üzenetére
Köszönöm szépen! Ez már tökéletesen működik!
http://www.flickr.com/photos/brumi/
-
Delila_1
Topikgazda
válasz Csokishurka #44412 üzenetére
Sub Utvonal_Csere()
Dim utvonalRegi As String, utvonalUj As String
utvonalRegi = Application.InputBox("Add meg a cserélendő útvonalat", "Régi útvonal bekérése", , , , , , 2)
utvonalUj = Application.InputBox("Add meg az új útvonalat", "új útvonal bekérése", , , , , , 2)
Application.DisplayAlerts = False
Cells.Replace What:=utvonalRegi, Replacement:=utvonalUj, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Application.DisplayAlerts = True
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Mr.Mercury
aktív tag
válasz Fferi50 #44377 üzenetére
Szia, ismét kérném a segítségedet! Miért lehet az, hogy miután a segédcellában összefűzöm a kívánt oszlopokat a 3. és 4. oszlop közötti értékek közé az összefűzésben berak egy plusz szóközt? Megnéztem 100x is a képletet és ott minden rendben, az első 3 oszlopot szépen meg is csinálja, az utolsót meg nem...
Mercury
-
Fferi50
őstag
válasz Mr.Mercury #44416 üzenetére
Szia!
Talán a 3. oszlop celláinak a végén van egy szóköz, amit egyébként nem látsz vagy a 4. oszlop celláinak elején.
Nézd meg, milyen hosszú a cellában levő érték, azt rövid szövegnél szemmel is érzékelheted, ha hosszabb, mint a hány bötűt látsz. Vagy: F2 billentyűvel bemész a szerkesztőlécre, elmész a végére, ha a látható betűk után is megy tovább, akkor ott a bűnös.
Ebben az esetben az összefűzésnél ne tegyél plusz szóközt, illetve ha egyáltalán nem akarsz szóközt, akkor bal(3.oszlop;hossz(3.oszlop)-1) legyen az összefűzésben.
Üdv. -
Mr.Mercury
aktív tag
válasz Mr.Mercury #44419 üzenetére
Esküszöm az utolsó kérdés, nem sajátítom ki a topikot tovább.
Már csak egy lépés választ el a sikertől: megvan a 2 táblázatom, a feltételes formázással kiszedtem belőlük, hogy melyek azok az értékek, melyek mindkét oszlopban benne vannak (ezeket pirossal jelöltettem meg). A végső célom az lenne, hogy a segédtáblázatom számomra lényeges oszlopában pirossal megjelölt, duplikált adatokat meg tudjam jelölni az eredeti oszlopában is. Erre van valami megoldás? (Tudom, hogy életképtelen vagyok, de sajnos az Excel sosem volt az erősségem... )Mercury
-
logitechh
csendes tag
sziasztok
Hogyan tudom az makróval megoldani, hogyha az L oszlopon szűrtem a táblázatot a nullánál nagyobb értékre akkor az F oszlopon sorszámozza a látható cellákat. a Táblázat amit sorszámozni kellene az 19. sortól kezdődik -
Lokids
addikt
Sziasztok!
Mivel lehet a lekezelni, ha több érték is megfelel a ha függvénynél?
Van 3 cella.Ha A1 > 0 -> érték1
Ha b1 > 0 ->érték2
Ha c1 > 0 -> érték3Ha 2 vagy több cella van kitöltve akkor érték 4?
Van erre valami előre gyártott megoldás, vagy végig kell zongorázni a lehetőségeket?[ Szerkesztve ]
If you chase two rabbits you will lose them both.
-
otamas
csendes tag
Sziasztok,
Kifogott rajtam egy munkahelyi feladat, a segisegeteket szeretnem kerni (angol nyelvu Office365).
Adott egy 70000+ soros, tobb oszlopos Excel. Az "A" oszlopban evek szerepelnek (2011-2024), utana a tobbi oszlopban termek ismervek (orszag, termek focsoport, termek alcsoport, mertekegyseg, stb ~ kb 10 oszlop) szerepelnek, majd vegul az utolso oszlopban az ertekek.
Azt szeretnem elerni, hogy az ertekek evek szerint oszlopban jelenjenek meg; 4 oszlopban nezem a kriteriumokat.
Multiple criteria index match array fuggvenyt irtam fel, ami egy tetszoleges sorhoz masolva rendesen mukodik is.
DE, ha rahuzom a kepletet a teljes tablazatra (c. 70 ezer sor * c. 13 oszlop), akkor meghal a gep, 100% processzorhasznalat es ket ora alatt se vegez a szamitassal az Excel.Nektek eszetekbe jut valami alternativa, amin erdemes lenne gondolkodnom (az index match multiple criteria helyett)?
Xlsx/xlsm/xlsb formatumokban mind lassu.
A gep Thinkpad T490.A keplet, ha szamit (elnezest a minosegert, elegge figyelik a gepet, ezert a foto):
-
Mutt
aktív tag
válasz otamas #44429 üzenetére
Szia,
Pivot + Pivot Slicer kell neked kritérium oszlop nélkül.
A lenti képernyőn egy 300k soros és 35 oszlopos tálázatból építkező pivotok eredménye látszik, másodperc alatt frissül a sliceren (amiből van 5 db legfelül) megadott kritérium alapján.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
otamas
csendes tag
Köszönöm a gyors visszajelzéseket!
Ma hajnalban indítottam el a számolást, valamikor délután végzett is... Valószínűleg kell majd még ilyet csinálnom, akkor már a javaslataitokat hasznositva vágok bele -
i400
senior tag
Sziasztok! Kerestem és próbálkoztam már a topikban korábban leírt képletekkel, de nekem sajnos egyik sem működött mindegyiknél maradt az összesítésnél az irreális szám. Mellékeltem egy képet a problémáról. A bekarikázott cellákban a munkaidő már átlóg másik napra, így a cellába a 00:30nál lévő értéket csak úgy engedi megadni hogy 25:30, a ledolgozott napi órát rendesen kiszámolja viszont a táblázat alján az összesítésben ez a lehetetlen 721 óra jelenik meg... hol rontom el???
-
jackal79
aktív tag
Sziasztok,
vagy egy excel táblám, ami különböző táblázatokból húz be adatokat, de csak akkor frissül, ha az eredi táblázatot is megnyitom. Megoldható úgy a frissítés, hogy az eredeti file-t ne kelljen megnyitni?
Köszi! -
Cece04
tag
Sziasztok,
segitséget szeretnék kérni.
Adott két igen hosszú oszlop, számokkal.
Arra vagyok kiváncsi, hogy hogyan tudjuk megkapni a "B" oszlop egy-egy tagjának összegét az "A" oszlop egyes tagjainak összeadásából.
Pl itt a B3-ra lennék kiváncsi és akkor az lenne a megoldás, hogy az A2-A3 összegéből megkapjuk
[kép]van erre valami megoldás? goal seek az nem jó vagy?
Köszi
A valósággal az a gáz, hogy nincsen hozzá háttérzene...
Új hozzászólás Aktív témák
- Samsung Galaxy S21 FE 5G - utóirat
- A franciáknak elege van abból, hogy minden gyerek mobilozik
- Crypto Trade
- Politika
- LTE frekvenciák
- Milyen billentyűzetet vegyek?
- ASZTALI GÉP / ALKATRÉSZ beárazás
- PayPal
- Opel topik
- Sokat fogyaszt az AI, egyre több az adatközpont, kell az atomenergia
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest