- One mobilszolgáltatások
- Milyen okostelefont vegyek?
- Samsung Galaxy Watch6 Classic - tekerd!
- Milyen GPS-t vegyek?
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Honor 200 Pro - mobilportré
- Samsung Galaxy Watch7 - kötelező kör
- Apple Watch Sport - ez is csak egy okosóra
- Mobil flották
- iPhone topik
-
Mobilarena
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
-
m.zmrzlina
senior tag
válasz
sedyke #30816 üzenetére
Ha mindenképpen ha fv-t szeretnél használni akkor itt egy lehetséges megoldás:/A1-ben lévő darabszámot figyeli/
=HA(A1>=30;2;HA(ÉS(A1<30;A1>=12);1;HA(A1<=11;"ide jön a ha fv a méret feltétellel ")))
Ha kicsit profibbat szeretnél és esetleg több feltételt is kell vizsgájni akkor a #30435-ös hszt ajánlom a figyelmedbe.
-
sedyke
tag
válasz
sedyke #30816 üzenetére
IF(AND($AX10>30,SUM(N10+BG10)<1),2,IF(AND(12<$AX10<29,SUM(N10+BG10)<1),1,IF(AND(6<$AX10<11,SUM(N10+BG10)<1),1,0)))
Idaig jutottam, de sajnos csak az elso feltetelt veszi, miszerint legyen nagyobb 30-nal az AX10 erteke. Ahol ez nem teljesul, oda egyszeruen nullat ir, meg ha beleesik a 12<AX10<29 feltetelbe is.
-
lenkei83
tag
válasz
sedyke #29391 üzenetére
Szia!
A linken találod a filet. Működik, ha nem változtatsz az alaptáblán.
Amit pirossal jelöltem a 2015-ös fülön, azok nem szerepelnek az összesítő tábládban.Delila_1 ha van időd és energiád, ránézhetsz, hátha tudsz egyszeűbb, gyorsab, stb... megoldást. Engem is érdekelne.
üdv
P. -
lenkei83
tag
válasz
sedyke #28954 üzenetére
Szia!
Akkor a szumhatöbb helyett ezt használd:
=SZUM(ELTOLÁS($A$16;HOL.VAN($A4;$A$17:$A$25;0);1;1;$D$1))
Az előző táblád struktúráját ha nem módosítottad, akkor a C4 cellába írd be ezt a képletet és húzd le az összes összegezendő kritériumhoz.Arra figyelj, hogy az összegezendő tartományt (ha szükséges) javítsd a képletben, mert a fenti csak A17:A25 közötti sorokat vizsgálja.
Valamint amit még észrevettem, hogy az első 3 hónap a tábla végén volt, ez remélem nem direkt volt így.
A módosított minta táblát itt találod:
[összegző]üdv
-
lenkei83
tag
-
Fferi50
Topikgazda
válasz
sedyke #27761 üzenetére
Szia!
Úgy gondolom, megszületett a kielégítő megoldás:
A makró:
Sub termeklistas()
Dim sh As Worksheet, ws As Worksheet, xx As Integer, yy As Integer
Set ws = Sheets("Munka1")
yy = 1
For Each sh In Worksheets
xx = 1
If sh.Name <> ws.Name Then
Do While True
If sh.Cells(xx, "B").Value = "" Then Exit Do
ws.Cells(yy, "N").Value = sh.Cells(xx, "B").Value
ws.Cells(yy, "O").Value = sh.Name & "!"
ws.Cells(yy, "P").Value = xx - 1
xx = xx + 51
yy = yy + 1
Loop
End If
Next
End SubA makró az N oszlopba beírja a termékkódot, az O oszlopba a munkalap nevét, felkiáltójellel kiegészítve, a P oszlopba pedig az adott termék hol kezdődik a munkalapon -1.
Hibaellenőrzés (mármint, hogy valóban termékkód van-e minden 51. cellában, nincs benne, azt a listából láthatod, ha átnézed).
Ezek után a képletek:
R1 cella (M)[/=FKERES($B$1;$N$1:$P$10;2;0)M]
S1 cella (M)=FKERES($B$1;$N$1:$P$10;3;0)(/M)
B3 cella (M)=INDIREKT($R$1 & "B" & $S$1+SOR())(/M)
C3 cella (M)=INDIREKT($R$1 & "C" & $S$1+SOR())(/M)Az első sor tovább értelemszerűen változtatva csak a B,ill. C helyére írva az aktuális oszlopot.
Ezután lefelé másolhatod a képleteket.A B1 cella érvényesítése: lista - forrás N1:P10
Ezután a listából kiválasztod a termékkódot, a lap pedig automatikusan kitöltődik.
A $P$10-ben a 10 helyett az utolsó "tele" cella sorszámát kell írni. (Minden másra ott a MasterCard
)
A makróra a lefuttatás után, amennyiben jónak találod az eredményt, nincs szükséged. Ha meg szeretnéd tartani, akkor makróbarátként kell elmenteni a munkafüzetet.
Remélem, sikerülni fog.
Üdv.
-
Fferi50
Topikgazda
válasz
sedyke #27758 üzenetére
Szia!
A munkalapokon való elhelyezkedés mennyire "szabályos", azaz mindig egymás alatt vannak és soha nem egymás mellett a termékek?
Ez így egy kicsit bonyolítja a helyzetet, de nem megoldhatatlan. Természetesen a makró így nem azt csinálja, amit szeretnénk.
Mondjuk a 4 termékes munkalap képét feltehetnéd, hogy látni lehessen az elhelyezkedés logikáját.
Üdv.
-
Fferi50
Topikgazda
válasz
sedyke #27756 üzenetére
Szia!
A Q1 cellában a képlet: =Fkeres($B$1;$N$1:$O$21;2;0) Természetesen a sorok száma a ténylegesen kitöltött soroké legyen.
B3 cella képlete: =INDIREKT($Q$1 & "!B" & SOR())
A C3 - F3 - H3 - J3 cellák képlete ugyanaz, csak a B helyére a megfelelő oszlopot írod.Ha a cellákba ezt a képleted írod, akkor megtalálja. A Q1 cellában az Fkeres eredménye annak a munkalapnak a neve lesz, ahol a B1 cellába beírt termékkód van.
Üdv.
-
Fferi50
Topikgazda
válasz
sedyke #27746 üzenetére
Szia!
Ha jól emlékszem, azt írtad a legelején, hogy minden terméknek külön terméklapja van. Ez azt jelenti, hogy már 800-nál több munkalapot tartalmaz a munkafüzeted.
Nincs mese, egyszer végig kell menni rajta és megnézni, melyik termék melyik lapon van - különben nem tudod ezt a "behívósdit" megcsinálni.
Erre itt egy makró:
Sub vegigkeres()
Dim sh As Worksheet, ws As Worksheet, xx As Integer
Set ws = Sheets("Főlap") ' ide a Főlap helyére annak a munkalapnak a nevét írod, amelyre a kigyűjtést szeretnéd.
xx = 2
For Each sh In Worksheets
If sh.Name <> ws.Name Then
ws.Cells(xx, "N").Value = sh.Cells(1, "B").Value
ws.Cells(xx, "O").Value = sh.Name
xx = xx + 1
End If
Next
End SubEzt akár egy általános modulba, akár a "Főlap" kódlapjára bemásolhatod - ez utóbbi: jobb egérgomb a lapnéven alul, kód megjelenítése, bemásolás.
Egyszer lefuttatod, akkor az N-O oszlopba beírja a munkafüzetben talált termékkódokat (a munkalapok B1 cellájában levő értéket, mellé pedig annak a munkalapnak a nevét, amelyen találta). Vigyázat, nem ellenőrzi, ha esetleg duplikált termékkód fordul elő.
Ezután a Főlapod B1 cellájának érvényesítésére megadhatod az N oszlopban levő értékeket.Ha mindez megvan, a makróra már nincs is szükséged, mentheted makrómentesen a füzetet.
Üdv.
-
Fferi50
Topikgazda
válasz
sedyke #27740 üzenetére
Szia!
A sheetlistát ki kell egészíteni a termék kódokkal, beszúrsz még egy oszlopot az N elé és oda beírod azt a temékkódot, amelyik a mellette levő sheet-en van. Tehát a sheetlistád az N:O oszlopokban lesz.
A Q1 cellát kinevezhetjük "munkacellának". Ebben a képlet: =Fkeres($B$1;$N$1:$O$21;2;0) Természetesen a sorok száma a ténylegesen kitöltött soroké legyen.B3 cella képlete: =INDIREKT($Q$1 & "!B" & SOR())
A C3 - F3 - H3 - J3 cellák képlete ugyanaz, csak a B helyére a megfelelő oszlopot írod.A B1
1 cellánál gondolom érvényesítéssel listából lehet választani.
Ezután már tudod másolni a képletet lefelé irányba.
Remélem, sikerül.
Üdv.
-
Fferi50
Topikgazda
válasz
sedyke #27731 üzenetére
Szia!
Igen, hiszen csak úgy tudod az adatokat átvenni az adott terméklapról.
Viszont ha ügyesen írod be, akkor lehet húzni a függvényt.
A "munkacella" (amit S1-nek adtam meg) az mindig ugyanaz, tehát annak $S$1 módon kell megadni a címét. A tartalmát pedig Fkeres képlettel adod meg. (=Fkeres(temék;terméklapoklistája;1;0)).Az oldalrovatokat és a fejrovatokat természetesen nem kell képlettel megadni.
Üdv.
-
Fferi50
Topikgazda
válasz
sedyke #27729 üzenetére
Szia!
Egy tartományba beírod a termék munkalapok nevét.
Fkeressel megkeresed az adott termékhez kapcsolódó munkalapot egy munkacellába.
Majd az indirekt függvényt használva megkapod az adott táblából az adatot.
A munkacella (S1) tartalma Termék1Az A5 cellában a képlet =indirekt(S1 & "!A5")
Üdv.
-
Fferi50
Topikgazda
válasz
sedyke #27622 üzenetére
Szia!
Bocs, rosszul fogalmaztam - az egyedi értékekre gondoltam, amikor a sorokról/oszlopokról beszéltem:
pl. van 1,9,21,30,100 érték. Akkor itt elvileg 100 sornak kellene lennie, amiből 5 sorban van érték. Igazából az a kérdés, hogy hány olyan tétel van, amihez nem tartozik a táblában érték, de meg kellene jeleníteni, mint lehetséges értéket.
Milyen típusú az a tételsor, amihez a teljes megjelenítést szeretnéd hozzárendelni?Üdv.
-
Fferi50
Topikgazda
-
azopi74
addikt
válasz
sedyke #27556 üzenetére
"Az eredeti okom a gyorsitasra, hogy amikor szeretnem megjeleniteni az ertek nelkuli teteleket is, akkor megfagy az egesz es nem csinalja meg."
Ott akkor szerintem valami más gond lesz. (több oka is lehet) Ha nem nagyon titkos az adatok, töltsd fel valahová, vethetünk rá egy pillantást.
-
azopi74
addikt
válasz
sedyke #27556 üzenetére
Ha másolod az első pivottáblákat, (nem pedig újra létrehozod az eredeti adatforrásból) és utána álltgatod csak be kedved szerint, akkor az új pivot ugyanazt a "köztes" adatbázist fogja használni adatforrásként, mint az eredeti, nem növelve feleslegesen a méretet és lassítva a műkődést.
-
Fferi50
Topikgazda
válasz
sedyke #27554 üzenetére
Szia!
A Pivottábla tulajdonságai között van ilyen:
a háttérbeni frissítés engedélyezése illetve
adatfrissítés a fájl megnyitásakor, ehhez kapcsolódik a külső adatok eltávolítása a munkalapról bezárás előtt.
Ez utóbbi csökkenti a méretet, de lassítja a megnyitást.Próbáld ezeket a beállításokat variálni.
Úgy gondolom, gyorsítaná a működést, ha csak az első pivottábla kapcsolódna közvetlenül az adatforráshoz, a többi pedig ezt az első pivottáblát használná forrásként (ugyanis abban is látszik az eredeti forrás minden adata rejtetten).
Üdv.
-
Delila_1
veterán
válasz
sedyke #27370 üzenetére
Szívesen, örülök, hogy végül összejött.
For lap = 2 To Sheets.Count
Sheets(lap).SelectIde kell beszúrni a kihagyandó lap sorszámát. Ha például az ötödiket akarod kihagyni (beleszámolva az elsőt is), akkor
For lap= 2 To Sheets.Count
If lap=5 Then Exit For
Sheets(lap).SelectTöbb lap kihagyásánál a feltétel sora például
If lap=3 Or lap=5 Or lap=6 Then Exit For
-
Delila_1
veterán
válasz
sedyke #27365 üzenetére
A makró angol nyelven van, nem is lehet másképp.
A füzetedben Alt+F11-re megnyílik a VBA szerkesztője. Bal oldalon kiválasztod a füzetedet, Majd Insert menü, Module.
Beszúrtál egy új modult, ami Module1 névre hallgat. Ez van kijelölve a beszúrás után. Az ablakod jobb oldalán kapsz egy nagy üres felületet, oda másold be a makrót. Bezárhatod ezt az ablakot, és a szokásos módon (Alt+F8) futtathatod a makrót. -
Delila_1
veterán
válasz
sedyke #27360 üzenetére
Azt hiszem, ne pontosan írtad le a feladatot. Megírtam a makrót a következő felállásra:
A füzet első lapja az összesítés, ahol a termékek az A oszlopban vannak. Azt az esetet vettem, hogy nincsenek üres sorok, és az első a címsor.
Az összes többi lapon keresünk.A makró megjegyzi az összesítő lap A2-es cellájának az értékét, majd sorban ellenőrzi a többi lapon, hogy van-e ilyen nevű termék. Ha valamelyiken talál, akkor az összesítő lap W2 cellájába beírja a kért szöveget.
Következik az A3-as cella vizsgálata, majd így tovább az utolsó sorig.Sub Van_e()
Dim talal, sor As Long, usor As Long, nev, lap As Integer
Dim WS As Worksheet
Set WS = Sheets(1)
usor = WS.Range("A" & Rows.Count).End(xlUp).Row
For sor = 2 To usor
nev = WS.Cells(sor, "A")
For lap = 2 To Sheets.Count
Sheets(lap).Select
Set talal = Cells.Find(nev, LookIn:=xlValues, lookat:=xlWhole)
If talal Is Nothing Then
GoTo Tovabb
Else
WS.Cells(sor, "W") = "in user"
Exit For
End If
Tovabb:
Next
Next
End Sub -
Delila_1
veterán
válasz
sedyke #27356 üzenetére
A leírásodból arra következtetek, hogy a keresett termék 1-1 egyszer fordul elő. Ehhez itt a makró.
Sub In_Use()
Dim lap As Integer, sor As Long
For lap = 1 To Sheets.Count
sor = Application.Match("keresett_termék", Sheets(lap).Columns(1), 0)
If Not VarType(sor) = vbError Then Sheets(lap).Cells(sor, "W") = "in use"
Next
End Sub -
Delila_1
veterán
válasz
sedyke #27058 üzenetére
3 kérdésem van
1. Ha 2003-asnál magasabb verziót használsz, makróbarátként mentetted-e a füzetet?
2. Az aktuális dátumnak a T oszlopban kell megjelennie, mikor a D-be írsz. Oda írsz?
3. A lapodhoz rendelted a makrót?Ha minden lapon el szeretnéd érni, hogy a D oszlopba történő íráskor a T-be íródjon be a dátum, akkor a makrót a ThisWorkbook laphoz kell rendelned.
-
azopi74
addikt
válasz
sedyke #26820 üzenetére
Hát akkor nincs más hátra, mint visszaállítgatni egyesével.
Vagy ha van valami logika/törvényszerűség abban, hogy miket kell átállítanod, (mi állítódtak el) akkor használhatsz feltételes formázást is. De neked is csak azt tudom mondani, hogy vakon nehéz jó tanácsot adni, az is lehet, hogy pofonegyszerűen, pár kattintással vissza lehetne állítani, csak ahhoz látni kéne a file-t....
Annál is inkább gyanús, mert azt mondtad, hogy véletlenül állítottad át, valami billenytűzetkombinációval... -
azopi74
addikt
válasz
sedyke #26680 üzenetére
Azt javaslom, szerintem írd felül az üzletileg kritikus (titkos) részeket, és töltsd fel valahova a felhőbe, akkor valószínűleg tudunk segíteni. Lehetnek egész oszlopra hivatkozó függvények, telehányt Name Manager (névkezelő) , vagy akármi. Látatlanban nehéz megmondani.
-
Delila_1
veterán
válasz
sedyke #25843 üzenetére
Képet tegyél fel az "egy datumra 3 kulonbozo oszlopban mutatja az ertekeket, de mindegyik oszlop ketto adatreszbol allna ossze, vagyis minden oszlop osztva lenne ketfele" diagram kinézetéről!
Szegényes a fantáziám, látnom kell, miről van szó. Gondolom, azért nem kaptál eddig választ, mert esetleg más is így van vele.
Az sem baj, ha mutatod az adataid elhelyezkedését, és egy kézzel rajzolt diagramot.
-
Delila_1
veterán
válasz
sedyke #25712 üzenetére
Azt nem ismerem, de olvastam tőle a "Makróhasználat Excelben" című könyvet, és olyanok vannak benne, amik nem igazak. Például:
"Minden változónak van egy neve és egy értéke. (Más programnyelvekben típusa is, amely meghatározza,
hogy milyen jellegű adat tárolható a változóban. Itt a típust többnyire nem szükséges definiálni, azt az első értékadás határozza meg.)""...az FKERES függvény csak ábécébe rendezett listában működik..."
Legtöbben Kovalcsik Géza Az Excel programozása című könyvét javasolják. Krizsák Lászlónak van egy az azonos című könyve, amit kezdők jobban tudnak használni.
-
-
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
sedyke #25376 üzenetére
Szia!
Ha jól értem, akkor a keresendő táblázatodban nem találja meg az adott dátumot. Próbáld meg arra a dátumra rámásolni az előző dátumot (amit megtalál), majd utána átírni arra, amit keresel.
Sokszor észrevehetetlen "formai" okok játszanak közre a meg nem találásban (főleg a dátumoknál).Üdv.
-
slashing
senior tag
válasz
sedyke #25373 üzenetére
valószínűleg nincs olyan találat(pontos egyezőség) ezért #n/a az az nincs-et ad eredményül, ellenőrzid a szumha kritériumát(nem a képletben hanem ahol a képlet keresi, lehet elgépelted) bár így látatlanban elég nehéz.... illetve nézz rá képletkiértékelővel hogy hol akad meg..... mást így nehéz mondani rá...
-
Wyll
őstag
válasz
sedyke #25197 üzenetére
Szerintem itt ez a cikk elég jól körüljárja a
"Hogyan számoljuk meg excel-ben az egyedi értékek számát"
témát. Több módszert is mutat. Üres cellák figyelembevétele vagy nem vétele is benne van. Példamunkafüzet, videó is van. Hasonló slashing megoldásához is. -
Fferi50
Topikgazda
válasz
sedyke #23547 üzenetére
Szia!
Ezt attól függ, hogy milyen "technikával" hoztad létre összesítéseket.
Ha ugyanannyi sorral van lejjebb, használhatod az indirekt függvényt:
pl. Az első sorban = indirekt("munka1!B" & (sor()-1)*X+1) ahol az X az a szám, amennyivel lejjebb van a következő számlaszám. Ezt a képletet húzod végig az oszlopon.
Az összegre hasonlóan, csak nem +1 amit hozzáadsz, hanem az első összegnek a sorszámát (itt 45).Üdv.
-
m.zmrzlina
senior tag
válasz
sedyke #23547 üzenetére
A tiédhez nagyon hasonló probléma volt itt.
Új hozzászólás Aktív témák
Hirdetés
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem, Most kedvező áron!
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- HP Laptop 15-fc0026nh (AY7E1EA)
- ÁRGARANCIA!Épített KomPhone i9 14900KF 64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
- Samsung Odyssey G6 S27BG650EU - 27" QHD 2K 240Hz Ivelt - Gaming monitor - 1,5 év Gyári garancia
- Szinte új, minőségi, állítható ritkítóolló
- Honor 90 Lite 256GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged