-
Fototrend
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!
Ebben az esetben szerintem kellenek segédszámítások.
Ha feltételezzük, hogy az első sor fejléc, az adatok az A:C oszlopban vannak, akkor az E2 cellába írd be ezt a képletet:
=TRANSZPONÁLÁS(HA($B2=$C$2:$C$50;SOR($C$2:$C$50)+1;"") )
tömbképletként fogadd el (Ctrl+shift+enter)
majd ezt a képletet húzd el a sorban (kijelölöd az 50 mellette levő cellát, F2-vel beleállsz és Ctrl+Shift+Enter)Ezután a D2 cellába összehozhatod az eredményt (=F2 & "," & G2 & "," ...stb.)
Remélem azopi tud valami trükköt, hogy a tömbképlet eredménye egy cellába kerülhessen egyenesen
Üdv.
Ez 50 sorra működik, de természetesen az 50 helyett többet is írhatsz, akkor több oszlopra van szükséged.[ Szerkesztve ]
-
Delila_1
Topikgazda
Nem írtad, hogy feltétlenül képletekkel, függvényekkel akarod előcsalni az eredményt. Egy rövid makróval könnyen megoldható.
Sub HolTalalhato()
Dim sorA As Long, sorB As Long, usor As Integer, uoszlop As Integer
usor = Sheets(1).Range("B" & Rows.Count).End(xlUp).Row
sorA = 2
Do While Cells(sorA, 1) > ""
For sorB = 1 To usor
If Cells(sorB, 2) = Cells(sorA, 1) Then
uoszlop = Cells(sorA, Columns.Count).End(xlToLeft).Column + 1
Cells(sorA, uoszlop) = sorB
End If
Next
sorA = sorA + 1
Loop
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.
-
azopi74
addikt
válasz Fferi50 #26851 üzenetére
Hát ritkán mondok ilyet, de ez tipikusan az a feladat, ahol sajnos muszáj lesz némi minimális VBA-t bevetni, ha segédoszlop nélkül akarjuk. Az a probléma, hogy ez a vacak concatenate "függvény" elég korlátozott, számomra érthetetlen módon nem lehet neki tömböt megadni paraméterként. Szóval szerintem valamennyi minimális VBA kód muszáj bele, mondjuk ennyi:
Function JoinAll(InputArray As Variant, delim As String) As String
JoinAll = Join(InputArray, delim)
End FunctionÉs akkor ezt rá lehet ereszteni a tömbképletedre, "delim"-nek olyan delimitert megadva, amit akarunk.
Dehát ha már van benne VBA kód, akkor már úgyis mindegy, veszett fejsze nyele
Más ötletem nagyon sajnos nincs, ha szövegösszefűzésről van szó, akkor én is a VBA-ra fanyalodok a primitív concatenate "függvény" - ami valójában nem más, mint az "&" operátor, csak függvény-szerű szintaktikába csomagolva - hiányosságai miatt (nem csak a tömböket, de például az iterációt se támogatja)...
Nem értem miért nem lehet a VBA-s join függvényt betenni a natív excel függvények közé. Ha betennék, akkor ez (meg egy csomó más probléma) teljesen VBA mentesen megoldható lenne....[ Szerkesztve ]
-
Fferi50
őstag
válasz azopi74 #26855 üzenetére
Szia!
Akkor marad egy kis makrós történet benne...
A sok üres sor miatt egy kicsit meg kell szerintem "simogatni" a függvényt:
Function JoinAll(InputArray As Variant, delim As String) As String
Dim join1 As String
join1 = Join(InputArray, delim)
Do While InStr(join1, String(2, delim)) > 0
join1 = Replace(join1, String(2, delim), delim)
Loop
If Right(join1, 1) = delim Then join1 = Left(join1, Len(join1) - 1)
If Left(join1, 1) = delim Then
JoinAll = Mid(join1, 2)
Else
JoinAll = join1
End If
End FunctionÍgy nem marad benne egymást követő határoló, továbbá az elején és a végén sem.
Üdv.
-
umek7
őstag
Működik, nem csoda hogy nem sikerült összehoznom...
Egyetlen apró változtatást szeretnék eszközölni ha kivitelezhető. A szám oszlopba nem feltétlen növekvő/csökkenő sorrendben következnek a számok, illetve ugye előfordulhat, hogy többjegyű, így a cellában lévő számot szeretném kiíratni mint érték, nem a sorszámot. Fáradozásaitokat nagyon szépen köszönöm.[ Szerkesztve ]
-
Delila_1
Topikgazda
Próbáld meg ezzel, ahol az első címsor.
Sub HolTalalhato()
Dim sorB As Long, sorC As Long, usor As Integer, uoszlop As Integer
usor = Sheets(1).Range("C" & Rows.Count).End(xlUp).Row
sorB = 2
Do While Cells(sorB, 2) > ""
For sorC = 2 To usor
If Cells(sorC, 3) = Cells(sorB, 2) Then
If Cells(sorB, 4) = "" Then
Cells(sorB, 4) = Cells(sorC, 1)
Else
Cells(sorB, 4) = Cells(sorB, 4) & "–" & Cells(sorC, 1)
End If
End If
Next
sorB = sorB + 1
Loop
End Sub[ 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.
-
umek7
őstag
Remek! Nem győzöm megköszönni.
-
umek7
őstag
Tekintve, hogy egy válasz sem érkezett azóta, feltételeztem egyértelmű kinek, és/vagy kiknek szól az üzenet.
-
be.cool
csendes tag
Sziasztok!
Szeretnék egy olyan legördülő listát csinálni az egyik cellába mint az engedélyezés/lista csinál, csak ott ugye, adott cellákra kell hivatkozni, amelyek a választható értékek lesznek.
Van erre esetleg valamilyen más módszer,hogy a legördülő listába ne lehessen beírni mást csak kiválasztani ami rajta szerepel? -
Delila_1
Topikgazda
válasz be.cool #26870 üzenetére
Az érvényesítésnél a Hibajelzés fülön alapban be van jelölve az Érvénytelen adat beírásakor hibaüzenet jelenjen meg négyzet. Ha ezt a pipát megszünteted, akkor lehet csak olyan adatot beírni, ami nem szerepel a listában.
A kérdésedből úgy látom, nem szeretnél az első fülön forrást megadni. A rovatba beírhatod a választható adatokat, pontosvesszővel elválasztva. Ide nem kell idézőjelek közé tenni az értékeket.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Easy01
újonc
Sziasztok!
Segítséget szeretnék kérni. Excel munkalapon pivot tábla beillesztett hivatkozásokkal + erre hivatkozó kimutatás diagram. A cellákat zároltan és rejtetten mentem, viszont a táblának a diagramot frissítenie kell az adatok alapján, de a zárolás miatt nem lehetséges. Van erre valamilyen megoldásotok, hogy hogyan tudok zárolás mellett adatokat és diagramot frissíteni?
Előre is köszi!
-
Fferi50
őstag
válasz Easy01 #26872 üzenetére
Szia!
Makróval feloldod a zárolást, frissítesz, majd visszazárolod.
Esetleg megpróbálhatod a zárolás UserInterfaceOnly paraméterét True értékre állítani a zároláskor.
(Sheets(1).Protect password:=jelszo,UserInterfaceOnly:=True)
De ezt minden zárolt munkalapra meg kell tenni és csak addig hatásos, amíg nyitva van a munkafüzet. Ha bezártad és újranyitod, már nem él a UserInterface paraméter értéke, ezért minden nyitáskor újra le kell futtatni a zárolást (sajnos...)
Emiatt javasoltam az első mondatban foglaltakat.Üdv.
-
Easy01
újonc
válasz Fferi50 #26873 üzenetére
Szia! Nagyon köszönöm a választ . Egy problémám van csak, hogy ez a tábla automatikusan és önállóan dolgozik, én nem is nyúlok bele csak a végfelhasználó. Ezért a feloldásra sincs lehetőség . A célom az lenne, hogy automatice frissítse az adatokat felhasználás céljából, de ne lehessen szerkeszteni a táblát.
-
WildBoarTeam
aktív tag
Sziasztok!
Egy kis segítségre lenne szükségem. Van egy hosszú táblám (kb 2ezer sor), melyből már képletekkel sikerült kinyernem a számomra fontos adatokat, de rengeteg üres sor maradt benne.
Van megoldás arra, hogy az üres sorokat eltüntessem vagy ez csak makróval lehetséges? (Office2010)
Ha csak makró jó, akkor valaki gyorsan összedobná nekem?Az adatok A oszlopokban vannak és nem "szanaszét" (vagyis, ha A oszlopban van adat, akkor a többiben is mellette).
Előre is nagyon köszi a segítséget!
blabla
-
DeFranco
nagyúr
válasz WildBoarTeam #26876 üzenetére
autoszűrőt neki, aztán üresre szűr és sorok törlése
fapados de gyors.
[ Szerkesztve ]
-
Easy01
újonc
válasz Fferi50 #26875 üzenetére
Szia!
Beállítottam a megnyitáskori frissítést. A felhasználó azt a személyt jelentené, aki megnyitja a táblát, az szűrni tud benne, valamint a diagramot tudja használni, de a cellákba nem tud sem írni, sem törölni. A tábla töltődik a hivatkozások által, frissülni pedig automatikusan frissül minden megnyitáskor. Viszont ha egész nap használja a felhasználó, folyamatosan nyitva van a file, akkor a napközbeni frissítést az adatok/kapcsolatok/összes frissítéssel oldanám meg, de ezt nem engedi a lapvédelem miatt. Így ezért kérdeztem, hogy esetleg van-e erre valamilyen egyéb megoldás . Én csak egy lelkes excel felhasználó vagyok, a tudományom véges . Köszi a segítséget!
-
Fferi50
őstag
válasz Fferi50 #26879 üzenetére
De még parancsgomb se kell, a makró indítást felteheted a menüszalagra a beállítások, menüszalag testreszabása használatával.
A makróhoz kellene egy kicsit pontosabb ismeret:
Pivottáblából csinálod a diagramot, vagy a "táblázatod" egyszerűen csak külső hivatkzásokat tartalmaz?Üdv.
-
Gyick
őstag
üdv!
Nincs vkinek véletlenül szabályozókártya template-je?Egészen pontosan átlag-terjedelem kártya érdekelne amibe már csak be kell irni az adatokat és kirajzolja a kártyát...
[ Szerkesztve ]
-
slashing
senior tag
van egy pár belőle a neten..... cp, cpk, pp, ppk, spc kulcsszavak...
de én azért tesztelném őket valamilyen validitál adatokkal hogy biztosan pontosan számolnak...
de ha ismered a számítását akkor ez nem olyan bonyolult excelben:
pl: ppk: MIN((L2-N2)/(3*K2);(M2-L2)/(3*K2))
ahol:
L2= folyamat átlaga
N2= LSL
K2= folyamat szórás
M2= USL -
Geryson
addikt
Sziasztok! Adott egy ilyen tartalmú cella:
110433-TRA-5,70
Anno az első "részlegét" kellett kiszednem, arra a =KÖZÉP(A1;1;SZÖVEG.KERES("-";A1;1)-1) függvényt adtátok. Most viszont a középső rész kellene, a "TRA" rész. Hogyan szedjem ki?
Rinderkennzeichnungsfleischetikettierungsüberwachungsaufgabenübertragungsgesetz
-
Louro
őstag
válasz Geryson #26884 üzenetére
Szia,
ha fix, hogy 6 szám - 3 betű - valami, akkor könnyű...
=JOBB(BAL(A1;6+1+3);3)
Ha rugalmas az adatok hossza, akkor meg kell keresni a kötőjeleket és azokhoz kell viszonyítani.
=JOBB(BAL(A1;SZÖVEG.KERES("-";A1;SZÖVEG.KERES("-";A1)+1)-1);HOSSZ(BAL(A1;SZÖVEG.KERES("-";A1;SZÖVEG.KERES("-";A1)+1)-1))-SZÖVEG.KERES("-";A1))
Hirtelen jobbat nem tudok....
Mess with the best / Die like the rest
-
Louro
őstag
válasz Geryson #26887 üzenetére
Csak a logika kell. A középpel is működhet, de valamiért nem esik annyira kézre, mint a BAL meg a JOBB.
=KÖZÉP(A1;SZÖVEG.KERES("-";A1)+1;SZÖVEG.KERES("-";A1;SZÖVEG.KERES("-";A1)+1)-SZÖVEG.KERES("-";A1)-1)
A SZÖVEG.KERES ebben az esetben fontos, mert folyton a kötőjeleket kell keresgelni
Mess with the best / Die like the rest
-
sedyke
tag
Sziasztok!
Meg tudom tartani a Pivot tabla formazasait (cellaszelesseg), hogy frissiteskor ne ugorjon alaphelyzetbe?
Koszi
-
-
Des1gnR
őstag
Sziasztok!
Ezzel a makróval szeretnék letölteni egy fájlt. Egy CSV termék exportról van szó ami bejelentkezés nélkül egy 0 értékű CSV fájlt tölt le teljesen érthető módon.
A weboldal wordpress alapú és szeretnék VBA-ból bejelentkezni az oldalra, hogy megkapjam a fájlom.
HTTP Live Headerrel megnéztem a referer url-t és a POST adatot, majd ezt betoltam a fentebb említett makró elejére a saját adataimmal, de ugyan úgy a 0 visszatérésű fájlt kapom. Mit csinálok rosszul?
Dim result As String
Dim myURL As String, postData As String
Dim winHttpReq As Object
Set winHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
myURL = "http://192.168.10.101:80/your_web_service"
postData = "parameter=hello¶meter2=hi"
winHttpReq.Open "POST", myURL, False
winHttpReq.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
winHttpReq.Send (postData)
result = winHttpReq.responseTextDell G3 3779 || Samsung S23+ || Samsung Watch 5 Pro || Oculus Quest 2 || Creality Ender 3 V2
-
Des1gnR
őstag
válasz Des1gnR #26893 üzenetére
A baj az volt, hogy nem tároltam a cookie-t bejelentkezés után és így nem is továbbítottam a letöltéshez.
Itt a teljes kód:Sub FileDownload()
Dim strCookie As String, strResponse As String, _
strUrl As String
FilePath = "A fájl letöltési útvonala. Pl.:C:\Users\Attila\Documents\arlista.csv"
'
Dim xobj As Object
'
Set xobj = CreateObject("WinHTTP.WinHTTPrequest.5.1")
'
strUrl = "[B]Az url ahol bejelentkezel az oldalra...[/B]"
xobj.Open "POST", strUrl, False
xobj.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
xobj.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xobj.Send "A POST data, amit pl. HTTP Live Headerre tudsz kiolvasni."
'
strCookie = xobj.GetResponseHeader("Set-Cookie")
strResponse = xobj.ResponseText
'
' now try to get confidential contents:
'
strUrl = "Ide jön a fájl elérési útja..."
xobj.Open "GET", strUrl, False
'
' these 2 instructions are determining:
'
xobj.SetRequestHeader "Connection", "keep-alive"
xobj.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
'
xobj.SetRequestHeader "Cookie", strCookie
xobj.Send
'
'strCookie = xobj.GetResponseHeader("Set-Cookie")
strResponse = xobj.ResponseText
'Save the file
FileNum = FreeFile
Open FilePath For Binary Access Write As #FileNum
Put #FileNum, 1, strResponse
Close #FileNum
MsgBox "File has been saved!", vbInformation, "Success"
End Sub[ Szerkesztve ]
Dell G3 3779 || Samsung S23+ || Samsung Watch 5 Pro || Oculus Quest 2 || Creality Ender 3 V2
-
littleNorbi
aktív tag
Sziasztok!
Ez a táblázat alapján, hogy lehetne azt megoldani, hogy külön "sheet"-ekbe rendezzem a személyeket pl. a beosztásuk alapján? Szóval lesz egy olyan "sheet"-em amiben csak az orvosok lesznek minden adatukkal együtt, stb. -
Delila_1
Topikgazda
válasz littleNorbi #26897 üzenetére
Autoszűrőt teszel a felső sorba. Szűröd a B oszlopot orvosra, kijelölöd a látható tartományt, másolod, beilleszted a következő lapra.
Új szűrés, új másolás új lapra.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 littleNorbi #26899 üzenetére
Most már tud.
Az eddig felvitt adatokat másold a szűrővel, az új adatok automatikusan másolódnak majd a megfelelő lapra, mikor az utolsó (C) oszlopba beírod az adatot.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
Új hozzászólás Aktív témák
- Politika
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- exHWSW - Értünk mindenhez IS
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Parfüm topik
- Skoda, VW, Audi, Seat topik
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Crypto Trade
- Mesterséges intelligencia topik
- Honor Magic6 Pro - kör közepén számok
- További aktív témák...
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Windows, Office licencek a legolcsóbban, egyenesen a Microsoft-tól - 2990 Ft-tól!
- Steam, Windows, Origin kulcsok, előfizetések közvetlenül a kiadótól, a LEGJOBB ÁRON!
- Lemezes Retro PC Játékok
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest