Hirdetés
-
LOGOUT.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
-
Mutt
senior tag
válasz lacid90 #15981 üzenetére
Hello,
A megadott adatok alapján faragtam a kódon és felraktam egy mintát ide.
A kód pedig így néz ki, továbbra is egy Backup munkalapra menti a módosításokat:
Option Explicit
Public vEredeti 'ez tartalmazza majd az eredeti értéket
Private Sub Worksheet_Activate()
'ha megnyitjuk a lapot akkor egyből jegyezzük meg hogy mi van a B1 cellában
vEredeti = ActiveSheet.Range("B1").Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Const vBackupSheet As String = "Backup"
Dim vLastRow
Dim wsNew As Worksheet
Dim wsCurrent As String
'ha a C1 cella értéke 0 vagy üres
If ActiveSheet.Range("C1").Value = 0 Or ActiveSheet.Range("C1").Value = "" Then
'megnézzük hogy létezik-e a munkalap ahova a korábbi értékeket mentjük
On Error Resume Next
Set wsNew = Worksheets(vBackupSheet)
If Err Then
wsCurrent = ActiveSheet.Name
Set wsNew = Sheets.Add
With wsNew
.Name = vBackupSheet
'ha akarod akkor a lenti sorral rejtetté tudod tenni a lapot
'.Visible = xlSheetHidden
End With
Sheets(wsCurrent).Activate
End If
'megnézzük hogy melyik az utolsó sor a backup munkalapon
vLastRow = Application.WorksheetFunction.CountA(ThisWorkbook.Sheets(vBackupSheet).Range("A:A")) + 1
'ha már nincs a munkalapon több üres sor akkor leállunk a naplózással
If vLastRow > ThisWorkbook.Sheets(vBackupSheet).Rows.Count Then
MsgBox "Nincs több hely a mentésre!", vbOKOnly, "Hiba"
Exit Sub
End If
'adunk egy fejlécet a backup munkalapnak
If vLastRow = 1 Then
ThisWorkbook.Sheets(vBackupSheet).Range("A" & vLastRow) = "Eredeti érték"
vLastRow = vLastRow + 1
End If
'mentjük az eredeti értéket és hogy melyik cellából jött
ThisWorkbook.Sheets(vBackupSheet).Range("A" & vLastRow) = vEredeti
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'ha az A1 cellára lépünk, csak akkor jegyezzük meg a B1 értékét
If Target.Address = "$A$1" Then
vEredeti = ActiveSheet.Range("B1").Value
End If
End SubAmi pluszt beletetettem, hogy a munkalap megnyitásakor már megjegyzi az eredeti értéket, mivel előfordulhat az az esete hogy éppen az A1 cellában állsz és az értéket felülírod mozgás nélkül.
Fontos, hogy a makró csak akkor műkődik ha az A1 cellába mindig visszamész, vagyis ha mindig a szerkesztősorban változtatod a cella értékét akkor nem fog műkődni mert a cellából nem mész el.üdv.
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Mutt
senior tag
válasz -Mike- #16000 üzenetére
Hello,
Többen is dobtak be jó megoldásokat, én is csináltam egy változatot rájuk. Innen letölthető.
A tökéletes DARABTELI (COUNTIF) megoldás helyett azonban egy array (tömb) képletet használtam, mivel rövidebb annál. Pl. a skandinávnál (7 szám esetén már elég látványos).
DARABTELI változat:
=DARABTELI(C2:I2;$J$1)+DARABTELI(C2:I2;$K$1)+DARABTELI(C2:I2;$L$1)+DARABTELI(C2:I2;$M$1)+DARABTELI(C2:I2;$N$1)+DARABTELI(C2:I2;$O$1)+DARABTELI(C2:I2;$P$1)Array változat:
{=SZUM(DARABTELI(C2:I2;$J$1:$P$1))}Az array változat pont úgy működik mint a normál, csak nem egy értéket, hanem egy tömböt add vissza.
pl. {0;1;1;0;0,0;0} ami azt mondja hogy a második és harmadik húzott számot eltaláltuk, a többit nem.
Ezeket már csak össze kell adni a végeredményhez.A skandinávnál mivel lehet a gépi és kézi-húzásban is találatunk, ezért ott lehet számolni mindkettőre a találatokat. Vagy a képleteket összevonva egy oszlopban (a példámban S) számolni és kiválasztani a jobbat.
A Jóker-en biztos van rövidebb megoldás, de rövidítve leírom hogy mit alkottam:
1. Összefűzöm (a &-jel lehet használni az ÖSSZEFŰZ függvény helyett) előbb az utolsó 2 számot, majd összehasonlítom a szintén összefűzött 2 referencia (tipp) számokkal. Az eredmény vagy IGAZ vagy HAMIS lesz (1 vagy 0 számokkal).
2. Az eredményt szorzom 2-vel, hogy tudjam ha 2 találatom van. Az eredmény lehet 0=2x0 vagy 2=2x1.
3. Összefűzöm a 3 utolsó számot és a 3 refernciát, szintén összehasonlítom és az eredményt szorzom 3-al.
4. Ezt végigcsinálom 6-ig.
5. A kapott számokból kiválasztom a maximumot, így tudjuk meg hogy mennyi volt a maximális egyezés.üdv.
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Dumamatyi
csendes tag
Sziasztok!
Segítséget kérnék, Excelbe szeretnék készíteni egy határidő figyelőt, amelynek a lényege az lenne, hogy az adott határidő lejárata előtt 1 hónappal sárgává változzon a határidőre vonatkozó cella színe, a határidő lejáratakor a határidőre vonatkozó cella színe pedig pirosra váltson át.
Ezt, hogy tudnám a legegyszerűbben megoldani?Köszönöm előre is!
-
Excelbarat
tag
Hi, már a 2013-as office-al csináltad? vagy miért .xlsb a kiterjesztés? -vagy a "b" mire vonatkozik?
Kicsit még megfűszerezhetted volna egy gyakoriság fv-vel hogy egy helyre kiírja hogy az egyes találatokból hány darab van, így nem kell görgetni hogy végignézd hány találat lett volna a számokkal.
Ezt a szum+darabteli kombót hogy sikerült összehoznod? hiába csinálom tömbfüggvényként nem jön össze 1 sornál még csak csak de az összesre már nem működik ahogy rádobom a ctr+shift+entert nem módosítja a változókat és minden sorban csak az első sorhoz viszonyít... értsd=SZUM(DARABTELI(C2:G2;$C$1:$G$1))
szóval minden sorban a C2:G2 sorhoz viszonyít pedig nincs rajta dollár.... -
Csontoshun
tag
üdv! nekem egy olyan kérdésem lenne hogy (excel 2010ben) hogyan lehet megcsinálni azt hogy adott üres K mezőbe írjam be egy I mezőben (index függvénybe meghatározott hivatkozás) (jelen esetbe az "Almaleves") és a feladat az hogy K-ba határozzam meg az akciós árat ("G" oszlopből amelyek sima szorzás és osztás). remélem érthető a fogalmazás KÉP
[ Szerkesztve ]
"->, *, & "
-
Mutt
senior tag
válasz Dumamatyi #16003 üzenetére
Hello,
Feltételes formázással (Conditional formatting) tudod megtenni a színezéseket. Mindegyik esetben a MA() [TODAY()] függvényre lesz szükséged. A példákban a B1-es cellában van a határidő, ezen a cellán állva kell beállítatni a feltételes formázást a lenti függvényeket használva és a hozzájuk tartozó kitöltési színt kiválasztva.
...adott határidő lejárata előtt 1 hónappal sárgává...
=$B$1-MA()<31...határidő lejáratakor...
=MA()>=$B$1üdv.
[ Szerkesztve ]
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
poffsoft
veterán
válasz Csontoshun #16005 üzenetére
nem tiszta...
talán az fkeres lesz a te fv-nyed...[ Szerkesztve ]
-
Mutt
senior tag
válasz Excelbarat #16004 üzenetére
Hello,
..már a 2013-as office-al csináltad? vagy miért .xlsb a kiterjesztés?
2010-es Excelben készült, az .xlsb a bináris formátuma az újabb Exceleknek (hasonló mint a régi .xls).
Előnye hogy kisebb helyet foglal és gyorsabban is dolgozik vele az Excel, tartalmazhat makrót is. A hátránya viszont hogy zárt formátum, tehát más nem MS Office csomagok nem 100%-osan támogatják....hiába csinálom tömbfüggvényként nem jön össze 1 sornál...
Pedig jól csinálod tehát CSE (Control + Shift + Enter) a bevitele; én is csak az első sorra vittem be aztán lehúztam a többi sorra és csinálta rendesen.
Nem tudom nálad miért nem akarja magától.üdv.
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
poffsoft
veterán
válasz Csontoshun #16008 üzenetére
"az lenne hogy Indexbe megvan adva a neve ": bocs, de még mindig nem értem?
az fkeres súgóját nézted?[ Szerkesztve ]
[ Szerkesztve ]
-
Mutt
senior tag
válasz Csontoshun #16008 üzenetére
Hello,
Ahogy poffsoft írta az FKERES (Vlookup) függvény kell neked.
pl. K5-be ez mehet =FKERES(I5;B:G;6;0)Az alábbi módon műkődik:
- a B:G tartomány első oszlopában (ez ugyebár az B oszlopban lévő index) megkeresi azt a sort ahol az I5 cellával egyező érték van,
- ebből a sorból a 6-ok értéket adja vissza (ez a G oszlopban lévő számok),
- a 0 a végén azt mondja meg hogy csak pontos egyezésnél ad vissza értéket.üdv.
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Geryson
addikt
Hm, vasárnap esti szokásos problémám van...
E oszlop = Forint bevétel
F oszlop = Euro bevétel
G oszlop = Euro árfolyamH oszlopba próbálom a következő képletet írni:
- Ha üres az E, akkor F * G
- Ha üres az F, akkor E
- egyéb esetben E+(F*G)Ha mind a kettő megvan (azaz itt az egyéb eset), akkor működik, egyéb esetben viszont "ÉRTÉK" hiba. Mit rontok el? Mondjuk időközben pont eszembe jutott, hogy kellene még egy, ha mind a kettő üres, de ez már részletkérdés.
=HA(E4=0;F4*G4;HA(F4=0;E4;(E4+(F4*G4))))
Rinderkennzeichnungsfleischetikettierungsüberwachungsaufgabenübertragungsgesetz
-
poffsoft
veterán
='C:\Jelentések\[Költségvetés.xlsx]Éves'!C10:C25
Megjegyzés: Ha a másik munkalap vagy munkafüzet neve betűkön kívül egyéb karaktereket is tartalmaz, a nevet (vagy az elérési utat) nyomdai szimpla idézőjelek között kell megadnia.
Legegyszerűbben az I5-be írj egy = jelet, aztán az egérrel klikkelj a C1-re, aztán enter...
[ Szerkesztve ]
[ Szerkesztve ]
-
Regirck
senior tag
Sziasztok, egy kis segítséget szeretnék kérni.
Adott egy üzlet beosztás táblázata, ahová felkerül az, hogy ki, hogyan dolgozik.
Például: X 8-14 Y 14-22
Szeretném ha az Excel megtudná mondani az eltelt órákat ez alapján és összeadná, úgyhogy a hét minden napját figyelembe venné az illetőnél és egy kis rubrikában a végén összeadná (illető heti óraszáma).
És szeretném ha egy nap alatt is összeadná ezt és ott pedig mutatná, hogy azon a napon hány órát töltöttek az alkalmazottak munkával.
Sajnos ezt eddig egy primitív és időigényes egyenlettel tudtam helyettesíteni, de ha valaki erre írna valami egyszerűbbet, ahol csak kijelölöm, hogy melyik cellákat nézze és ő tudni fogja, hogy 8-14 az 6 óra és megadom a következő cellát amin mondjuk 14-22 van akkor ott tudja, hogy ott 8 óra telt el és a végén összeadná.
Lehet kicsit nyakatekerten fogalmaztam...
Ezt a képletet szeretném helyettesíteni (plusz-mínusz előfordul:
=(20-8)+(20-11)+(22-8)+(22-11)+(18-8)+(22-15)+(18-9)
egy olyanra, ahol nem én írom be fordítva kivonással az órákat, hanem csak kijelölöm a cellát teszek egy pluszt és kész. Szabadnapot nagybetűvel OFF-nak szoktam írni ez lehetőség szerint ne kavarjon be neki, de ha ez már túl sok kérés akkor egyszerűen nem írok oda semmit.
Nagyon szépen köszönöm a segítséget!
-
baderoli
tag
Sziasztok! A segítségeteket szeretném kérni több dologban. Szeretnék készíteni egy adatbázist , amibe ha beírok egy nevet hozzá rendel egy születési évet a mellette lévő oszlopba. Minden nap meg kell csinálnom különböző nevekkel és nem tudom hogy el lehet-e menteni előre a születési éveket.
Előre is köszi! Üdv!
-
sztanozs
veterán
válasz baderoli #16023 üzenetére
Nem egészen értem, milyen neveket kell beírni és milyen születési éveket kell írni?
Minden nap ugyanazokat a neveket (vagy ugyanabból a létező csoportból) kell felvinni, vagy minden nap új neveket viszel fel?JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
-
psg5
veterán
Üdv!
Valahol tudom excelben van naptár funkció, ami egész jól használható, de most nem találom? Merre van?
Valamint egy napos naptár is van benne? 24-órával?F.K.T.
-
sztanozs
veterán
Naptár az szerintem nincs, legfeljebb naptár kontroll - amit kitehetsz formra, vagy a munkalapra VBA-val, szükség esetén.De találtam valamit neked (ez valami beépülő modul):
Displaying Calendar Automatically
By default Pop-up Excel Calendar displays an in-cell icon button when you click a date cell. You need to click the in-cell icon button to open the calendar on which you click to select the date value.The "Display calendar automatically" option on the Settings window saves one click by displaying the calendar automatically. If you check this option, the calendar is displayed automatically along with the in-cell icon button whenever you click a date cell.
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
baderoli
tag
Azt meg tudom csinálni,hogy a beírandó adatok az munka 1-en van, az adatbázis a munka 2-ön, a képlet kikeresi a munka 2-ön lévő névhez tartozó évszámot és beírja a munka 1re? Ez bonyolult?
ui: nagyon kezdő vagyok excel-ben
[ Szerkesztve ]
-
Geryson
addikt
válasz Excelbarat #16017 üzenetére
Hát nálam sajnos nem megy. De először is egy kérdés, a második HA függvénynél nem lenne elég egy HA(ÜRES(F4);E4...? merthogy ott bent maradt egy =0 is, de az nem túl sok már? Tehát egyszer ÜRES is és egyszer =0 is?
Mondjuk én ezt utólagos engedelmeddel kijavítottam, de még így sem megy tehát van az E oszlopban érték de nincs az F oszlopban és mégis ÉRTÉK-et hoz eredményként...
Rinderkennzeichnungsfleischetikettierungsüberwachungsaufgabenübertragungsgesetz
-
-
Geryson
addikt
Egyszerűen nem is értem, csináltam egy ilyen képletet:
=HA(ÉS(ÜRES(E3);ÜRES(F3));0;HA(ÜRES(E3);F3*G3;HA(ÜRES(F3);E3;(E3+(F3*G3)))))
És nem használja! Nem azt mondja a képlet, hogy ha üres az E3 és az F3, akkor 0 legyen az eredmény? Na már itt bukik a dolog. Egyetlen képletet használ, az utolsót. Azaz ha mindkét cellában van érték, akkor összeadja és szoroz.
[ Szerkesztve ]
Rinderkennzeichnungsfleischetikettierungsüberwachungsaufgabenübertragungsgesetz
-
baderoli
tag
Örök hála! Valszeg zaklatlak még, egy darabig el leszek, míg össze áll a fejembe és felviszem az adatokat.
Másik téma: Készítettem egy csomag nyilvántartó táblázatot. Már beillesztettem gombokat, rendeltem hozzá makrót (sorba állítás név, dátum és csomagszám szerint) Egy olyan gombot szeretnék még ,hogyha megnyomom akkor abba a cellába amin állok ,beírja az aznapi dátumot.
-
Excelbarat
tag
válasz Geryson #16038 üzenetére
Sry az első javaslatomnál tényleg ott maradt egy fölösleges =0 ha jól látom azóta bővítetted is az és fv-el amúgy megnéztem az az utolsó előtti megoldásod és működnie kell! ez lenne az:
=HA(ÉS(ÜRES(E3);ÜRES(F3));0;HA(ÜRES(E3);F3*G3;HA(ÜRES(F3);E3;(E3+(F3*G3)))))
pár számmal kipróbáltam és nekem tökéletesen működött esetleg valahol egy fölös space lehetett (mármint cellában és azért nem lett jó az üres() fv de a E3="" sem rossz megoldás talán gyorsabb is begépelni -
Excelbarat
tag
válasz baderoli #16023 üzenetére
Itt egy lehetséges megoldás:
[név - dátum kereső]
Ilyenre gondoltál?
=HA(ÜRES(A2);"";FKERES(A2;'Név adatbázis'!$A$2:$B$400;2;0))$A$2:$B$400 - a nevek és dátumok cellái ahonnan kikeresendő
[ Szerkesztve ]
-
baderoli
tag
válasz Excelbarat #16045 üzenetére
Köszi! Már kaptam egy megoldást,de ezt is ki fogom próbálni!
-
zup
csendes tag
válasz poffsoft #16035 üzenetére
Szóval akkor még egyszer megpróbálom:
szeretném megjeleníteni, hogy adott ember, adott napon megjelent-e, az eredményt egy naptárszerű táblában kéne megjeleníteni. (összesítés is jól jöhet, illetve auto formázás)
Példa:
megjegyzés:
A-C oszlop az adattábla kinézete - ezt így kapom
F-től M oszlopig pedig ahogy kb ki szeretném, hogy nézzen -
Geryson
addikt
Van egy piszkosul egyszerű függvényem:
=HA(D7>0;D7*$S$5;"") vagy
=HA(D7="";D7*$S$5;"")A D7-ben mondjuk úgyszintén egy képlet van és üres string ha nincs eredmény, de szerintem ez mindegy. A lényeg viszont, hogy a célcellában nem üres stringet ír (ahogy a fenti képletből kérem - ha nincs eredmény), hanem ÉRTÉK hibát. De miért is csinálja ezt?
Rinderkennzeichnungsfleischetikettierungsüberwachungsaufgabenübertragungsgesetz
-
Mutt
senior tag
Hello,
A SZORZATÖSSZEG (SUMPRODUCT) fügvénnyel tudod ezt megoldani. Az I5-be ezt írd:
=SZORZATÖSSZEG(($A:$A=$H5)*1;($B:$B=I$4)*1;$C:$C)..vagy ha vérprofiként másoknak is akarsz imponálni, akkor ezt:
=SZORZATÖSSZEG(--($A:$A=$H5);--($B:$B=I$4);$C:$C)Az egyedüli "hátránya", hogy akkor is nullát kapsz ha az adott kombináció nincs az oszlopban.
A másik megoldás a fenti hátrányt kiküszöböli, de kell hozzá egy plusz oszlop (amit akár el is rejthetsz).
A megoldás vmelyik keresés (FKERES vagy HOL.VAN) függvény használata, azonban ezek csak 1 feltétel szerint tudnak keresni, ezért a keresési feltételeket össze kell vonnod egy külön oszlopban.
pl. a D-oszlopban egy egyszerű összefűzése az A és B oszlopoknak megteszi.
Erre a keresési feltételre lehet már pl. egy HOL.VAN (MATCH) függvényt tenni és az eredményt INDEX vagy ELTOLÁS (OFFSET) függvénnyel kirakni.
=INDEX($C:$C;HOL.VAN($H5&I$4;$D:$D;0))Itt már menni fog, hogy azon kombinációk amelyek nem szerepelnek ott a #HIÁNYZIK (#N/A) értéket kapod, ezt pedig már tudod formázni a HAHIBA (IFERROR) vagy hasonló függvényekkel.
A kész fájlt letöltheted innen.
üdv.
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Excelbarat
tag
Az a probléma a kéréseddel hogy a forrásadataid nem éppen a legjobban vannak kategorizálva, ezen ha tudsz a továbbiakban változtass (ne ciklikusan ír(as)d fel az embereket - 3 ember aztán megint 3 aztán megint.... katasztrófális). Gondolom nem ez a pár adatod van hanem vagy 300-400 sorod ha tippelnem kell
De ne félj van megoldás a következő:
Elsőként kicsit variálni kell az igen nem mezőkön, méghozzá jobb felül 'keresés és kijelölés' - csere
az igen szót beírod alá pedig 1 -et írsz be majd az összes cseréje, ugyan ezt megcsinálod a nem szóval de ott vagy - ezt írod be vagy 0-t ez után már nem is bonyolult a dolog.
Következő lépés:
Kijelölöd az adatokat (az összeses fejléccel együtt) - beszúrás - kimutatás(bal szélen) ok(célszerű új munkalapot bejelölni)
utána bejön az új munkalap job oldalt pedig behúzod a megfelelő rublikákat a megfelelő helyre az értéknél pedig átváltasz összegzésre és kész is a kimutatás (annyi zavaró lehet hogy az 1-es jelöli a jelenlétet a 0 pedig a hiányzást) ezt már szépen formázhatod igényed szerint itt egy kép róla:
Írj ha valami nem érthető
Amúgy kimutatásban amint látható akár egyesével is kinyomtathatod hogy a többiek ne lássák egymást, szóval mindenkinek a saját jelenléti ívét adod a kezébe kinyomtatva
Új hozzászólás Aktív témák
Hirdetés
Állásajánlatok
Cég: HC Pointer Kft.
Város: Pécs
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest