-
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
-
mizu_
tag
Sziasztok!
Létezik olyan VB utasítás amelyikkel ki lehet deríteni, hogy egy adott cellában lévő szöveg tartalmaz-e egy bizonyos karaktersorozatot?
-
Ndrew8647
csendes tag
Szép estét mindenkinek!
Sajnos kicsit kakukk vagyok az excel függvényeihez és segítségeteket szeretném kérni, hogy van két táblázatom árakkal, termékek neveivel és azonosítókkal.
Hogyan tudom azt kiszűrni, hogy a két táblázatban szereplő termékeknél melyiknél egyezik az ár.
Tulajdonképpen azt kellene megoldani, hogy ahol az ár megegyezik ott valamivel jelölje azt a mezőt. a legcélszerűbb az lenne, hogy a mellette levő oszlopba egy X jelölést vagy bármilyen karaktert tegyen, amivel később rendezni tudom, hogy a jelölt sorok kerüljenek a táblázatom elejére.Hogyan tudom ezt megoldani anélkül, hogy végig kellene néznem kb. 5000 sort és egyenként összehasonlítani az adatokat?
Kérlek, hogy aki tud segítsen benne,
Köszönettel:
András
-
-
Ndrew8647
csendes tag
válasz föccer #14057 üzenetére
Köszi, küldök máris egy képet...
De leírom, hogy pontosan hogy is gondoltam.
Van két táblázatom ugyan azokkal a termékekkel.
De a két táblázatban az árak eltérőek azonos termékeknél.
Viszont nem mindenhol, és nekem ezt ki kellene szűrnöm, hogy ahol egyezik az ár a két táblázatban ugyan annál a terméknél, ott jelölve legyen a sor.A termékek a két listában nem ugyan olyan sorrendben következnek sajnos, de rendezve vannak azonosító szerint.
Csak egyikben több másikban kevesebb van, ezért eltérő a darabszám és a sorrend.
De a termékek ugyan azok. -
Ndrew8647
csendes tag
Ez ilyen butított táblázat, csak érteni szeretném, hogy hogy is kellene aztán majd élesben is kipróbálom ha sikerül össze hozni.
köszönöm a fáradozásaidat-
-
Pá
addikt
Azt meg tudom oldani excelben, hogy az ablakot vízszintesen felosztom és a felső valahogy fix marad és csak az alsó változik, amikor alul a tabokon váltogatom a munkalapokat?
''Annyira vagyunk egészségesek, amennyire a gondolataink humánusak.''
-
Ndrew8647
csendes tag
válasz föccer #14059 üzenetére
A sorba rendezés az a cikkszám szerint van.
A két táblázat viszont sajnos eltérő lehet és nem minden cikkszám egyezik meg azonos termékeknél. mert a méretek miatt többféle lehet és sajna a felvitelnél nem ugyan úgy került rögzítésre.Emiatt gondoltam az ár alapján kellene ellenőrizni, mert elég kevés egyéb kategóriába sorolt termék ára lesz azonos.
-
föccer
nagyúr
válasz Ndrew8647 #14063 üzenetére
Akkor elég csak cikkszám alapján összehasonlítani, mert ahogy kiveszem a szavadból, több cikkszám van, mint termék. Tehát 1 termékhez tartozhat több cikkszám, de 1 cikkszámhoz nem tartozhat több termék.
Pá:
Ha két munkalapról van szó, akkor ez elvileg gond nélkül mennie kellene.
Építésztechnikus. Építőmérnök.
-
Ndrew8647
csendes tag
válasz föccer #14066 üzenetére
Így van ahogy mondod. A dolgot csak az bonyolítja, hogy tegyük fel egyik munkalapon van 111-115 cikkszámon futó sapka, míg a másik munkalapon ugyan ez a termék csak a 114-es számon fut, mert az pl a kék színű, de maga a termék ugyan az.
Tehát gondolom a cikkszám alapján így nem lehet meghatározni nem? -
buherton
őstag
válasz föccer #14041 üzenetére
Rámész bármilyen objektumra, majd jobb gomb. List properties/methods - szó szerint lista, ami az adott objektumhoz tartozik. Object browser-rel pedig az összes gyári objektumot megtudod nézni.
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
Pá
addikt
válasz föccer #14066 üzenetére
Hogyan?
Azt szeretném, hogy vízszintesen legyen félbevágva az excel tábla és ha a munkalapokat váltogatom, akkor csak az alsó ablak cserélődjön a felső legyen fix.
Most ha félbevágom a táblát, az csak az adott munkalapra vonatkozik és ha a tabon váltok, akkor kapok egy új, nem félbevágott lapot.''Annyira vagyunk egészségesek, amennyire a gondolataink humánusak.''
-
föccer
nagyúr
Valamiért a hibakezelés nem akar működni, de mndegy, a célnak így is megfelel.
B1-be
, ha A oszlopban vannak az adatok:=HA(SZÖVEG.KERES("adat2";A1)>0;"Talált!";"Nincs találat!")
Ezután autoszűrő bekapcsol, leszűrsz a "Talált kifejezésre a B olszopban, majd copy-paste az új munkalapra.
üdv, föccer
Építésztechnikus. Építőmérnök.
-
föccer
nagyúr
válasz Ndrew8647 #14067 üzenetére
Vagy a termék neveket hasonlítjuk össze, vagy a cikkszámokat. Ezt neked kell eldönteni. Ha csak a cikkszámokat, akkor a példánál maradva csak a kék színű sapkák lesznek összehasonlítva, míg ha csak terméknév alapján, akkor az szívás és most így 1/2 12-kor nem vállalom.
üdv, föccer
Építésztechnikus. Építőmérnök.
-
Ndrew8647
csendes tag
válasz föccer #14074 üzenetére
Értem.
Marad a cikkszámos megoldás, mert rájöttem közben, hogy hiába van a cikkszám fele beírva, azt látni fogja a másik táblázatomban, mert abban viszont nem úgy van hogy 111-114 hanem 111 - fehér 112 - piros stbstbstb szóval látni fogom és emiatt ki is tudom gondolom szűrni.De ehhez nem is kell cikkszám szerint rendeznem gondolom.
A keresésénél ill. az összehasonlításnál megoldható a módszereddel az, hogy nem soronként nézi át hanem összehasonlítja A oszlopot a másik tábla A és/vagy B oszlopával?
Mert akkor gondolom ez lenne a kézenfekvő megoldás.
Az üres mezőbe beírom a függvényt, amiben összehasonlítom X munkalap A oszlopát Y munkalap A vagy B oszlopával és ha egyenlő akkor ír egy X .-et.Sejtem így kellene ezt megoldani, csak már én is annyira fáradt vagyok, hogy nem jár az agyam.
Csak maga a függvény leprogramozás része nem megy
-
detroitrw
addikt
sziasztok!
adott egy cella ahol pl. ezek az értékek vannak:
580 559 559 450 265 265ezt hogy lehet így átalakítanitni? :
580 559 x 2 450 265 x 2
ill. minden érték külön cellába legyen -
#90999040
törölt tag
válasz detroitrw #14038 üzenetére
Szerintem nem annyira értelmezhetetlen.
Egy sor -> egy szálat jelent. Pl. a fejléc a konkrét esetben:
2427 2359 946 900 430 410 Hulladék Teljes Max darab
Az egyik sor pedig:
0 0 0 2 5 5 0 * 1
Ez ezt jelenti egy szál esetén:
0*2427 + 0*2359 + 0*946 + 2*900 + 5*430 + 5*410 = 6000Értelemszerűen a hulladék 0%. Teljes oszlopban a * azt jelenti, hogy erre a szálra már a legrövidebb(410 mm-es) darab sem férne rá.
A max darab ebből a szálból azért 1, mert ha pl. 2 lenne, akkor már a 430 mm-esből 10 darab jönne ki, holott összesen csak 6 darab kell belőle.Az adott linken levő programot fogalmam nincs, hogy lehetne működésre bírni(már csak azért sem, mert amit meg tudok csinálni, abból a legritkább esetben használok kész programot). De más talán majd megnézi...
Viszont még az elején említettem a random generálást. Ezt kipróbáltam. Ha 20 szálra keresek, akkor nagyon rövid idő alatt kidob egy lehetséges megoldást. Ha erre lecseréled az előző makrót, akkor láthatod az eredményt.
Sub frissit()
Set cel = Range("D1")
Range("D1:V" & Rows.Count).ClearContents
korrekcio = 1
maxprobalkozas = 10000000
talalatszam = 0
sor = cel.Row
oszlop = cel.Column
Range("A1").CurrentRegion.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
hosszok = Application.Transpose(Range("A2:A7"))
szalhossza = Range("A10").Value
darabok = Application.Transpose(Range("B2:B7"))
osszdarab = 0
osszhossz = 0
For i = 1 To UBound(darabok)
osszdarab = osszdarab + darabok(i)
osszhossz = osszhossz + hosszok(i) * darabok(i)
Next
mindarab = Application.RoundUp(osszhossz / szalhossza, 0)
ReDim tomb(0 To osszdarab - 1)
aktindex = 0
For i = 1 To UBound(darabok)
For j = 0 To darabok(i) - 1
tomb(aktindex) = hosszok(i)
aktindex = aktindex + 1
Next
Next
'kezdődik a tippözön :)
Randomize
For i = 1 To maxprobalkozas
For j = 0 To UBound(tomb)
R = Int((osszdarab) * Rnd())
R1 = Int((osszdarab) * Rnd())
If R <> R1 Then
temp = tomb(R)
tomb(R) = tomb(R1)
tomb(R1) = temp
End If
Next
szalakszama = 0
akthossz = 0
temphossz = 0
For j = 0 To UBound(tomb)
If akthossz + tomb(j) = szalhossza Then
temphossz = temphossz + akthossz + tomb(j)
akthossz = 0
szalakszama = szalakszama + 1
ElseIf akthossz + tomb(j) > szalhossza Then
temphossz = temphossz + akthossz
akthossz = tomb(j)
szalakszama = szalakszama + 1
Else
akthossz = akthossz + tomb(j)
End If
Next
If temphossz < osszhossz Then szalakszama = szalakszama + 1
If szalakszama <= mindarab + korrekcio Then
talalatszam = talalatszam + 1
akthossz = 0
aktoszlop = oszlop
s = ""
For j = 0 To UBound(tomb)
If akthossz + tomb(j) = szalhossza Then
akthossz = 0
Cells(sor, aktoszlop) = tomb(j)
sor = sor + 1
aktoszlop = oszlop
ElseIf akthossz + tomb(j) > szalhossza Then
akthossz = tomb(j)
sor = sor + 1
aktoszlop = oszlop
Cells(sor, aktoszlop) = tomb(j)
aktoszlop = aktoszlop + 1
ElseIf j = UBound(tomb) Then
Cells(sor, aktoszlop) = tomb(j)
aktoszlop = aktoszlop + 1
Else
Cells(sor, aktoszlop) = tomb(j)
aktoszlop = aktoszlop + 1
akthossz = akthossz + tomb(j)
End If
Next
sor = cel.Row + talalatszam * (mindarab + korrekcio + 1)
aktoszlop = oszlop
Exit Sub
End If
Next
End SubAz elején a korrekcio = 1 állítja be, hogy nem az elméleti minimális szálmennyiségre akarunk keresni, hanem 1-el többre(jelen esetben 20-ra).
Nálam ez nagyon gyorsan beleszalad egy lehetőségbe.
Persze még van rajt bőven finomítanivaló, de ezek már csak részletkérdések. A Exit sub miatt kilép az első találat után, ha ez nincs benne, akkor többet is keres, egészen a maxprobalkozas-ig. Valószínűleg nincs szükség annyi random számra, amennyi a tomb elemeinek a száma->ezt ki lehet tapasztalni... -
saab00
csendes tag
"Egy olyan kérdésem lenne hogy hogyan lehet azt excelben(2003) megoldani, hogy van egy táblázatom napi dátummal,hónap, rendszámmal(összevissza), km stb.......és egy másik táblázatba a rendszám(sor)hoz és a hónap(oszlop)-t figyelembe véve összegezze az előző táblázatból az adatokat (pl. a km-t) (ugye egy rendszám többször is előfordul egy adott hónapban) ...vagyis hogy ne kelljen kétszer beírni ugyanazt az adatot de rendszám és hónap alapján szűrje és összegezze az értékeket !?
--
-
És még egy: az fkeres fügyvénynél be lehet azt állítani h a keresési tartományban(ami nincs alapból sorba rendezve) ha több találat van csak a legutolsót vegye figyelembe ill. h pl.a 3. oszlopban az egy sorral lejjebb lévőt adja eredményül ??"
-
-
Erre esetleg valaki valami megoldás ???? -
zz76zz
csendes tag
válasz Bocimaster #14044 üzenetére
Az a baj, hogy azt nem fogadja logikailag el, hogy
A1="2012*"
mert ugyan a többi feltétel egzakt a harmadik ha feltétel a 2012 vel kezdődő adatokat is igaznak kellene vennie. . .www.vagyunk.hu
-
Fecdzo
senior tag
Sziasztok!
Egy olyan problémát szeretnék megoldani, hogy adott két email lista. Ezeket szeretném összehasonlítani, úgy, hogy kiemelje vagy tegyen 1-est azon email címek mellé, amelyek benne vannak a nagyobb táblázatban és nullát amellé amelyik nem szerepel. Hogyan tudnám ezt megoldani?
fulekitrading.wordpress.com
-
Oly
senior tag
válasz Fecdzo #14083 üzenetére
Fkeres-sel, vagy új Excelben a feltételes formázás, duplikák kiemelése.
Fkeressel a kis lista mellett csinálsz egy függvényt, hogy keresse meg a nagy listában, ha ott van, akkor legyen 1, ha nincs akkor pedig #Hiányzik lesz.
SonyEricsson T20 - T68 - T610 - K700 - W800 - K750 - K800 - C702 - P1 - MOTO Defy - Galaxy S Advance - Galaxy S4 - Lumia 820 - Honor 7 - iPhone 5S
-
zz76zz
csendes tag
válasz Bocimaster #14084 üzenetére
Az a baj, hogy ha szöveggé konvertálod át a cellákat, akkor viszont nem tudod formázni.
3 külön cellába tudod tenni, de az nem túl szép megoldás.
Esetleg beviteli mezőket alkalmazhatsz. . . bár jó lenne pontosan tudni mi a feladat.www.vagyunk.hu
-
utgyuru
aktív tag
Sziasztok!
Egy ilyen táblázatot szeretnék csinálni, aminek az első sorában az év, másodikban, a hónap, harmadiknak a napok vannak. Úgy kellene, hogy az év össze van vonva, meg a hónap is, de nem kézzel vonom össze. Ez megoldható? Ha mondjuk 10 évvel csinálnám, elég sokáig tartana. A hétvégék napjait meg színnel szeretném kiemelni. Valaki ebben tudna segíteni?
-
föccer
nagyúr
-
zz76zz
csendes tag
jó felteszem másképp a kérdést, átha így valaki:
miért nem jó ez a képlet?:
=HA(A1="n";1;HA(A1="item";1;HA(1=SZÖVEG.KERES("2012*";A1;1);1)))
szerintem azt kellene csinálnia, hogy egyet ad, ha n, item vagy 2012 vel kezdődő szöveg van az a1 es cellábanwww.vagyunk.hu
-
hallgat
csendes tag
Sziasztok!
Küzdök egy ideje az azonos soraim törlésével, de nem akar összejönni, vagy iszonyú hosszú ciklusidővel dolgozik (és még az is hibásan )
A táblázatom "A" oszlopában a 2. sortól a végéig számok vannak.
A számok között van ismétlődés, de azok mindig egymás után következnek, szám szerint 19 alkalommal/szám.Azt szeretném elérni, hogy az utolsó sort meghatározva, ("A" & usor)- tól felfelé haladva végezze el az ismétlődő sorok törlését.
Tehát pl. vizsgálja meg, hogy "A17777" cella értéke azonos e "A17776" értékével és ha igen, akkor törölje ki a 17776. sort, majd ismét vizsgálja meg, hogy "A17777" cella értéke azonos e "A17776" értékével, ha azonos akkor megint sortörlés, ha nem, akkor ugorjon 1 cellát felfelé és vizsgálja meg, hogy "A17776" értéke azonos e "A17775" értékével, ha igen sortörlés, ha nem, akkor ugrás egyel feljebb.
Nem másolok be kódrészletet, mert már nagyon szétfaragtam amiket innen onnan szereztem a célra és nem is működnek, így nem nagyon van értelme
Az egyetlen, ami futott, az egy cella értéket végigvizsgált a teljes tartományon (30-40 ezer sor) majd törölte az azonosakat, aztán kezdte a következő cellával elölről. Egyrészt eszméletlen lassú, másrészt a törlés sem volt tökéletes, mert a sorok törlése miatt felülről haladva lefelé, csak egy részét távolította el az ismétlődéseknek, ha azok egymást követő sorokban voltak (már pedig mind így ismétlődik, 19x egymás alatt)
Előre is köszönöm a segítséget!
Office 2010 Attól, hogy a verebek alakzatba állnak, az még nem SAS!
-
hallgat
csendes tag
válasz saab00 #14079 üzenetére
Szia!
1., SzumHa függvényt nézd meg. Az egy rendszámhoz tartozó értékeket összeadja neked.2., FKeres nem fog menni, az első találatot fogja adni
3., Ha a találat alatti cella értéke kell, azt meg tudod oldani a HOL.VAN fügvénnyel (ezzel megkeresteted az értéket, majd megadod, hogy a következő sor azonos oszlopából vegye az értéket. Viszont itt is baj lesz az ismétlődésekkel...
Office 2010 Attól, hogy a verebek alakzatba állnak, az még nem SAS!
-
#90999040
törölt tag
válasz hallgat #14093 üzenetére
Próbáld meg így:
n = Range("A" & Rows.Count).End(xlUp).Row
For i = n - 1 To 1 Step -1
If Cells(i, 1).Value <> Cells(n, 1).Value Then
If i < n - 1 Then Rows(i + 1 & ":" & n - 1).Delete
n = i
End If
Next
If Cells(1, 1).Value = Cells(n, 1).Value And n > 1 Then Rows(1 & ":" & n - 1).Delete -
cousin333
addikt
válasz zz76zz #14092 üzenetére
Javaslom, hogy ilyenkor próbálj ki két dolgot: a képletkiértékelőt, ahol lépésről lépésre láthatod, hogy hogyan számol, illetve az egyes függvények súgóját.
Azért nem működik, mert "Ha a keres_szöveg értéke nem található, a függvény az #ÉRTÉK! hibaértéket adja eredményül."
A megoldást pl. a HAHIBA függvény jelentheti.
A másik, hogy ilyen logikai vizsgálatnál az egymásba ágyazott HA függvényekkel csak a saját életedet bonyolítod. Mi van, ha még egy feltételt teljesíteni kellene? Javaslom a VAGY függvény használatát, amivel a képleted így nézne ki:
=--VAGY(A1="n"; A1="item";HAHIBA(1=SZÖVEG.KERES("2012*"; A1;1); 0))
A két mínuszjel azért van az elején, mert a VAGY függvény kimenete IGAZ vagy HAMIS, ezzel a művelettel viszont 1 ill. 0 lesz belőle. Egyébként írhatnád úgy is, hogy
=(A1="n")+(A1="item")+HAHIBA(1=SZÖVEG.KERES("2012*";A1;1);0)
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz hallgat #14093 üzenetére
Mindenképpen az egész sor törlése kell, nem csak egy adott mennyiségű oszlopé?
A sebesség azért lassú, mert sokszor nyúlsz a cellákhoz. Ilyen adatmennyiségnél ez már komoly problémát jelent.
Azt írtad, hogy az ismétlődések csak egymás után fordulnak elő. Akkor egyszerűen menj végig az oszlopon, és ha az aktuális cella megegyezik az előző cellával, akkor töröld ki az adott sort. Csak arra figyelj, hogy legközelebb is ugyanezt a sort vizsgáld, mert a törlés miatt eggyel kevesebb lett. Vagy alulról indulj el felfelé.
[ Szerkesztve ]
"We spared no expense"
-
cousin333
addikt
válasz hallgat #14093 üzenetére
Na, megalkottam a gyilkos VBA kódot Nyilván lehetne még rajta reszelni, de úgy tűnik, működik, méghozzá elég gyorsan. A kód feltételezi, hogy a kérdéses számok az A1:A20000-es tartományban vannak. Akkor is így kell megadni, ha a számok csak a 2. sorban kezdődnek! Ha nem az első sorból indítasz, akkor módosítgatni kell a kódot, mert nálam a tartomány indexe és a sor száma ugyanaz (lásd a For ciklust).
Gyakorlatilag megnézem a teljes listát, és ha azonosat találok, megjelölöm azzal, hogy törlöm a mellette(!) lévő cella tartalmát (különben csak minden 2. egyezést találna meg). A törlést nem a munkafüzeten végzem, mert az ennyi adatnál lassú lenne, hanem "belsőleg".
Ezután fogom a teljes tartományt, és kijelölöm illetve törlöm azokat a sorokat, amiben a B cella üres. A kód:
Sub duplikatum()
Dim szamok As Variant
szamok = Range("A1:B20000").Value
sorok = ""
For i = 2 To UBound(szamok)
If szamok(i, 1) = szamok(i - 1, 1) Then
szamok(i, 2) = ""
End If
Next i
Range("A1:B20000").Value = szamok
Range("B1:B20000").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub[ Szerkesztve ]
"We spared no expense"
-
zz76zz
csendes tag
válasz cousin333 #14098 üzenetére
Ez nagyon szép megoldás. Köszönöm szépen! Nem ismertem ezen lehetőségeket. Már csak annyi gondom van, hogy a scrip futtatása köznem a dátumokat átformázza és katyavaszos lesz. Hiába raktam át szövegessé a cellákat, amikor a script nekikezd, akkor átnézi újra és átírja. Olvastam fórumokat, de kielégítő megoldást nem találtam. . . ha valaki tud segíteni megköszönöm.
OO nem rakja át ott viszont nem működött egyik függvény sem.www.vagyunk.hu
Új hozzászólás Aktív témák
- AKCIÓ! - STEAM kulcsok /Anuchard, Aragami, Children of Morta, stb. - 2024.04.17.
- Eladó Steam kulcsok kedvező áron!
- Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Windows, Office licencek a legolcsóbban, egyenesen a Microsoft-tól - 2990 Ft-tól!
- PC JÁTÉKOK (OLCSÓ STEAM, EA , UPLAY KULCSOK ÉS SOKMINDEN MÁS IS 100% GARANCIA )