-
IT café
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Törpella
csendes tag
válasz
huliganboy #26591 üzenetére
Szia, én első nekifutásra úgy csinálnám, hogy:
a munka1-re kerülne az aktuális heti időbeosztás a kötött formában, a munka2-re pedig a sablon, amibe az adatok kellenek a munka1-ről.
munka2:
Subject lenne a csoport neve (A2 cella ) (=munka1 fül A5 cella) (ez ugyanaz az A3-ban és az A4-ben is)
Start date =Munka1!$B$1, a nap (B2)
Start time (C2) =LEFT(Munka1!B3;5) =-tól
End date (D2) =B2
End time(E2) =RIGHT(Munka1!B3;5) =-ig
Description (F2) =Munka1!A$3 =oktató neve (ez ugyanaz az F3-ban és az F4-ben is)
Location (G2) =Munka1!C$3 = helyszínMinden oktató/csoporthoz így három sor tartozna.
Ha a kötött forma mindig ugyanaz, (és miért ne lenne, hiszen ezért kötött), akkor lényegében csak a munka1-re kell bemásolni frissítéskor az adatokat és a munka2-re a képletekkel automatikusan átmásolódik.
a dátumnál kell figyelni, hogy minden egyjegyű szám elé kerüljön nulla (tudom, vicces, de nem jut most jobb eszembe).
A sablont kell egyszer kitölteni helyesen a képletekkel, szerencsére nem túl nagy... aztán működik szinte magától :-)színek másolására viszont nincs ötletem (bár ha jól emlékszem, nem is egyező színek voltak)
...[ Szerkesztve ]
-
Törpella
csendes tag
válasz
huliganboy #26595 üzenetére
Szia,
valóban, az első napnál nem gondoltam tovább...
6 oktató, 7 nap, az 126 sor
ha épp nincs semmi esemény aznap, arra szerintem egy IF(hivatkozott cella="";"";(képlet)) alkalmazható akár az összes cellához... (bár gyakorlatom naptárral pont nincs, de azt gondolom, hogy ha egy naptár app egy excel fájl vagy bármilyen egyéb alapján másol be adatokat, az üres vagy nullával egyenlő értékeket valszeg nem veszi figyelembe...)
egyébként nem szükséges minden egyes cellába egyenként beírni az adatokat, start time és end time lehúzható, a 22. sorban kell a képletet módosítani, ami aztán a köv. 21 sor alatt kitart, a start date és end date háromsoronként változik, ugyanígy a location és a description is.
Hááát, ha nem megy másképp....egy óra intenzív munka
Sajnálom, most nem telik több tőlem :-/
Találkoztam hasonlóval, de ott hagyták magukat meggyőzniAzt hiszem, bármi is a helyes megoldása ennek a feladatnak, még mindig jóval egyszerűbb, mint az eredeti változtatását engedélyeztetni egy excel által kezelhetőbbre.
[ Szerkesztve ]
-
alfa20
senior tag
válasz
huliganboy #26595 üzenetére
Sziasztok!
Egy kis segítséget szeretnék kérni makróval kapcsolatban:
két tömböt (array) szeretnék létrehozni egyik legyen pl: betu("aa","bb","cc","dd"..."zz"), a másik meg szam("11","22","33","44"..."999").
Azt szeretném ha A1 cella érték = aa, akkor X változó értéke legyen = 11, ha A1 = bb, akkor x = 22... stb)Mivel 65 érték kerülne mind az első mind a második tömbbe, így nem szeretnék IF-et használni, jobb lenne ha létre tudnék hozni egy váltózót ami tárolná a betu tomb értékének helyét, majd megadná a szam tömb helyének értékét.
remélem érthető voltam
köszi előre is!"Az agy olyan, mint az ejtőernyő: csak akkor működik, ha nyitott." (Thomas Dewar)
-
Delila_1
Topikgazda
válasz
huliganboy #26640 üzenetére
Egy rövid makró gyorsan megoldja a problémát.
Sub Transzponalas()
Dim sorInnen As Long, sorIde As Long
Sheets("Munka2").Select
sorInnen = 3: sorIde = 1
Do While Cells(sorInnen, 2) <> ""
Range("B" & sorInnen & ":H" & sorInnen).Copy
Sheets("Munka1").Cells(sorIde, 1).PasteSpecial Paste:=xlPasteAll, Transpose:=True
sorInnen = sorInnen + 2
sorIde = sorIde + 7
Loop
End SubA Munka1 lapra transzponál, az első sortól kezdve. A kezdő sort a sorIde változóban módosíthatod, a lap nevét a Sheets("Munka1"). kezdetű sorban.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz
huliganboy #26640 üzenetére
A BAL(TRANSZPONÁLÁS(... képlet hibás. Ha a transzponált adatoknál az eredeti értékek bal oldali 5 karakterét akarod látni, akkor a makró
Sub Transzponalas()
Dim sorInnen As Long, sorIde As Long, oszlop As Integer
Dim usor As Long
Sheets("Munka2").Select
sorInnen = 3: sorIde = 1: usor = Range("B" & Rows.Count).End(xlUp).Row
For sorInnen = 3 To usor Step 2
For oszlop = 2 To 8
Sheets("Munka1").Cells(sorIde, 1) = Left(Cells(sorInnen, oszlop), 5)
sorIde = sorIde + 1
Next
Next
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.
-
Delila_1
Topikgazda
válasz
huliganboy #26643 üzenetére
Örülök, hogy sikerült, szívesen.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz
huliganboy #26670 üzenetére
Ha arra gondolsz, hogy a Munka2 lap üres sorait törölnéd, akkor
Sub UresTorles()
Dim usor As Long, sor As Long
Sheets("Munka2").Select
usor = Range("B" & Rows.Count).End(xlUp).Row
For sor = usor To 3 Step -1
If Application.WorksheetFunction.CountA(Range("B" & sor & ":" & "H" & sor)) = 0 Then
Rows(sor).EntireRow.Delete
End If
Next
End SubA transzponálós makrókban a for-next ciklus for sorában a Step 2 adja meg, hogy a Munka2 lap minden második sorában lévő adatok másolódjanak át egy másik lapra. Vagy ezt a step 2-t töröld, és indíts a sortörléssel, vagy a sortörlést a transzponálások után végezd el.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz
huliganboy #26670 üzenetére
Az időt, helyszín, stb-t egyetlen ciklusban is másolhatnád, nem kellenek külön makrók hozzá.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
huliganboy
addikt
válasz
huliganboy #29804 üzenetére
Valaki nem tudna kisegíteni?
-
bteebi
veterán
válasz
huliganboy #29825 üzenetére
=HA(C12>=0;"VÉGE";"LEJÁTSZANDÓ")
Cancel all my meetings. Someone is wrong on the Internet.
-
bteebi
veterán
válasz
huliganboy #29829 üzenetére
Már értem. Akkor egyszerűen csak meg kell vizsgálni, hogy üres-e a cella. Ha az, akkor ne jelenítsen meg semmit (""), ha meg van benne valami, akkor vizsgálja meg a tartalmát.
=HA(ÜRES(C12)=HAMIS;HA(C12>=0;"VÉGE";"LEJÁTSZANDÓ");"")
Cancel all my meetings. Someone is wrong on the Internet.
-
bteebi
veterán
válasz
huliganboy #29831 üzenetére
Nem figyeltem eléggé.
=HA(ÜRES(C12)=HAMIS;HA(C12>=0;"VÉGE";"LEJÁTSZANDÓ");"LEJÁTSZANDÓ")
Cancel all my meetings. Someone is wrong on the Internet.
-
huliganboy
addikt
válasz
huliganboy #29900 üzenetére
Végül ez lett a megoldás...
Sub ttt()
mappak = Array ' Nálad persze más és más
' lehet egy dir("e:",vbdirectory) a feltöltésben, ha egy mappán belül vannak.
For Each mappa In mappak
Set uj = Workbooks.Add
fajl = Dir(mappa & "*.xls")
celsor = 1
Do While fajl <> ""
Workbooks.Open Filename:=mappa & fajl, ReadOnly:=True
sor = Range("a1").SpecialCells(xlLastCell).Row
If celsor = 1 Then
Range("a1", Range("a1").SpecialCells(xlLastCell)).Copy uj.Sheets(1).Cells(celsor, 1)
celsor = celsor + sor
Else
Range("a2", Range("a1").SpecialCells(xlLastCell)).Copy uj.Sheets(1).Cells(celsor, 1)
celsor = celsor + sor - 1
End If
ActiveWorkbook.Close False
fajl = Dir()
Loop
uj.SaveAs mappa & "eredmeny.xls"
'uj.Close False
Next
MsgBox "Kész"
End SubViszont még ebbe bele kellene aplikálni, hogy a C oszlopban azonos sorokat törölje illetve a megadott oszlopokat is törölje!!
[ Módosította: CoolMan ]
-
Delila_1
Topikgazda
válasz
huliganboy #29911 üzenetére
Nem tudom, a C oszlopban meghagyandó adat szöveges, vagy szám típusú, ezért mindkettőre rákérdezek.
A makró
Sub Kigyomlal()
Dim sor As Long, usor As Long, marad, eddig As Long
marad = InputBox("Melyik adat maradjon meg a C oszlopban?")
Application.ScreenUpdating = False
usor = Range("C" & Rows.Count).End(xlUp).Row
For sor = usor To 2 Step -1
eddig = Range("C" & Rows.Count).End(xlUp).Row
If Cells(sor, "C") = marad Or Cells(sor, "C") = marad * 1 Then GoTo Tovabb
If Application.WorksheetFunction.CountIf(Range("C2:C" & eddig), Cells(sor, "C")) > 1 Then _
Rows(sor).Delete Shift:=xlUp
Tovabb:
Next
Application.ScreenUpdating = 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.
-
sztanozs
veterán
válasz
huliganboy #29987 üzenetére
BTW az excel nem felkerekíti, csak felkerekítve jeleníti meg.
Amúgy van kerekítés függvény Access-ben (még ha egy kicsit hülyén is működik): RoundHa pl 1000-re akarsz kerekíteni, akkor
= 1000 * Round([MEZŐNÉV] / 1000, 0)[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Reinhardt
őstag
válasz
huliganboy #29990 üzenetére
2016
-
Reinhardt
őstag
válasz
huliganboy #29992 üzenetére
Ezaz, tokeletes, koszi.
-
Delila_1
Topikgazda
válasz
huliganboy #30575 üzenetére
Van egy gyűjtő lapod, aminek a végére mindig bemásolod az újonnan kapott adatokat (fejléc nélkül)?
Teljes sorok egyeznek meg, vagy csak 1-1 adat az egyes sorokban?
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz
huliganboy #30581 üzenetére
Fel kellene tenned elérhető helyre 2-3 összefésülendő lapot néhány adattal. Természetesen a nem publikus adatok helyett írj mást, de az egyes cellák jellemzői (szöveg, dátum, hivatkozás, képlet) egyezzenek meg a valós lapokéval.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Mittu88
senior tag
válasz
huliganboy #30658 üzenetére
Nem néztem meg a mintafájlt, de elméletben, ha bemásolod az új adatokat a régiek alá, és nyomsz egy Ismétlődések eltávolítása-t, akkor törli a redundáns sorokat úgy, hogy a legfelül lévő megmarad. Így ergo a formázott/megjegyzéses sorod megmarad.
-
Mittu88
senior tag
válasz
huliganboy #30660 üzenetére
Szóval bemásolod az adott oszlopok tartalmát az eddigiek alá. Ezután jelöld ki az összes adatot, majd kattints az Adatok fülön az Adateszközök szekcióban az Ismétlődések eltávolítására. Ott ki kell választani, hogy mely oszlopoknál vizsgálja az egyezőséget, meg hogy fejlécet tartalmaz-e az adattábla, aztán mehet.
Bocs, ha túl részletesen írtam le, nem tudom mennyire ismered az excelt.
-
huliganboy
addikt
válasz
huliganboy #31369 üzenetére
Az előző kérdésem kiegészítéseként:
TimeValue hogy adható úgy meg, hogy csak perc és másodperc kijelzés legyen? PL: 36:46 (perc:másodperc), de 60 perc után ne órára ugorjon hanem folytassa a perc számlálását pl: 74:35(perc:másodperc).
Illetve a ha makróban TimeValue értéket gombbal indítom és állítom, hogy lehet resetelni? Tehát nulla állásba rakni? Valamint hogy lehet belenyúlni esetleg adott időt megadni, hogy onnan induljon a számlálás?
Jelenleg itt tartok:
Private Sub CommandButton1_Click()
StartTimer
End Sub
Private Sub CommandButton2_Click()
stopTimer
End SubSub StartTimer()
Application.OnTime Now + TimeValue("00:00:01"), "Increment_count"
End Sub
Sub Increment_count()
Range("B10").Value = Range("B10") + 1
StartTimer
End Sub
Sub stopTimer()
Application.OnTime Now + TimeValue("00:00:01"), "Increment_count", Schedule:=False
End SubKöszi!
[ Szerkesztve ]
-
Fferi50
őstag
válasz
huliganboy #31371 üzenetére
Szia!
Először is egy javaslat:
Az időzítőben levő időt érdemes változóba tenni, így egyértelműen meg lehet határozni a leállításnál a paraméterét (a NOW + time... folyamatosan változik, ezért nem biztos, hogy pont annyi lesz leállításkor, mint induláskor volt)
pl
Public ido as date
Sub StartTimer()
ido = Now + TimeValue("00:00:01")
Application.OnTime ido, "Increment_count"
Sub stopTimer()
Application.OnTime ido, "Increment_count", Schedule:=False
End SubSzámláló érték resetelés vagy új érték adása:
Private Sub CommandButton1_Click()
Range("B10").value=0 ' ez reseteli a számlálót, Range("B10").value= 40 ez így 40 másodpercről folytatja a számolást (persze ez utóbbi nem azt jelenti, hogy 40 másodperc telt el az indítástól...)
StartTimer
End SubMiután a számláló a B10 cellában van, ezért a B10 cellaformátumát egyedi számformátumban [pp]:mm ként kell megadni, akkor nem fordul át a perc órára - viszont ekkor a számlálót másként kell állítanod, mert dátumformátum esetén 1 az egy egész napot jelent, a dátumformátumú B10 cella értéket így kell növelni:
Range("B10").value=Range("B10").value + TimeValue('00:00:01")Üdv.
[ Szerkesztve ]
-
Pakliman
tag
válasz
huliganboy #33338 üzenetére
Szia!
Így valamivel gyorsabb lesz:
Sub Nagy_Kezdőbetű()
'Letiltjuk a cellák újraszámolását és a képernyő frissítését
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
' A megadott tartomány összes celláján végrehajtja a ciklust.
For Each x In Range("D3:AD20000")
' A Microsoft Visual Basic for Applications (VBA) alkalmazásban nincs nagy kezdőbetűs függvény.
' Ezért a munkalapfüggvényt kell használnia a következő módon:
'Az átalakításból eleve kizárjuk az üres és a nem szöveget tartalmazó cellákat
If (Not IsEmpty(x)) And (Not IsNumeric(x)) Then
x.Value = Application.Proper(x.Value)
End If
Next
'Engedélyezzük a cellák újraszámolását és a képernyő frissítését
With Application
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
End Sub[ Szerkesztve ]
-
Fferi50
őstag
válasz
huliganboy #33338 üzenetére
Szia!
Megpróbálhatod ezt:
Sub nagybetus()
Dim ertekek, xx As Long, yy As Long
ertekek = Range("D3:AD20000").Value
For xx = 1 To UBound(ertekek)
For yy = 1 To UBound(ertekek, 2)
ertekek(xx, yy) = Application.Proper(ertekek(xx, yy))
Next
Next
Range("D3:AD20000").Value = ertekek
End SubHa esetleg memória problémát jelezne, akkor vedd kétfelé a területet.
Üdv.
-
Fferi50
őstag
válasz
huliganboy #33341 üzenetére
Szia!
Csak egy icipici megjegyzés:
Ahhoz, hogy meghatározd a tartományt, nem kell kijelölni (select), az is időt igényel. Anélkül is lehet használni (sőt az a kívánatos - a selecteket száműzni kell mindenhonnan, ahonnan csak lehet).
Tehát ez működik
x.select kihagyvaFor each x in x.cells
Üdv.
-
Traxx
őstag
válasz
huliganboy #34425 üzenetére
Ere én is kíváncsi lennék, mert van hasonlóra tervem...
"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)
-
PistiSan
addikt
válasz
huliganboy #34425 üzenetére
Én 2013-mas excel mellett használtam megosztott munkafüzetet, ha egymásnak keresztbe teszünk, szól érte a rendszer, de sok adatnál tényleg elég követhetetlen, hogy akkor végül is mit tartsunk meg.
Számomra felfoghatatlan, hogy miért nem tud olyan módot mint pl egy google docs, aminél valós időben látom hogy éppen ki hol van és mit csinál.
Hasonló megoldás is érdekelne, remélem megcáfolnak és már tud hasonlót az MS office is. -
Delila_1
Topikgazda
válasz
huliganboy #38251 üzenetére
Az összesítő munkalap A2 cellája (feltéve, hogy mindegyik lapon az első a címsor, az oszlopok pedig az A-ban kezdődnek).
=SZUM(Munka1:Munka3!A2)
A saját lapjaid közül az első, és az utolsó neve szerepeljen a függvényben. Ha az egyes nevek számmal kezdődnek, vagy szóközt tartalmaznak,
=SZUM('Munka1:Munka3'!A2)
Jobbra, és le is másolhatod.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz
huliganboy #38329 üzenetére
Szívesen.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fferi50
őstag
válasz
huliganboy #38703 üzenetére
Szia!
Egy cellába beírod az aktuális fájl nevét. A képletben pedig az Indirekt függvényt használod:
=DARABTELI(INDIREKT(A1) & "Munka1'!$AU$5:$AU$5000");"egyes vizsgalt elem")
A1 cella értéke:="'[adatbazis 10.hét.xls]"
Így egy cella értékét kell átírnod csak.
Az viszont korlátozás, hogy ez a képlet csak akkor működik, ha a forrás fájl nyitva van. Elérési úttal együtt nem használható.A másik megoldás, hogy a Ctrl+F cserél - egyebek - képletben opciót használva egy menetben kicseréled az összes képletben a régi fájlnevet az újra (természetesen a ha ez a cella értéke opciót nem pipálod be, mert részértéket keresünk és cserélünk. Elég gyorsan végrehajtja - ha nincsenek teljes oszlopok a képletben, ezeket mindenképpen kerülni érdemes, mert nagyon lassít.
Üdv.
-
Mutt
aktív tag
válasz
huliganboy #38703 üzenetére
Szia,
FFeri50 megoldása mellett még a Power Query-t is lehet erre használni.
Az eredmény automatikusan nem frissül, de be lehet állítani hogy adott időközönként vagy a fájl megnyitásakor nézzen rá a másik fájl(ok)ra.pl. az alább látható felépítésű fájlokból pár lépéssel megoldható hogy számolja össze hány helyen van a kell oszlopban X.
Az eredmény és mellette a lépések amelyek kellettek hozzá.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Delila_1
Topikgazda
válasz
huliganboy #40602 üzenetére
=HIPERHIVATKOZÁS([@ElérésiÚt];"Link")
Nálam az elérési utak a fájl nevével együtt az ElérésiÚt című oszlopban vannak.
A @ jel adja meg, hogy a hivatkozással azonos sorról van szó.[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fferi50
őstag
válasz
huliganboy #40736 üzenetére
Szia!
Bármit beszúrni csak makróval tudsz.
Ellenben képlettel lehet feltételesen megjeleníteni szöveget (kérdést).
Pl. HA(B1="IGEN";"Kitől kaptad?";"")
és így tovább.
Feltételes formázással a színezést is megoldhatod.
Az 5 sor válasz után feltennék egy újabb kérdést az A oszlopban, amire a B oszlopban válaszolni kellene szintén igen/nemmel, pl. Kaptál mástól is?
Ezután a feltételt erre a B oszlopban levő cellára érvényesíteném, és így tovább válasz lehetőségenként.Üdv.
-
Fferi50
őstag
válasz
huliganboy #40739 üzenetére
Szia!
Pl. A2 cellában a képlet van, ha a B1 cellában IGEN van, akkor megjelenik a kérdés, ha más, akkor üresnek látszik a cella.
Üdv.
-
Fferi50
őstag
válasz
huliganboy #40741 üzenetére
Szia!
Mivel a körlevél forrása az Excel egy-egy sora lehet, ezért a 3 lehetséges választ külön-külön cellákba kell felvinni. Ezután a Word-ben a körlevél törzsben oda teszed a mezőket, ahol látni szeretnéd.
Tehát az Excel sor így nézhet ki pl.
Kérdés1, válasz11,válasz12,válasz13,kérdés2,válasz21,válasz22,válasz23Üdv.
-
Fferi50
őstag
válasz
huliganboy #40745 üzenetére
Szia!
Már nem világos, mit is szeretnél valójában. Word körlevelet Excel adatok alapján? Excel-ben körlevél formátumot? Minek a lenyíló, ha nem az Excelben van a körlevél?
Wordben kiküldött körleveleket szeretnél Excelben összesíteni?
Jó lenne ezt tisztázni előbb szerintem.
Talán mutass egy mintát is hozzá.Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz
huliganboy #40751 üzenetére
Szia!
Az egyes kérdésekre adható válaszokat az adott sorba be tudod tenni. Pl. a B5 cella adatérvényesítési területén levő értékeket másolás - transzponálás módon teheted a körlevél megfelelő oszlopai alá - így a sorrend is megmarad. Ugyanez igaz az igen-nem választékra is, csak persze itt egyszerűen be tudod írni a két cellába.
Azért még mindig nem értem, ha Excelt szeretnél kiküldeni, akkor mire fel kell a körlevél funkció?
Csinálhatsz egy sablont a kérdéseidnek megfelelően az általad kívánt színes-szagos formában (lásd az Excel sablon mintái!), sablonként elmented és az alapján nyitod meg az új munkafüzetet. Azt elküldheted mindenkinek. Ráadásul az összesítés is valószínűleg egyszerűbb lenne, mintha Word fájlokat kapnál vissza.Üdv.
-
Delila_1
Topikgazda
válasz
huliganboy #41410 üzenetére
Itt remekül alkalmazhatod a villámkitöltés funkció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.
-
lappy
őstag
válasz
huliganboy #41412 üzenetére
az a baj hogy a szöveged sem egyforma így nehéz egy képlettel megoldani
Bámulatos hol tart már a tudomány!
-
Mutt
aktív tag
válasz
huliganboy #41410 üzenetére
Szia,
Próbáld meg hogy hátulról indulsz el, vagyis az utolsó szóköz után a házszám van. Az előtte levő szóköztől pedig a közterület jellege található, és minden ami ez előtt van az pedig a közterület neve.
Házszám képlete:
=KIMETSZ(KÖZÉP(A2;SZÖVEG.TALÁL("@";HELYETTE(A2;" ";"@";HOSSZ(A2)-HOSSZ(HELYETTE(A2;" ";""))))+1;100))
Közterület típusa:
=KIMETSZ(HELYETTE(KÖZÉP(A2;SZÖVEG.TALÁL("@";HELYETTE(A2;" ";"@";HOSSZ(A2)-HOSSZ(HELYETTE(A2;" ";""))-1))+1;100);KÖZÉP(A2;SZÖVEG.TALÁL("@";HELYETTE(A2;" ";"@";HOSSZ(A2)-HOSSZ(HELYETTE(A2;" ";""))))+1;100);""))
Közterület neve:
=KIMETSZ(HELYETTE(A2;KÖZÉP(A2;SZÖVEG.TALÁL("@";HELYETTE(A2;" ";"@";HOSSZ(A2)-HOSSZ(HELYETTE(A2;" ";""))-1))+1;100);""))
üdv
[ Szerkesztve ]
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Fferi50
őstag
válasz
huliganboy #41418 üzenetére
Szia!
Talán Trim(m), nem emlékszem pontosan.
Üdv. -
lappy
őstag
válasz
huliganboy #41414 üzenetére
a szóközre ott a szövegből oszlop menü
vagy
egy képlet=KIMETSZ(KÖZÉP(HELYETTE($A$1;" ";SOKSZOR(" ";HOSSZ($A$1)));(C3-1)*HOSSZ($A$1)+1;HOSSZ($A$1)))
Bámulatos hol tart már a tudomány!
-
Mutt
aktív tag
válasz
huliganboy #41418 üzenetére
Szia,
KIMETSZ kihagyható.
Közterület neve:
=BAL(A2;SZÖVEG.TALÁL("@";HELYETTE(A2;" ";"@";HOSSZ(A2)-HOSSZ(HELYETTE(A2;" ";""))-1))-1)
Közterület jellege:
=HELYETTE(KÖZÉP(A2;SZÖVEG.TALÁL("@";HELYETTE(A2;" ";"@";HOSSZ(A2)-HOSSZ(HELYETTE(A2;" ";""))-1))+1;100);" "&D2;"")
Házszám:
=KÖZÉP(A2;SZÖVEG.TALÁL("@";HELYETTE(A2;" ";"@";HOSSZ(A2)-HOSSZ(HELYETTE(A2;" ";""))))+1;100)
A képlet magja, hogy mindig megtaláljuk hátulról azt a szóközt, ameddig vagy amitől kell a szöveget csonkolni.
1. Először azt kell megtudnunk hogy hány szóköz van a szövegben.
HOSSZ(A2)-HOSSZ(HELYETTE(A2;" ";""))
2. A HELYETTE függvénynek megadható, hogy melyik előfordulását a szövegnek helyettesítse mással (én a kukac jelet használtam).
A házszám az utolsó szököz után indul a feltételezésünk szerint; aHELYETTE(A2;" ";"@";HOSSZ(A2)-HOSSZ(HELYETTE(A2;" ";"")))
rész a házszám elé fogja tenni a kukacot.
ASUBSTITUTE(A2;" ";"@";LEN(A2)-LEN(SUBSTITUTE(A2;" ";""))-1)
résznek a végén az -1 azt jelenti, hogy az utolsó előtti szököznél lesz a kukac, ahonnan a közterület jellege indul.3. Innen már csak szöveg függvények (BAL, JOBB, KÖZÉP) megfelelő használata kell az eredményhez.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Fferi50
őstag
válasz
huliganboy #42674 üzenetére
-
Fferi50
őstag
válasz
huliganboy #44833 üzenetére
Szia!
az "ismétlődések eltávolítása" funkció mindig a hátrább lévő sorokat törli?
Igen.
Üdv. -
DeFranco
nagyúr
válasz
huliganboy #44833 üzenetére
ha biztosra akarsz menni akkor akár egy segédoszlopot is bevezethetsz ahol darabteli/összefűz-zel megszámolod hogy van-e ismétlődés, és feltételnek szabod meg hogy ha van akkor azokat "jelölje" törlésre ahol a megjegyzés üres.
Új hozzászólás Aktív témák
- Diablo IV
- Kínai, és egyéb olcsó órák topikja
- Házimozi haladó szinten
- Xiaomi Pad 6 - kiapadhatatlan jóság
- HP notebook topic
- Debrecen és környéke adok-veszek-beszélgetek
- LG LCD és LED TV-k
- Xbox Series X|S
- UbiForward24 - Hosszabb bemutatón a Star Wars: Outlaws
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen