Hirdetés
- Luck Dragon: Asszociációs játék. :)
- Gurulunk, WAZE?!
- sziku69: Fűzzük össze a szavakat :)
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- potyautas: A Magyar Néphadsereg emlékére
- D@reeo: Pi-hole és a Telekom Sagemcom F@st 5670 DNS beállítása
- gban: Ingyen kellene, de tegnapra
- GoodSpeed: A RAM-válság és annak lehetséges hatásai
- GoodSpeed: Márkaváltás sok-sok év után
-
LOGOUT
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
Topikgazda
válasz
szricsi_0917
#54685
üzenetére
Szia!
Más, Mutt hozzászólása alapján jutott eszembe a következő:
Mi lenne, ha használnád a BackgroundQuery tulajdonságot False -ra állítva. Ekkor minden lekérdezésnél megvárja a VBA a teljes lefutást, ezután megy tovább a következő műveletekre.
Üdv. -
Mutt
senior tag
válasz
szricsi_0917
#54685
üzenetére
Szia,
A Connections object-nek nincs Refreshing tulajdonsága.

A Power Query egy OLE DB lekérdezés, aminek viszont már van ilyenje.

Ha nem munkalapra írja ki az eredményt a lekérdezés, akkor minding False -t ad vissza.
Szóval
If conn.Refreshing Then
helyettIf conn.OLEDBConnection.Refreshing Then
kell.Mivel a lekérdezések alapból a háttérben futnak, ezért a számolás kikapcsolása amíg a lekérdezések futnak nem fog segíteni. A munkafüzet abban a pillanatban hogy a lekérdezések a munkalapra kirakják az eredményt be fog lassulni (látom hogy hagysz 3x 2 másodpercet még, de mivel lassú a füzeted ezért valószínű ez nem elég).
Igazán jó megoldást nem tudok így látatlanban, de ha több infót adsz talán tudunk mondani vmit.
üdv
-
Fferi50
Topikgazda
válasz
szricsi_0917
#54685
üzenetére
Szia!
Én kiíratnám debugba az időpontot, a lekérdezés nevét, állapotát és a stableCount változó értékét minden ciklusban.
Talán kevés neki a 2 mp késleltetés?
Üdv. -
fjns
lelkes újonc
válasz
szricsi_0917
#49518
üzenetére
Szia, a linkben található táblázat egy lehetséges megoldás a problémádra...
Az adatok rögzítése közben automatikusan képződik a stat munkalap az összes cég/cikkszám kombinációra az öt technikai munkalap segítségével.
A megoldás nem érzékeny arra, ha az adatok munkalapon sor(ok) beszúrása vagy törlése történik. Arra az általad leírt információra épül minden, hogy az A oszlop fix a cégek számára, a B, C és D oszlopok pedig a mintának megfelelő sorrendben ismétlődnek. A jelenlegi működés olyan, hogy minden sorban az első üres cikkszám előtti háromcellás blokkig dolgozza fel az adatokat.
Megjegyzendő, hogy a Tcikk és a Tfel munkalapok nélkül, illetve a három techX munkalap helyett egy összevont tech munkalappal is elérhető ugyanaz az eredmény, de ez kicsit már ízlések és pofonok kérdése is, számomra így átláthatóbb a megoldás... -
ny.janos
tag
válasz
szricsi_0917
#49518
üzenetére
Szia!
Ha az oszlopaidból igen sok van és nem csak 2-szer ismétlődik, hanem esetleg több 10-szer is, akkor érdemes lehet elgondolkodni egy segédmunkalapban szerintem. Itt megnézheted, mire gondolok.
-
Fferi50
Topikgazda
válasz
szricsi_0917
#49520
üzenetére
Szia!
Az mennyivel jobb, ha beszúrsz elrejtett oszlopokat mintha egy cellában adnád meg a több szumhatöbb függvény összegét?
Üdv. -
Fferi50
Topikgazda
válasz
szricsi_0917
#49518
üzenetére
Szia!
Ahány Fel oszlopod van, annyi SZUMHATÖBB függvény eredményét kell összeadnod:
=SZUM(SZUMHATÖBB(Fel/1;Cég;Cég1;Cikkszám/1;"1234");SZUMHATÖBB(Fel/2;Cég;Cég1;Cikkszám/2;"1234"); és így tovább)
A képletben most a fejlécet írtam, természetesen az oszlopot kell érteni alatta.
Megpróbálkozhatsz még kimutatással is.
Megjegyzés: Mennyivel egyszerűbb lenne a helyzet, ha nem oszlopsorosan lennének az adatok, hanem sorfolytonosan. Igaz, akkor az A oszlopba is be kellene írni a cégnevet, cserébe viszont csak 4 oszlopod lenne és szűrőkkel megkaphatnád a kívánt eredményt.
Üdv. -
Delila_1
veterán
válasz
szricsi_0917
#47066
üzenetére
Annyit még egyszerűsíthetsz rajta, hogy beteszel egy For-Next ciklust 1-tól 4-ig, és egy Select Case utasításban adod meg a változó lapneveket, az oszlop ciklusok kezdetét és végét, miegyebeket.
-
Delila_1
veterán
válasz
szricsi_0917
#47039
üzenetére
A másik fórumon, ahol feldobtad ugyanezt a kérdést, megadtam a választ: speciális szűrés.
-
Fferi50
Topikgazda
válasz
szricsi_0917
#45380
üzenetére
Szia!
Kicsit jobban ránéztem és az alábbiakat találtam:
1. Jó a Column, nem kell többesszám.
2. Az Index 2 dimenziós legyen és 0,0 val indul, ez az első oszlop első értéke
3. Első az oszlop index, második a sor index.
Tehát .Column(0,0) az első elem, .Column(0,1) az első oszlop második eleme.
Üdv. -
Fferi50
Topikgazda
válasz
szricsi_0917
#45380
üzenetére
Biztos, hogy jó a Control neve? Mert az is "indexnek" számít. Bár arra más hibaüzenet jönne.
-
Fferi50
Topikgazda
válasz
szricsi_0917
#45378
üzenetére
Szia!
Az index 0-val kezdődik szerintem, az egy oszloposnál Columns(0), úgy gondolom.
Üdv. -
Fferi50
Topikgazda
válasz
szricsi_0917
#45374
üzenetére
Szia!
.Columns(1)
Üdv. -
Fferi50
Topikgazda
válasz
szricsi_0917
#44295
üzenetére
Szia!
Makróban a tartományokat a Range tulajdonsággal kell megadni.Sheets("Összerendelés").Range("af6") = Application.WorksheetFunction.CountA(Sheets("Összerendelés").Range(abc.Address & ":" & abc1.Address))
Üdv. -
szricsi_0917
tag
válasz
szricsi_0917
#44295
üzenetére
Sziasztok
Közben megtaláltam a megoldást!
-
Mutt
senior tag
válasz
szricsi_0917
#44126
üzenetére
Szia,
A tömböknek a szorzatösszegben azonos méretúnek kell lennie, a képleted szerint is azonos magasságúak (2-es sortól a lastrow2-ig).
Próbáld ki így a képlet létrehozását:
Dim rng As Range
Dim keplet as String
For i = 2 To lastrow
For a = 10 To 21
Set rng = szerviz.Cells(2, a).Resize(lastrow2 - 1)
keplet = "=SUMPRODUCT(MAX((Szerviznyilvántartó!$B$2:$B$" & lastrow2 & "=$B" & i & ")*(Szerviznyilvántartó!" & rng.Address & "=""Motorolajcsere"")*Szerviznyilvántartó!$G$2:$G$" & lastrow2 & "))"
auto.Range("V" & i) = Evaluate(keplet)A kódrészlet alapján ami furcsa, hogy 11 oszlop 11 eredményét kiszámolod és mindig a V oszlopba kiírod, így valójában mindig csak az utolsó oszlop eredménye marad meg.
Ha gond van, akkor érdemes feldobnod egy minta fájlt vhova a pontos feladattal és itt többen is tudnak jobb kódot majd javasolni.
üdv
-
Mutt
senior tag
válasz
szricsi_0917
#44114
üzenetére
Szia,
Ez nem fog menni, mert a VBA-s változat máshogy műkődik.
Alternatív megoldások:
1. Előbb képlettel kiszámoltatod az eredményt, majd értékként beilleszted
With Range("U2:U" & lastrow)
.FormulaR1C1 = "=SUMPRODUCT(MAX((RC[-19]:R[998]C[-19]=RC[-19])*RC[-14]:R[998]C[-14]))"
.Value = .Value
End With2. Evaluate függvénybe teszed a képletet és az eredményt kiíratod a cellába
For i = 2 To lastrow
keplet = "=SUMPRODUCT(MAX((B2:B1000=B" & i & ")*G2:G1000))"
Range("U" & i) = Evaluate(keplet)
Next i3. Ahogy nézem csak a maximumot keresed a G-oszlopban minden B-ben lévő értékhez. Ezt Kimutatással, AB.MAX vagy MAXHA függvényekkel is el lehet érni.
üdv
-
SkiDev
őstag
válasz
szricsi_0917
#43789
üzenetére
Szia! Köszönöm, letöltöttem, mazsolázok belőle.
-
Fferi50
Topikgazda
válasz
szricsi_0917
#43768
üzenetére
Szia!
Tulajdonképpen mit is szeretnél? Nem olyan lassú az a szűrés szerintem. De ha a feladatot pontosan megfogalmazod, akkor mi is tudnánk használhatóbb választ adni szerintem.
Üdv.
-
Fferi50
Topikgazda
válasz
szricsi_0917
#43759
üzenetére
Szia!
Szerintem a 2. példádban pont egymás utáni oszlopok vannak feltétel szerint listázva. Csak ott előre lehet tudni, hogy melyik feltételhez melyik lista tartozik a következő oszlopban. A listák el vannak nevezve. Neked elvileg szűrt listára van szükséged. Ezt a szűrést megcsinálhatod az Adatok munkalapon direktben -> szűrsz az A oszlopra, majd szűrsz a B oszlopban megjelentekre - ezután a C oszlopra stb. A végén megkapod azt az egy /vagy több sort, amire szükséged van.
Üdv. -
Fferi50
Topikgazda
válasz
szricsi_0917
#43757
üzenetére
Szia!
Ezt most nem is értem egészen. Az Adatok között lesz többször az A oszlopban ugyanaz a név más B-C stb. oszlop értékekkel? Ebből szeretnél a lista munkalapon válogatni?
Akkor többszíntű legördülő listára van szükséged. Itt is találsz rá példákat, ha rákeresel.
Üdv. -
Fferi50
Topikgazda
válasz
szricsi_0917
#43755
üzenetére
Szia!
A név kiválasztása után miért is kell még legördülő lista, ha a hozzá tartozó adatokat szeretnéd megkapni? Hiszen ott már nem választás kérdése, mi jelenik meg.
Használd az FKERES függvényt a többi adat megtalálásához:
pl. a B2 cellában= FKERES(A2;Adatok!$A$1:$D$5;oszlop();0)
a képlet és ez húzható lefelé és jobbra is.
De ha más a fejléc sorod, akkor az oszlop() helyett a harmadik paraméter legyen:HOL.VAN(B$1;Adatok!$A$1:$D$1;0)
a képlet így is húzható lefelé és jobbra is.
Így mindig a lista fejléceinek megfelelő érték kerül az adott oszlop cellájába.
(persze a két munkalapon a fejléceknek azonosnak kell lenni)
Üdv. -
Fferi50
Topikgazda
válasz
szricsi_0917
#43709
üzenetére
Szia!
Kissé zavaros amit írtál.
"az A oszlop legördülő lista (ehhez az adatok a B oszlopban vannk pl)."
Milyen adatok vannak a B oszlopban? Amiből a listát megjeleníti az A oszlopban? Mert akkor természetes, ha ott egy adatot megváltoztatsz, a legördülő listában is - de csak ott! - megváltozik.
" az A1 oszlopban kiválasztom a Kis Pistát a legördülő lista alapján"
A1 oszlop nincs!
Viszont, ha egyszer egy cellában egy értéket kiválasztottál, akkor az nem módosul mindaddig, amíg újra vissza nem mész és meg akarod változtatni a kiválasztást. A kiválasztás nem képlet és így nem frissül automatikusan - de ha legközelebb ismét abban a cellában választasz, akkor már az átírt érték fog megjelenni.
Ha pontosítod a kérdést, jobb választ kaphatsz.
Üdv. -
lappy
őstag
válasz
szricsi_0917
#43692
üzenetére
-
lappy
őstag
válasz
szricsi_0917
#43136
üzenetére
mivel nincs benne szabályszerűség úgy elég nehéz rá függvényt alkotni
-
karlkani
aktív tag
válasz
szricsi_0917
#41808
üzenetére
Adatsávos formázás így nem fog működni (szerintem). Megoldható, ha van lehetőség segédoszlopot felvenni:
D2=HA(ÜRES(A2);"";C2/A2*100)Ezzel megkapod az aktuális készletet, százalékosan. Adatsávos formázásnál beállítod a D2 cellára a minimum szám 0 és maximum szám 100 értékeket, bejelölöd a csak adatsáv megjelenítés opciót, majd érvényesítéshez=$D$2:$D$500(500 sort írtál)Ha nem erre gondoltál, akkor...
-
Delila_1
veterán
válasz
szricsi_0917
#41806
üzenetére
-
ny.janos
tag
válasz
szricsi_0917
#41216
üzenetére
Szia!
Az értekezletet írja ki nálam is, ha nagyon sok számítási műveletet tartalmazó fájlt nyitok meg. Vagyis a lassulást maga a fájl okozza (annak mérete, számítási sokasága).
Próbáld meg, hogy nem xlsx, hanem xlsb fájlformátumban mentet el a fájlod. Gyorsabbnak kell lennie tőle. Ha még így is túl lassú marad, akkor esetleg értékként beillesztheted azokat az adatokat a képletek helyett, amely adatoknak az újrakalkulálására nincs szükség. -
ny.janos
tag
válasz
szricsi_0917
#41209
üzenetére
A próbálkozások során nekem addig volt #ÉRTÉK hibám, ameddig a HA - SZÁM vizsgálat nem volt beépítve, azóta viszont nem találkoztam vele. Mivel nálam jól működik, ezért látatlanban erre nem lehet mit mondani. Tölts fel egy mintafájlt valahova, abból talán kiderül, hogy mi a gond nálad.
-
ny.janos
tag
válasz
szricsi_0917
#41207
üzenetére
Szia!
A végére kerülhet a plusz feltétel vizsgálat, hogy az X oszlopod egyenlő-e 1-el:
{=SZORZATÖSSZEG(($A$2:$I$4=$A8)*HA(SZÁM($B$2:$J$4);$B$2:$J$4;0)*($X$2:$X$4=1))} -
ny.janos
tag
válasz
szricsi_0917
#41199
üzenetére
Hogy őszinte legyek nekem sem. Ezért is kerestem a megoldást a szorzatösszeg esetleg a szum függvény tömbképletes alkalmazásával, de akkor még sikertelenül. Bár nem hittem benne, de gondoltam csak teszek egy próbát a szumha függvénnyel is, úgysem fogja megtudni senki, hogy milyen hülyeséget akarok. Aztán kiderült, hogy mégsem volt hülyeség.

-
ny.janos
tag
válasz
szricsi_0917
#41196
üzenetére
Szia!
Az alábbi képlet megadja az általad kívánt értéket, ha A8 értéke
anyag1:SZUMHA(A$2:F$4;$A8;B$2:F$4)
Ha A9 =anyag2és A10 =anyag3, akkor a képletedet nyugodtan másolhatod lefelé.
Ha több oszlopod is van, akkor a tartomány végét természetesen illeszd ahhoz a képletben. -
Mutt
senior tag
válasz
szricsi_0917
#39072
üzenetére
Szia,
Nézd meg előbb, hogy Power Query-vel meg tudod-e csinálni a kért feladatot.
Javaslom, hogy a Power Query segítségével "fűzd" össze a sok fájlt és arra már lehet FKERES/VLOOKUP.
üdv
-
Mutt
senior tag
válasz
szricsi_0917
#38904
üzenetére
Szia,
Excel 2010-től a Power Query tud az ilyen feladatokban segíteni.
Egy nem olyan friss video a szükséges lépésekről.
üdv
-
szricsi_0917
tag
válasz
szricsi_0917
#38007
üzenetére
=SZUM(ELTOLÁS(INDEX(B5:B600;HOL.VAN(V2;B5:B600;0));;7):ELTOLÁS(INDEX(B5:B600;HOL.VAN(V2;B5:B600;0));;18))Ez a képlet lett, kicsit változtatva közben a táblázat kinézetén is. Vagy van ennél egyszerübb is esetleg?
-
Mutt
senior tag
válasz
szricsi_0917
#37992
üzenetére
Szia,
A logikai függvények (ÉS, VAGY, NEM) függvények nem működnek tömbfüggvényekben, mert mindig csak 1 értéket adnak vissza. Helyettük szorzás és összeadást használhatunk.
Szerintem ez a tömbképlet minden kritériumot figyelmbe vesz:
=SZUM(HA(((HÉT.NAPJA(idosor;11)>5)+(SZÁM(HOL.VAN(idosor;$A$4:$A$20;0)))>0)*(HIBÁS(HOL.VAN(idosor;$A$32:$A$47;0)));--SZÁM(ELTOLÁS(D2;0;0;1;DARAB(idosor)));0))Hozz létre a névkezelőben egy idosor nevezetű dinamikus tömböt, a képlete:
=ELTOLÁS(Munka1!$D$1;0;0;1;DARAB(Munka1!$D$1:$AH$1))
Ez azért kell, mert az eltérő hosszúságú hónapoknál a képletet mindig át kellene különben írni.
üdv
-
Mutt
senior tag
válasz
szricsi_0917
#37990
üzenetére
-
Mutt
senior tag
válasz
szricsi_0917
#37918
üzenetére
Szia,
Rövidítsük le a képleteket. Az első talán így (nem tudom mi van a B1-ben, de ide szerintem nem kell):
=HA(D1="";"";HA(HÓNAP(D1+1)=HÓNAP(D1);D1+1;""))A második pedig:
=ÉS(VAGY(HÉT.NAPJA(D1;11)>5;SZÁM(HOL.VAN(D1;$A$4:$A$20;0)));NEM(SZÁM(HOL.VAN(D1;$A$32:$A$47;0))))Ha a második képlet nem csak féltételes formázásban van, hanem a munkalapon is megvan, akkor ennek segítségével tudunk SZUMHA-t használni.
=SZUMHA(ahol van a második képlet adatsor;IGAZ;adatsor a munkaórákkal)üdv
-
Delila_1
veterán
válasz
szricsi_0917
#37918
üzenetére
Az első hosszú képleted helyére bírnám a hónap első napját. A cella formátuma nn. nnn, amit jobbra húzva növekednek a napok 1-gyel. Addig másolod havonta, ameddig kell. Minden hónapban csak az első cellát kell módosítanod.
-
Mutt
senior tag
válasz
szricsi_0917
#37915
üzenetére
Szia,
Ha a hónap napjai dátumok a fejlécben, akkor a HÉT.NAPJA függvény tud segíteni a hétvégéket megtalálni, amit a SZORZATÖSSZEG vagy a SZUM függvénnyel lehet használni.
A fejléc a B1:AF1 tartományban van, a ledolgozott idő a B2:AF2 tartományban.
=SZORZATÖSSZEG(--(HÉT.NAPJA($B$1:$AF$1;11)>5)*B2:AF2)A fenti függvény elhasal, ha szöveg (akár csak egy szóköz) is van az alsó sorban, viszont a következő tömbfüggvény ekkor sem hasal el:
=SZUM(--(HÉT.NAPJA($B$1:$AF$1;11)>5)*(HA(SZÁM(B2:AF2);B2:AF2;0)))Ha az első sor szöveg (vagyis nem 2018.04.01. van ott, hanem "01.V"), akkor pedig "V" és "Szo" szövegre kell keresni a SZUMHA függvénnyel:
=SZUMHA($B$1:$AF$1;"*V";B2:AF2)+SZUMHA($B$1:$AF$1;"*Szo";B2:AF2)Rövidebben a SZUMHATÖBB-el:
=SZUM(SZUMHATÖBB(B2:AF2;$B$1:$AF$1;{"*V"\"*Szo"}))Mindegyik megoldás hátránya, hogy mindig 31 napot nézel és előfordulhat hogy a következő hónap elseje (pl. július 1) is hétvégére esik, ha csak az adott hónap hétvégéi számítanak, akkor ez a tömbfüggvény jó lesz:
=SZUM(--(HÉT.NAPJA($B$1:$AF$1;11)>5)*(HA(HÓNAP($B$1:$AF$1)=HÓNAP($B$1);B2:AF2;0)))üdv
-
szricsi_0917
tag
válasz
szricsi_0917
#37915
üzenetére
Még egy kis kiegészítés hozzá. A függvényem megvan, hogy milyen módon számolja ki a hétvégi napokat és esetleg a munkaszüneti napokat is, de nem tudom milyen módon kell alkalmazni, hogy eltolással számolja ki a darabszámokat a vizsgált cellák alapján.
Új hozzászólás Aktív témák
- One otthoni szolgáltatások (TV, internet, telefon)
- PLC programozás
- BestBuy topik
- EA Sports WRC '23
- Vírusirtó topic
- Black Friday november 29. / Cyber Monday december 2.
- Revolut
- Garancia kérdés, fogyasztóvédelem
- Direct One (műholdas és online TV)
- Mibe tegyem a megtakarításaimat?
- További aktív témák...
- AKCIÓ! Apple Macbook Pro 16" 2019 i9 64GB 512GB 5500M macbook garanciával hibátlan működéssel
- HIBÁTLAN iPhone 13 Pro 128GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS3747, 100% Akkumulátor
- Nikon D3500, Tükörreflexes (DSLR) fényképező
- Wacom Bamboo One CTF-430 rajztábla
- Bomba ár! HP Probook 450 G10 - i3-1315U I 16GB I 256SSD I 15,6" FHD I W11 I Cam I Garancia!
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest





Fferi50
