- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Google Pixel topik
- Honor 400 Pro - gép a képben
- One mobilszolgáltatások
- Magisk
- iPhone topik
- Poco M3 - felújított állomás
- Honor Magic V2 - origami
- Xiaomi 12T Pro - kétszínű, mint a kétszázas
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
-
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
-
slashing
senior tag
válasz
gaborlajos #25298 üzenetére
(2013-as verzió, 2010-esben is tuti jó még visszamenőleg nem tudom)
Egy példa lehet van rá jobb megoldás
A jelölőnégyzetre kattintasz és a szerkesztőlécen beírsz egy cellahivatkozást, pl.: =C1 ekkor megjelenik egy igaz vagy egy hamis a C1-ben attól függően hogy be van-e kattintva.
A3= minimum dátum
A4= maximum dátumC1= igaz vagy hamis
E2: =HA(C1=IGAZ;$A$3;"")
E3 és ez a képlet lehúzható ameddig akarod: =HA(E2<$A$4;DÁTUM(ÉV(E2);HÓNAP(E2);NAP(E2)+1);"") -
gaborlajos
csendes tag
Sziasztok!
Biztosan nagyon triviális a dolog, de már nagyon este van.
Hogyan tudnám ki íratni a két dátum közti napokat, úgy hogy a jelölő-
négyszöget IGAZRA állítom.
Talán a kép is segít.Üdv:
-
Sziasztok!
SOS!
Adott egy szám oszlop. Ebben a számok egy tizedes jegyre vannak formázva, de ezek kerekített értékek, mivel az excel ugye sokkal több tizedesjegyet tudna kiírni. Jelen esetben ezek árajánlatok, amiket fel kell vinnem az SAP rendszerünkbe.
Viszont az a gond, hogy a vevő megkapta a terméket 13 Ft-ért, viszont az Excelben úgy van benn, hogy 13,454364. Tehát a kérdés, az, hogy valahogy meg lehet-e oldani, hogy vágja le effektíve a tizedesjegyeket.
Köszi
-
gyga
senior tag
worksheet-en on change eseményre van egy vba kódom:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("f26:f33")) Is Nothing Then Rejt
End Subami figyeli az f26-f33 cellákat.
Hogyan tudnám kibővíteni hogy pluszban az f80-f82 cellákat is figyelje? -
komyka
tag
Sziasztok!
Egyszerű lenne a kérdésem, viszont mégis kifogott rajtam: Van egy árlistám, benne sokezer termékkel, mindegyik termék egy saját csoporttal (kb. 110 db.). Ez év februárjában az árak százalékosan változtak, ezeket a százalékokat a csoportokhoz kaptam meg. Egy olyan képlet kellene ami az adott csoportokhoz tartozó árakat az árkedvezménnyel megszorozza.
Tehát most így nézek ki: Csoport, Eredeti ár, Csoport (a 110db felsorolva), kedvezmény%. Remélem érthetően írtam le a problémámat.
Előre is köszönöm.
-
KERO_SAN
aktív tag
Beágyazással csináltam
és amúgy 4 karakterről volt szó, az elején csak beírtam egy random számot .
Kétség kívül, a tiéd egy univerzális megoldás, de magamtól csak eddig jutottam
Csak nézegettem a függvényeket, és a leírások alapján ez megfelelőnek tűnt, és sikerült is.
Viszont legalább megismertem a tiédet is, máskor azt fogom használni
Szép napot.
-
Wyll
őstag
válasz
KERO_SAN #25287 üzenetére
Két kérdés:
- Nem igazán értem, hogy ez miért jó megoldás... Külön-külön így egyik sem ad jó megoldást. Csak ha az egyik a másik végeredményét használná.
Esetleg egybeágyaztad őket?
pl. =JOBB(BAL(A1;5);4)- Persze még ez sem jó, mivel balról 5 karakter az nem kevés egy kicsit?
Nem azért, hogy a saját lovamat dicsérjem, de az én megoldásom bármekkora számra működik, a tiéd viszont csak 4 számjegyűekre, azaz még a saját példádra sem jó -
KERO_SAN
aktív tag
Sziasztok!
A következő dologban szeretném a segítségeteket kérni:
Van egy táblám aminek egy oszlopában számok szerepelnek, amikkel dolgozni szeretnék. Csakhogy a szám előtt és után egy-egy idézőjel van. Tehát így néz ki : '16544' .
Mivel elég sok adatról van szó, macerás lenne egyenként eltüntetni kézzel ezeket. Esetleg van rá valamilyen függvény, amivel ez lehetséges?
Köszi szépen előre is.
-
bogee79
újonc
Sziasztok! A gondom az, hogy szeretnék excelből hivvatkozni egy word dokumentumra vagy könyvrtárra, de olyan módon, hogy a hivatkozás elindítható legyen cd-ről, és nem tudom előre mi lesz a meghajtó neve ahova behelyezem. Valamiféle hivatkozás követésre lenne szükségem. Van valami ötletetek? előre is köszönöm!
-
gyga
senior tag
Üdv.
Olyan képletet kellene összedobni ami:
Van A ill B munkalap
A lapon az A1 cellában van egy referencia érték B1-be meg majd lesz az eredmény.
A B lap 4 oszlopból áll rendezett lefelé csökkennek mind a 4 oszlopban az összegek.A B lapon a D.oszlopában valahol megtalálható mindig az A lap A1 cellájában levő érték.
Az A lap B1-es cellájában az az értéket kellene kiíratni ami a B lapon a D oszlopban levő érték sorában az A oszlopban van.
Tehát ha az A1 cellában 1000 van akkor meg keresi a B lap D oszlopában az 1000-et és ha ez pl a D10-esben van akkor az A10-es cellában levő értéket kiírja az A lapon a B1 cellába.
Megkötés: a B munkalap nem módosítható. -
Delila_1
veterán
válasz
DasBoot #25262 üzenetére
Nézd meg ezt:
Function LongDec2Bin(ByVal nIn As Long, Optional nBits As Long = 0&) As Variant
'J.E. McGimpsey műve, és Harlan Grove módosítása
Dim nReqBits As Long
Dim sOut As String
Dim sBit As String
Dim bNeg As Boolean
Dim i As Long
If nIn < 0& Then
bNeg = True
nIn = -(nIn + 1&)
End If
If nIn = 0& Then
nReqBits = 1&
Else
nReqBits = Int(Log(nIn) / Log(2&)) + 1& - bNeg
End If
If nBits <= 0& Then nBits = nReqBits
If nBits >= nReqBits Then
If bNeg Then
sOut = String(nBits, "1")
sBit = "0"
Else
sOut = String(nBits, "0")
sBit = "1"
End If
For i = nBits To (nBits - nReqBits + 1&) Step -1
If (nIn - 2& * (nIn \ 2&)) > 0 _
Then Mid(sOut, i, 1&) = sBit
nIn = nIn \ 2&
Next i
LongDec2Bin = sOut
Else
LongDec2Bin = CVErr(xlErrNum)
End If
End Function -
DasBoot
aktív tag
válasz
Fire/SOUL/CD #25268 üzenetére
Köszönöm a válaszaitokat.
-
Fferi50
Topikgazda
válasz
Gyufaaa #25270 üzenetére
Szia!
Ha esetleg megpróbálnád behelyettesíteni a Te celláidat az általam írt általános javaslatba:
"Képlet b1-re =fkeres(a1;lista;1;0), ha a1 a kiválasztó cella, a lista helyére írd a tényleges címét (pl. Z1:Z20, vagy ha névvel van, akkor a nevet)."
Nálad a lista a C5:C9 ben van, a hozzátartozó értékek pedig a D5:D9-ben.
A kiválasztó celláid az F4:F7, adatcelláid a G4:G7
Ez alapján a módosított képlet a G4-re: =fkeres(F4;$C$5:$D$9;2;0)
Ezt pedig lehúzhatod a G7-ig.Az egyetlen kis módosítás, hogy az Fkeres tartomány 2 oszlopos és a második oszlopban kell keresnil.
Üdv.
ÉS BOCS Fire.
-
válasz
Gyufaaa #25270 üzenetére
Adatok és Legördülő menü
G4 képlete =FKERES(F4;$C$5:$D$9;2;HAMIS)
Másold le a cellákat -
Gyufaaa
veterán
válasz
Fferi50 #25266 üzenetére
Ez sajnos nem jó. Megpróbálom a gondolatomat képpel illusztrálni.
Ezt szeretném megoldani.
C5-C9-ig fix adat és D5-D9-ig a fix adathoz tartozó érték. F4-F8-ig készülne egy legördülő lista, ami a C5-C9-ig fix értékekre mutat és ha ezt változtatom, akkor G4-G8-ig cellákban a fix adathoz tartozó érték jelenjen meg.
Tehát, ha F4-ben a legördülő listában kiválasztom C7 értékét, akkor G4-ben jelenjen meg D7 értéke.
Remélem érthető a levezetés.
-
válasz
Fire/SOUL/CD #25268 üzenetére
Megírtam 32bites számokhoz is, hátha kell...
=DEC.BIN(MARADÉK(A1/2^24;2^8);8) & DEC.BIN(MARADÉK(A1/2^16;2^8);8) & DEC.BIN(MARADÉK(A1/2^8;2^8);8) & DEC.BIN(MARADÉK(A1;2^8);8)
-
Fferi50
Topikgazda
válasz
DasBoot #25265 üzenetére
Szia!
Dec2Bin csak 10 számjegyig jó. E fölött be kell vetned az általános iskolában tanult ötletet - maradékos osztással megkeresed a számjegyeket és egymás mellé írod egy szövegben.
Azaz kiindulsz az adott számból: A1 cella. Mellé írod (B1 cella) a = maradék(A1;2) képletet. Alá pedig az int(A1/2) képletet, ezt végighúzod az oszlopokon addig, hogy az osztás eredménye 1 legyen.
Ezután a B oszlop eredményét visszafelé haladva összefűzöd.Persze makróval ez gyorsabb.
Üdv.
-
Fferi50
Topikgazda
válasz
Gyufaaa #25264 üzenetére
Szia!
A legördülő listád forrásában megkeresed fkeres függvénnyel.
Képlet b1-re =fkeres(a1;lista;1;0), ha a1 a kiválasztó cella, a lista helyére írd a tényleges címét (pl. Z1:Z20, vagy ha névvel van, akkor a nevet).
Ez viszont változik, ha változtatod az a1 cella értékét - ha ezt nem szeretnéd, akkor marad a makró.Üdv.
-
Gyufaaa
veterán
Sziasztok!
Van egy legördülő listám, amihez hozzá szeretnék rendelni úgy adatot, hogy a legördülő listában épp aktuálisan kiválasztott adat melletti cellában, annak fix értéke jelenjen meg. Nem kell összeadni vagy bármilyen műveletet végrehajtani, csak, ha módosítom a legördülő lista adatát, akkor a mellette lévő cellában az annak megfelelő fix érték jelenjen meg.
Ha valaki tudna segíteni megköszönném.
-
DasBoot
aktív tag
Szép napot, Mindenkinek!
Kérdésem az lenne, hogy hogyan lehetne megjeleníteni egy 10 karakternél hosszabb bináris számot megjeleníteni? Konkrétan pl. a 10899 decimális számot konvertálnám binárisba, de ez 10 karakternél hosszabb.
Köszönöm a választ. Üdv.: Yoe
-
Gabcii
újonc
Sziasztok!
Nekem egy olyan makrót kellene írnom, hogy van egy mappám abban automatikusan frissül minden nap 4fájl, de a régiek is megmaradnak.. nekem a 4legújabbra lenne szükségem mindig amit frissítéskor azonos munkafüzetbe annak külön munkalapjaira kellene tennie illetve még egy plusz excel dokumentum is kellene hozzá ami mindig ugyanaz. Ezt szeretném egyenlőre elérni, tudnátok nekem segíteni a megvalósításdban? Előre is köszönöm. -
Musuz
csendes tag
válasz
slashing #25258 üzenetére
Köszönöm a válaszokat.
Egyenlőre maradok annál a megoldásnál,hogy össze szedtem a számokat 1 tartományba és az
"átlagha" függvényt alkalmazom rá.Ez most így műkszik.A következő remek kis fejtörő:
Kiinduló értékhez hozzáadni/kivonni a változó érték és a dry/wet értékének szorzatát,attól függően,hogy
mit választok ki a legördülőben.ha dry akkor adja hozzá,ha wet akkor vonja ki belőle.
eddig a szumha és ha függvényekkel próbálkoztam sikertelenül. -
slashing
senior tag
válasz
slashing #25257 üzenetére
szerkesztési idő lejárta sry:
ennek így már tuti jónak kell lennie:
összeadjuk őket majd elosztjuk annyival ahány nem 0-ás cella van ebben a tartományban.... az átlag meg elmehet a fenébe=(SZUM(B25:C28;D19:E19;I19:J19;I13:J13))/(DARABTELI(B25:C28;">0")+DARABTELI(D19:E19;">0")+DARABTELI(I19:J19;">0")+DARABTELI(I13:J13;">0"))
-
slashing
senior tag
Csak kombinálni kéne az átlag és az átlagha függvényt, vagy nem?:
=ÁTLAG(ÁTLAGHA(B25:C28;">0");ÁTLAGHA(I13:J13;">0");ÁTLAGHA(D19:E19;">0");ÁTLAGHA(I19:J19;">0"))
-
Fferi50
Topikgazda
Szia!
Szerintem az Átlaghatöbb függvény tekintetében félreértés keletkezett. Az átlagolandó érték egy tartomány lehet (az első paraméter), a többi paraméter párban a feltétel tartománya és az ott érvényesítendő feltétel értéke. Ráadásul a feltétel tartomány mérete meg kell egyezzen az átlagolandó értéket tartalmazó tartomány mértékével. Viszont több feltételt is lehet érvényesíteni egyidejűleg - olyat is, ami nem az átlagolandó értékre vonatkozik, hanem annak egy jellemzőjére egy külön oszlopban.
A képről azt látom, hogy az első paraméter után is írtál feltételt, azt sajnos itt így nem lehet.
(És nem lehet több átlagolandó tartomány sem...)Üdv.
-
m.zmrzlina
senior tag
Ha jól értem, vannak értékpárjaid (min,max) amit átlagolni szeretnél, majd az átlagok átlagjait számolni.
Ez esetben egy értékpár csak akkor hagyható figyelmen kívül, ha min=0 ÉS max=0 mert min=0, max=100 esetében a vizsgált időszak átlaga 50
Ha így van én egy segédoszlopot használnék ahová kiszámítanám a részátlagokat (ami min=0 ÉS max=0 esetén simán lehet 0) majd azokat átlagolnám az =ÁTLAGHA()-val
-
Louro
őstag
Öööö, ha átlagha (bocsi, csak angol nyelven használom a függvényeket), akkor a formulában több intervallumot tudtommal nem lehet megadni. Csak egyet.
Ha több intervallumot akarsz átlagolni, akkor arra az AVERAGEIFS-et használnám valahogy így:
=AVERAGEIFS(D14:E14;">0";I14:J14;">0";D20:E20;">0";I20:J20;">0")
Ez úgy néz ki, hogy megadom, hogy D14:E14 között 0-nál nagyobb értéket vegye, I14:J14 között szintén és így tovább.
Magyarul ÁTLAGHATÖBB
=ÁTLAGHATÖBB(D14:E14;">0";I14:J14;">0";D20:E20;">0";I20:J20;">0")
Off: Pont most olvasgatom performancia témában és pont ez egy optimalizált függvény. Több IF-et összefűzve is megoldható lehetne, de minek, ha egy függvénnyel megoldható
-
Musuz
csendes tag
válasz
m.zmrzlina #25247 üzenetére
-
Musuz
csendes tag
válasz
m.zmrzlina #25245 üzenetére
Köszönöm
-
m.zmrzlina
senior tag
-
wolfman
veterán
válasz
Fferi50 #25242 üzenetére
Áh, a központból küldenek nekünk ki a telepre ilyen és hasonló táblázatokat, amivel dolgoznunk kell. Ez a fajta mentalitás, hogy ehhez értenek, majd a sz@rban találjuk meg mi az aranyat, ők már nem turkálnak bele. Mindegy is.
fél megoldással megcsináltam, ha így nem jó, nem is érdekel.
-
Musuz
csendes tag
Sziasztok.Átlag számításban kérnék segítséget.
Azt szeretném megoldani,hogy ha egy vagy több érték nulla,akkor azt az értéket ne vegye figyelembe az excel az átlagszámításnál.
Tehát ha mondjuk van 8 számértékem és abból mondjuk 3 az "0",akkor csak az 5 számértéket átlagolja.
Előre is köszi. -
Fferi50
Topikgazda
válasz
wolfman #25240 üzenetére
Köszi, ezzel csak annyit ellenőriztem, hogy - sajnos - valóban csak részösszegzett értékeket tartalmazó táblát adták oda nektek (ami azért valljuk be, elég pórias).
Sajnos nem látok jobb megoldást arra, hogy ne vesszenek el az A oszlopban levő "kulcsaid", mint az üres sorok kitöltése.
Talán próbáld meg a következő kis makrót:
Sub kitolti()
For xx = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(xx, 1).Value = "" Then Cells(xx, 1).Value = Cells(xx - 1, 1).Value
Next
End SubEz kitölti az A oszlop üres celláit az előtte levő cella értékével.
Utána használhatod az előzőekben írt módszeremet, a summa sorok eltávolítását (csak 2 szűrő, egy az E oszlopon, egy az A oszlopon - tartalmazza summa-, ami a szűrő fennmarad sor, törölhető), lehet két menet, de azért az elég gyors.
Üdv.
-
Fferi50
Topikgazda
Szia!
A frissítésre javaslom az application.ontime metódust.
Amikor a munkafüzetet megnyitod lefuttad az "időzítő programot" ami a következő:
Sub idozito()
kovetkezo=now +timeserial(0,10,0)
application.ontime kovetkezo, "frissito"
range("A1").value=kovetkezo 'ezt a cellát választhatod, melyik legyen, ami nem zavar sehol.
end subsub frissito()
[M](C)ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources(/C)[/M]
end sub
Amikor bezár a munkafüzet, akkor ki kell kapcsolni az időzítőt (ezért kell eltárolni a következő frissítés időpontját, mert egyébként nem tudod helyesen meghivatkozni:
Sub idozitoki
kovetkezo=range("A1").value
if timevalue(kovetkezo) >Time then
application.ontime kovetkezo,"frissito",,False 'a False előtt két vessző van.
end if
end subRemélem, segít.
Üdv
-
Wyll
őstag
Háj óll egen!
Van egy közös használatú xlsm-ünk (nevezzük A-nak), és ebben egy csomó külső xlsm-re (nevezzük ezeket B-nek) mutató link.
Az van, hogy:
Amikor az egyik B-t módosítja A-nak az egyik felhasználója, akkor őnála nyilván A értékei is megváltoznak (a "kiolvasott" értékek). Ezért nyilván idővel A többi felhasználójánál sikoltani kezd az excel, hogy heló van. Persze valójában nem a cellákban lévő képletek (linkek) változtak, hanem azoknak az eredménye (amik ugye B-kből olvasódnak ki), így hiába fogadunk el akár automatikusan minden változtatást, az nem azonos a linkek frissítésével, tehát az értékek A többi felhasználójánál nem fognak frissülni.Három dolog kéne:
- hogyan lehet az ilyen linkeket frissíteni?
ezt már sikerült megtalálnom. összes link frissítése:
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources- mi az, illetve van-e olyan esemény, amikor kiderül, hogy valaki valamit módosított? mert akkor a fenti sort abba egyből beletenném, és így lenne automata linkfrissítés is. valami ilyesmire gondolok:
Private Sub Workbook_SomebodyChangedSomething()
End SubAttól félek amúgy, hogy nincs
Ez esetben gondolom valamilyen manuális (VBA-s) ellenőrizgetés kell.. De valahogy azt is mindenképp automatizálni kéne. Erre ötlet? Nem lehet valahogy a már eleve automata x percenkénti frissítést kihasználni?
- meg lehet-e azt csinálni VBA-ból valahogy, hogy az excel ablaka a tálcán ilyen sárgán elkezdjen villogni:
-
wolfman
veterán
úgy csináltam meg hogy beszúrtam egy új oszlopot és számokkal összefűztem az A oszlopot a többivel. Így ahol végeszakad a különböző kódoknak nem folytatja az üres részekkel az A oszlop szerint. Jobbat nem tudok.
-
Delila_1
veterán
válasz
wolfman #25235 üzenetére
Próbáld meg, hogy az első sor minden cellájába írj be bármit, ameddig az oszlopaidban találsz adatokat. Erre a sorra teszel autoszűrőt.
Itt megnézheted, hogy az üres cellákat hogy lehet könnyen kitölteni a fölöttük lévő adatokkal. Azt hiszem, ilyen megoldást is javasolt valaki.
-
wolfman
veterán
válasz
Fferi50 #25234 üzenetére
Nem nagyon értem amit mondasz, de meg lehetne csinálni azt is mind a 6692 sorral, hogy beleírom az A oszlopban található megfelelő adatokat, de üljön neki ekkora volumenű sz@rságnak akinek 2 anyja van.
Most meg kitalálta kolléganőm, hogy én vagyok az infó szaki, oldjam meg, holnap reggelre kell.
-
Fferi50
Topikgazda
válasz
wolfman #25233 üzenetére
Szia!
A kép alapján ez egy részösszegezést tartalmazó táblázat - amiről "eltüntették" a szokásos szintjelző gombokat -.
Próbáld meg az adatok - részösszeg menüpontban az összes eltávolítása parancsgombot kiválasztani a megjelenő párbeszédpanelen.
Ha ez sikerült, ott marad - remélhetőleg - egy tovább már rendesen értelmezhető és használható adatállomány.Viszont az is lehet, hogy csak értéket és formázást megtartva másolták le az eredeti táblát - akkor érdemes lenne esetleg megkérni az eredeti táblát, ha lehet.
Ebből a formából elég macerás visszavadászni a "normál" adatokat.Megpróbálhatod, hogy az A oszlopban levő adatokkal kitöltöd a felettük levő üres sorokat.
Az E oszlopban levő SUMMA tartalmú sorokat szívfájdalom nélkül törölheted, mert az a felette levő információ összegzése, tehát a törlésével nem vesztesz semmit.
Az A oszlop kitöltése után az abban levő SUMMA tartalmú sorok is törölhetők.
Ezután már szerintem "normálisan kezelhető adataid lesznek.Gyanús viszont az állapotsorban levő Körkörös hivatkozás hibaüzenet, ami persze lehet, hogy nem is erre a munkalapra vonatkozik.
Üdv.
-
wolfman
veterán
Sziasztok!
Hatalmas segítség kell!!!
Cégnél bent kaptunk egy táblázatot, ami a következőképpen néz ki.Az A oszlopban vannak adatok, a mellette levő sorokban nincsenek adatok, csak ehhez képest 2 sorral lejjebb.
Szeretnénk szűrőt beállítani úgy, hogy az A oszlopot a többivel együtt lehessen vegyítve szűrni. Most meg tudom csinálni, hogy A oszlopra beadok szűrőt + legalul az üres opciót is hozzáadom, de ha már mondjuk dátum szerint is szeretném tovább szűrni, akkor a B oszlop szerint minden adat megmarad, de az A oszlop kitörlődik és így nem tudni melyik A oszlopban látott adathoz tartoznak a dátumok stb., mert egymás alá beb@ssza mindet közvetlen.Ezt lehet valahogy orvosolni? Remélem érthető.
-
Louro
őstag
Sziasztok!
A korábban említett fájl kicsit megnőtt. 450 soros a riport és a forrás kb. 10000 sor. Oszlopok száma a riportban 65 (2 hónap +- 2 nap).
Rengeteget guglizok, hogy mivel lehetne a fájlméretet csökkenteni és gyorsabb kalkulációra bírni, de eddig kb. úgy csináltam,ahogy javasolják is sok helyen.
TODAY() csak egy mezőben van. INDEX(), ISERROR nincs. Szinte csak COUNTIFS,SUMIFS és pár szimpla százalékszámítás. De így is 15 mega a fájl mérete.
Szerintetek lehet ezen faragni, gyorsítani? Ha a kalkulációkat makróba tenném, gyorsabb lenne? Bár COUNTIFS-et makrózni ....kb. ugyanaz lenne a step-by-step
Megtudnám csinálni, hogy nulla függvény legyen az excelben és 100% makró lenne a számítás, csak ez jó irány -e?
-
m.zmrzlina
senior tag
válasz
Certee #25228 üzenetére
Munka1 munkalap A oszlopában vannak a cikkszámok, B oszlopban az árak (vagy a cikkszámhoz tartozó másféle adat). Munka2-n ugyanilyen szerkeztetben a másik beszállító dolgai.
Munka3 B2 cellájának képlete:
=HAHIBA(FKERES(A2;Munka1!A:B;2;0);HAHIBA(FKERES(A2;Munka2!A:B;2;0);"A megadott cikkszám nincs a listában!"))
Munka3 A2 cellájába viszed be a keresett cikkszámot és a B2-ben kapod meg a hozzá tartozó adatot függetlenül attól, hogy melyik munkalapon találta meg a cikkszámot.
Ha nem létező cikkszámot adsz meg, vagy elgépeled - ami ugyanaz
- akkor hibaüzenetet ad.
-
Certee
senior tag
Van egy árajánlat készítő excel fájlom, amiben egy munkalapon vannak az árlisták, amiket megkapok a beszállítóktól (akár 10.000 sor is van / db). Eddig úgy csináltam, hogy egy munkalapra felvittem az összes cég árlistáját rendezve, így a számoló munkalapon egy keres függvénnyel a cikkszám beírása után megkaptam a kívánt adatokat.
Az lenne a kérdésem, hogy van e olyan megoldás, hogy az egyes cégek árlistáját külön külön munkalapra vigyem fel és a keres függvény az adott munkalapokon keressen és ne csak egy mukalapon.
A gondom az, hogy külön munkalapon egyszerűbb lenne adminisztrálnom a cégeket de a számoló részen viszont a cikkszám beírása alapján kéne kikeresnie, hogy melyik cég munkalapján van az adat.
Remélem érthetően tudtam elmagyarázni. -
Fferi50
Topikgazda
válasz
marcyman #25222 üzenetére
Szia!
Most komolyan, kipróbáltad már az átlaghatöbb függvényt:
D2 képlete: =átlaghatöbb(C:C;B:B;B2;A:A;A2)Ezt pedig végighúzod a D oszlopon. Már csak az a fontos, hogy az A oszlopban a dátumok egyforma módon legyenek beírva (nem a cellaformázásra gondoltam, hanem dátumként, illetve esetleg végig szövegként).
Üdv.
-
marcyman
aktív tag
válasz
Delila_1 #25190 üzenetére
Köszönöm a segítségeteket!
Csatoltam egy képet, amin demonstrálom hogy hogyan van most megcsinálva a táblázat.
Annyi a különbség, hogy felül szűrők vannak. Paraszt módon rászűrünk egy napra és egy cégre, és fogjuk a cellákat, összehúzzuk, leolvassuk az átlagukat alul és beírjuk, majd copy pasttel átnyomjuk az alatta lévő cellákba.Szóval ilyen kimutatás meg adatbázis nélkül ezt nem lehetne valahogy automatizálni? Az a baj, hogy a beszállítók mindig változnak, jön új hozzá akár naponta is.
A táblázatot igazából teljesen át kellene írni, de ha anélkül meg lehetne oldani az lenne a legjobb. -
Louro
őstag
válasz
Fferi50 #25219 üzenetére
Szia,
2010-es verzió. Egy alap lenne. A forrás ugyanabban az excelben lenne, hogy ne kelljen másik fájlt megnyitni az eredmények frissítésekor.
Holnap leprogramozom makróval, szerintem pár sornyi kód lesz csak.
(A makrótól azért félek, mert pár éve, amikor nem voltam jártas excelben, elég sok makrós fájlt kaptunk és sűrűn futottunk a készítőikhez, hogy hibaüzenet, nem fut, meg se nyilik. Szóval ezért törekszek a minél optimalizáltabb excelekre.)
-
Fferi50
Topikgazda
Szia!
1. Milyen excel verziód van?
2. Nem hiszem, hogy egy nyúlfarknyi makró miatt összeomlana bármelyik is - a sok-sok képlet annál inkább zabálja a memóriát és lassítja a betöltődést is (de ez már nyilván adottság).
3. Egy gombra kattintást talán még egy vezető is meg tud tenni.
4. Ha mégis problémásnak gondolod, akkor lehet a frissítést megnyitáskor automatikusan megoldani, verzió függő, hogy hova kell a makrót tenni - ekkor a vezetőnek csak az a dolga, hogy kiválasztja a neki tetsző tételt a listából. (És még az is megoldható, hogy csak akkor frissítsen, ha aznap még nem volt frissítve - jó ez egy kissé macerás is lehet, ha mindenki aki használja, rá is ment.)5. Azért írom külön, mert ez sem mindegy: minden vezető "saját különbejáratú fájlt" használ, vagy egy van közös használatban, vagy egy van, de egyszerre csak egyvalaki használhatja, vagy egy van és azt csak olvasási joggal lehet használni.
Ez utóbbi pont azért fontos, mert nem mindegy a makrós megoldás miatt sem és a használat normalizálása miatt sem.
Üdv.
-
Louro
őstag
válasz
Fferi50 #25215 üzenetére
Ööööö, ezt is ismerem...De....az a cél, hogy lekérdezek egy listát. Több ezer rekordból áll. Betolnám egy munkalapra. Másik sheet-en már rengeteg függvény van és ezek aszerint változnának, hogy mit választok ki a legördülőből.
Amit átvettem munkát, ott külön-külön sheet-eken valósították meg, ami azért nem jó, mert ugyanazt a rendszerezést lemásolták annyi sheet-re, amennyi a legördülőben lenne. Mivel én csak a forrást állítanám elő, így a vezetők választhatnák ki, hogy mire kíváncsiak.
(Így minél kevesebb manualitás lenne benne.)
A makrón gondolkodtam, de kb. 20-25 megás a fájl...de lehet kipróbálom azt a megoldást, hogy nyomnak egy gombra és befrissítené a legördülőt. (Csak nehogy összeomoljon a makró miatt
)
-
gdodi
csendes tag
Köszönöm, értem.
Én még csak ott tartok, hogy amit rögzítek, azt próbálom értelmezni. Viszont így sikerült rögzíteni, azért lett ilyen. Rögzíteni viszont csak azt tudtam, hogy kijelölök sorokat, majd másolom, vagy törlöm, itt nekem most az volt a lényeg, hogy nem tudtam megoldani, hogy egy külső változótól függően módosuljon a sorok mennyisége. Ezt formailag meg lehet adni valahogy? Arra gondolok, hogy van egy "s" számú sorom, ami időnként változik, most mindegy miért. Azt szeretném elérni, hogy mondjuk a 10. sortól egy s számú sort másoljak, vagy töröljek, azt meg lehet adni valami olyasmi formátumban, hogy Rows(10:s), vagy ilyen nincs? Persze próbálkoztam, de csak hibaüzenetet kaptam.
Azt is szeretném megkérdezni, hogy van valamilyen letölthető anyag, ami segítene a tanulásban?
Köszi! -
slashing
senior tag
válasz
slashing #25214 üzenetére
kipróbáltam teljesen jó és ahogy Feri is mondja csak egy billentyűt kell hozzá rendelni:
nálam az "E" oszlopba kiszűri ott van egy tartomány elnevezés amit a data validation-be hivatkozok meg.
usor = Application.CountA(Columns(1))
Range("A1:A" & usor).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Columns _
("A:A"), CopyToRange:=Range("E1"), Unique:=Trueez a névkezelő képlete
=ELTOLÁS(Munka1!$E$2;0;0;DARAB2(Munka1!$E:$E)-1;1)
-
Fferi50
Topikgazda
Szia!
Szerintem vagy Te bonyolítod túl a kérdést, vagy én nem értettem meg.
Javaslat:
Excel verziótól függően:adatok - irányított vagy speciális szűrés, a megjelenő párbeszéd panelen kijelölöd az adott oszlopot - bejelölöd, hogy más helyre másolás, szűrőtartomány az oszlop fejléce (remélem van neki, ha nincs adni kell). Hova másolja helyre beírod azt az 1 cellát, ahol szeretnéd, hogy kezdődjenek az adatok, majd bejelölöd a csak az egyedi rekordok megjelenítése. Ezután OK. A kívánt helyen megjelenik az a pár egyedi tétel, ami az adott oszlopban van.A beviteli mező adatérvényesítésénél pedig beírod a listához ennek tartománynak a címét.
Ha mindezt lerögzítetted egy makróban, máris megvan az alapod. Hozzárendeled egy billentyűhöz és ha szükséges, akkor lefuttatod ismét.
Remélem, jól értettem a feladatot (vagy legalább az irányt....)
Üdv.
-
slashing
senior tag
csak elgondolás szinten makróval:
kell egy makró ami kiszűri az egyedi értékeket az adott oszlopból valahova(tökmindegy hova) ahova kiszűri oda kell csinálni névkezelővel egy dinamikus tartományt és ezzel megkapjuk a leggördülő lista elemeit. Egy dolgot kell még meghatározni hogy a szűrős makró mikor fusson le.... minden fájl megnyitásakor vagy adott cella megváltozása esetén....
-
Louro
őstag
Jaj de rég voltam már itt.
Csak, hogy szivassam magam, mindig találok ki újabb és újabb feladatokat magamnak és rengeteg guglizás után általában meg is van az eredmény, de a distinct-tel szívok nagyon. Az alap már megvan...INDEX-szel kell játszani. De....
A kitűzött feladat megvalósítható?
Adott egy oszlop, amiben van mondjuk 5 egyedi (unique) érték. Valamelyik 500x, másik 1500x, harmadik 345x szerepel az oszlopban. Egy olyan legördülőt szeretnék készíteni, ahol az értékkészlet az 5 elemből áll.
Gondolkodtam olyan megvalósításban is, hogy generálok egy pivot-ot és a listát a pivot elemeire készítem. De mivel a pivotot frissíteni kellene - mert a lista változhat, néha 4, néha 6-7 elemből állna -, hogy az elemszám is változzon hozzá.
Megoldható data validation-nel vagy ilyen nagyot már inkább ne álmodjak?
Üdv,
Csabi -
Wyll
őstag
Arra gondolj majd mindig, miközben a VBA-t tanulod, hogy kijelölni csak nekünk embereknek kell a cellákat, de az excel-nek nem. Az excelnek nem kell előbb kijelölni valamit, hogy azután tudja törölni a kijelölést; hanem egyből lehet neki azt mondani, hogy a valamit töröld.
Tehát pl.
Columns("G:L").Select
Selection.Delete Shift:=xlToLefthelyett:
Columns("G:L").Delete Shift:=xlToLeft
Ez igazából az excelnek meg a vba-nak az objektumorientáltságából következik, de nem akarok túl csúnyákat mondani. A lényeg, hogy ez a szemlélet az egész excel vba programozást átitatja.
Ja, és használd
gombot hsz írásakor!
-
gdodi
csendes tag
válasz
m.zmrzlina #25204 üzenetére
Még kidolgozás alatt van az egész elképzelés, több szempontból kell adatokat kigyűjteni több táblázatba. Erre szükségem is van, és szeretném megtanulni is ezt a programozást. Jelenleg ennyi az egész:
Sub Makró00()
'
' Makró00 Makró
''
Rows("1:1").Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Range("A1").Select
ActiveSheet.PasteSheets("tmp").Select
Dim eleje As Long
Dim vege As Long
eleje = 2
vege = Cells(1, 9) + 1
Worksheets("tmp").Rows(eleje & ":" & vege).Copy Destination:=Worksheets("Munka2").Rows(eleje & ":" & vege)
Worksheets("tmp").Rows(eleje & ":" & vege).Delete Shift:=xlUp' A munkalap formázása és átnevezése
Sheets("Munka2").Select
Columns("A").Select
Columns("A").EntireColumn.AutoFit
Columns("G:L").Select
Selection.Delete Shift:=xlToLeft
Sheets("Munka2").Select
Sheets("Munka2").Name = "00"
Range("A1").SelectEnd Sub
Ezt szeretném még tovább bővíteni. Remélem menni fog.
Ha mégsem menne, megint segítségért folyamodok.
-
gdodi
csendes tag
válasz
m.zmrzlina #25201 üzenetére
Tökéletes!
Erre volt szükségem, ez már nekem is kezelhető, be tudtam illeszteni oda, ahol szükségem volt rá.
Nagyon köszönöm!!! -
gdodi
csendes tag
válasz
m.zmrzlina #25201 üzenetére
Köszönöm a segítséget, kipróbálom!
Egy hivatkozott cellából veszek egy számlált változót. -
m.zmrzlina
senior tag
Sub masol()
Dim eleje As Long
Dim vege As Long
eleje = 2
vege = 4
Worksheets("Munka1").Rows(eleje & ":" & vege).Copy Destination:=Worksheets("Munka2").Rows(eleje & ":" & vege)
Worksheets("Munka1").Rows(eleje & ":" & vege).Delete Shift:=xlUp
End SubA fenti pár sor áthelyezi a Munka1 2.-4. sorát a Munka2 2.-4. sorába. Pontosabb megfejtéshez tudni kellene, hogy hogyan szeretnél értéket adni az eleje és vége változóknak.
Új hozzászólás Aktív témák
Hirdetés
- OTP Bank topic
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- Google Pixel topik
- Honor 400 Pro - gép a képben
- Proxmox VE
- Személyesen Zuckerberg toborozza a szuperintelligenciát építő AI-csapatot
- OFF TOPIC 44 - Te mondd, hogy offtopic, a te hangod mélyebb!
- TCL LCD és LED TV-k
- Geri Bátyó: B550 szűk keresztmetszet, de mi és miért?
- További aktív témák...
- Kaspersky, McAfee, Norton, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Sea of Thieves Premium Edition és Egyéb Játékkulcsok.
- Vírusirtó, Antivirus, VPN kulcsok
- Assassin's Creed Shadows Collector's Edition PC
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Maximális teljesítmény és biztonság, csak az ARCTIC mx-4-el! Adj új erőt a gépednek!
- BESZÁMÍTÁS! MSI MAG321QR 32 165Hz WQHD 1ms monitor garanciával hibátlan működéssel - használt
- ÁRGARANCIA! Épített KomPhone Ryzen 5 5500 16/32/64GB RAM RTX 4060 8GB GAMER PC termékbeszámítással
- Samsung Galaxy A14 64GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest