Excel kérdés
Jelentkezz be a hozzászóláshoz.
Szöjük bele azt hogy:
ha A1 akkor a B-bõl nem kell adat és csak a C1 lehet
ha A2 akkor "ugyanaz mint elõbb"
ha A3 akkor "megint csak ugyanaz"
///talán a legegyszerûbb ha A1-tõl A3-ig ne számolgasson, azt ki lehet hagyni///
ha A4 akkor válasszon B-bõl, de csak C1 lehet
továbbiakban A5:A8ig Bbõl és Aból is bármit lehet.
Az igazi barát nem hátba... hanem mellbe döf!
Szeretném angoltanuláshoz bevetni a nagyságos Excel programot. Azt szeretném, hogy monnyuk az A oszlopban (A1:A7) van néhány meghatározás és a B oszlopban (B1:B10) is pár különbözõ. A feladás úgy nézne ki, hogy egy különálló helyen (C1) "gombnyomásra" válasszon ki az egyik és a másik oszlopból egyet-egyet véletlenszerûen, és azt írja szépen ki nekem.
Tessék ötletelni! 😄
Mármint lécci segyítsetek!
Köszi
Az igazi barát nem hátba... hanem mellbe döf!
A VB szerkesztõben Ctrl+g-re elõjön az Immediate ablak, annak az aljára másold be, és enterezd le. Mûködni fog.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
köszi, péntektõl nem voltam gépközelben.
Hát, most még épp küzdelmet folytatok, mert egyszer ment, de utána már az istennek nem, és nem is értem miért, ha hozzá sem nyúltam. Szóval megpróbálom visszafejteni, és jelentkezem, ha elakadtam. (o:
Köszi, mert tök nagyot segítettél ezzel!
Juci
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$A$1" Then
Dim WS As Worksheet, ter As String, lel As Variant 'Helyfoglalás
If Target = "" Then 'Adattörlés az A1-ben esetében
Cells(2) = "": GoTo Vége
End If
Set WS = Sheets("Munka1") 'Értékadások
ter = WS.Range("A1:B" & WS.Range("A1").End(xlDown).Row).Address
'Bevitt szám keresése az elsõ lap A oszlopában
Set lel = WS.Columns("A:A").Find(Target, LookIn:=xlValues)
If lel Is Nothing Then 'Hiba esetén
Cells(2) = "Nincs ilyen szám az elsõ oldal A oszlopában :-(": GoTo Vége
End If
WS.Range("X1") = WS.Cells(1): WS.Range("X2") = Target 'Szûrõtartomány
'Irányított szûrés
WS.Range(ter).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
WS.Range("X1:X2"), CopyToRange:=WS.Range("Y1:Z1"), Unique:=False
Cells(2) = Application.Min(WS.Columns(26)) 'Érték beírása a B1-be
WS.Range("X:Z").ClearContents 'Segédoszlopok tartalmának törlése
End If
Vége:
Application.EnableEvents = True
End Sub
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
A szûrés az Y:Z tartományba történik. A Z oszlop minimuma kerül a másik lap B1 cellájába. A makró végén törlöm az X:Z tartományt.
A szûrést végzõ sor:
WS.Range(ter).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
WS.Range("X1:X2"), CopyToRange:=WS.Range("Y1:Z1"), Unique:=False
Elõfordulhat, hogy olyan számot viszel be, ami nem létezik az elsõ lapon, ez az elõbb jutott eszembe, a makróban pedig nincs hibakezelés. Most nem érek rá, de késõbb, ha gondolod, megpróbálom megoldani.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
köszi, csak bénus voltam... )o:
Mûködik, és tök jól értelmezted a problémám. Akkor most jön az, hogy én kezdem el értelmezni a makrót, mert a kérésem egyszerûsített volt csak. (o:
De ha már az elvet megértem, reményeim szerint át fogom tudni írni, és idõvel megtanulom. ((o;
Remélem, jól értettem az eredeti kérdésedet, miszerint az elsõ lapon 1-1 szám többször is elõfordulhat az A oszlopban. 😊
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
lehetséges - sõt, biztos - hogy én vagyok a béna, de egyszerûen nem tudom hozzárendelni a laphoz a makrót. Eljutok odáig, amit mondtál, hogy fülön jobb klikk, kód megjelenítése, bejön a VB, de nem tudom, hogy mi lenne a jobb oldalon lévõ üres lap, mert nekem egy fehér jön be. Oda viszont hiába teszem, nem csinál semmit sem. )o:
Segíts kérlek, mert ezt jó lenne megtanulni is. (o:
És köszönöm az idõdet, a segítséget!
Ehhez az elsõ fülön az X:Z tartományba ideiglenesen adatokat kell felvennem. Ha ezek az oszlopok foglaltak nálad, írd meg, és távolabb teszem.
Az elsõ lapon az A1-ben és a B1-ben címnek kell lenni.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Dim WS As Worksheet, usor%, ter As String
Application.EnableEvents = False
Set WS = Sheets("Munka1") 'Ezt írd át a saját lapod nevére
usor% = WS.Range("A1").End(xlDown).Row
ter = WS.Range("A1:B" & usor%).Address
WS.Range("X1") = WS.Cells(1)
WS.Range("X2") = Target
WS.Range(ter).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
WS.Range("X1:X2"), CopyToRange:=WS.Range("Y1:Z1"), Unique:=False
Cells(2) = Application.Min(WS.Columns(26))
WS.Range("X:Z").ClearContents
Application.EnableEvents = True
End If
End Sub
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Van itt egy makró, ami végrehajtja.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim WS As Worksheet, ter As Range, kelt As Date, CV As Range
Set WS = Sheets("Munka1")
Set ter = WS.Range("A1:A" & Range("A1").End(xlDown).Row)
kelt = Application.Max(WS.Range("B1:B" & Range("A1").End(xlDown).Row))
If Target.Address = "$A$1" Then
For Each CV In ter
If CV = Target And WS.Cells(CV.Row, 2) < kelt Then
kelt = WS.Cells(CV.Row, 2)
End If
Next
Cells(2) = kelt
MsgBox "Megvan a legkisebb dátum"
End If
End Sub
Ezt a makrót a "másik fül"-höz kell rendelned, vagyis ahhoz, ahol a számhoz tartozó legkisebb dátumot akarod beírni a B1 cellába. A makróban a Set WS = Sheets("Munka1") sorban írd át a Munka1-et az elsõ lapod nevére.
Laphoz rendelés: lapfülön jobb klikk, Kód megjelenítése. A VB szerkesztõben, ahova így bejutottál, a jobb oldalon lévõ üres lapra másold be a fenti kódot.
A makró futásának az ideje attól függ, mennyi adat van az elsõ lapodon. Sok adat vizsgálata több ideig tart, ezért a végére tettem egy üzenetdobozt, ami jelzi, hogy megvan a legkisebb dátum.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Van egy másik fülöm, ahova az A1 cellába be szeretnék írni egy számot, és azt szeretném, hogy a B1 cellába egy függvény kikeresse az elsõ fül "a" oszlopa alapján a "b" oszlopból azt a dátumot, ami a legkorábbi.
Az FKERES függvény nem jó erre, mert az felülrõl a legelsõ találat dátumát adja meg nekem, és nem keres tovább. Kinek van erre ötlete?
Az A16 képlete: =HA(SZÁM(HOL.VAN($G$1;A1:A15;0));HOL.VAN($G$1;A1:A15;0);""), ezt jobbra másolod a D16 celláig.
Az E1 képlete: =HA(SZÁM(HOL.VAN($G$1;A1😄1;0));HOL.VAN($G$1;A1😄1;0);""), ezt lemásolod az E15-ig.
Az E oszlopban lesz a találat oszlopjele, a 16. sorban a sorszáma. Mindegyik az elsõ találat helyét jelzi.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
=INDEX(A1😄2;1;HOL.VAN(12;A2😄2;0))
képlet megadja a választ.
Ha viszont a karakterek az A1:A4, a számok a B1:B4 tartományban vannak, akkor a keresõ képlet
=INDEX(A1:B4;HOL.VAN(12;B1:B4;0);1)
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
b c d e
5 8 12 20
Az a kérdés hogy milyen betü áll a "12"-s számnál, és ezt a KERES() függvénnyel kell megoldani. Nekem hiányzik hiba jelzést ad.
természetesen a honap napjait figyelembevéve és összesitést is készitene a 24orás idökrol havi és éves lebontásba.
Remélem hogy nem olyan bonyolult, már probálkoztam, addig megy is hogy 24/72-re megvan a táblázat, de nem automatikus a kitöltése és a változásokat nem veszi figyelembe.
találtam a neten müszakbeosztásokat, de csak olyant ami napi ora lebontásba van, nekem olyan kéne ami egésznapra vonatkozik.
Esetleg az is megoldható ha beirok egy x-et a táblázatba akkor beszinezze a hátteret és automatikusan a melette lévö 3 cellát is más szinure?
Készítettem egy TEMPLATE excel fájlt. Ennek egyik munkalapja tele van OFFSET függvénnyel...ez tökéletesen mûködött kb. egy fél évig.
Most viszont egy ideje fogja magát és az összes offsetes függvényem /rengeteg van belõle/ átírja magát value-ra holott senki sem kérte ezt tõle. De csak az offset, pl a sima sum függvények mind megmaradnak.
Mitõl lehet ez szerintetek? Megõrjít, hogy itt szórakozik velem :-).
Köszi a segítséget elõre is!!
Asus M5A97 Evo, AMD FX8150 3,6 GHZ, 2X4 GB Kingston Hyper 1600 MHz CL9, Radeon R9-280X, 256GB Samsung SSD, 2x500 GB HDD, Asus VE247H Led
Azt szeretném megtudni, hogy hogyan lehet egy cellában csak a napot irja ki? Ugyan is csináltam egy táblázatot ami a szabadságokat számolja ki Pl: A1= 2011. 06.20 B1=2011. 06.29 és a C1 cellába a két dátum "külömbségét" napokban irja ki.
Elõre is köszönöm
Set mit = Range("A3")
Set hol = Range("A:C")
oszlop = Cells(1, 5) 'vagy oszlop=range("E1")
v = Application.WorksheetFunction.VLookup(mit, hol, oszlop, 0)
MsgBox v
End Sub
Vagy ha az Fkeres függvényt akarod beírni egy cellába:
Sub FKERES_1()
Range("D1") = "=VLOOKUP(A5,A:C,2,0)"
End Sub
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Hogyan tudok vb makróval Vlookup függvénynek cellahivatkozást megadni változóval?
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Pozitív: =SZUMHA(A1:A15;">0";A1:A15)
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Köszi.
A középsõ bekezdésben 2,1=1,1 és a 2=1
Úgy talán már kijön az egyenlet. <#nevetes1>#nevetes1>
Meg kell engedni, hogy több megrendelés "átlóghasson" egymásba akkor nagyobb a mozgástér (pl ha egy megrendelésben van 3db 2,1 m-es maradék és kell még 3db 2m-es akkor nem vágok le minden maradékból 10 centit hanem egy másik 6-os szálból megcsinálom a 2 métereseket. Így igaz marad 6,3m "hulladékom" de ezeket késõbb sokkal nagyobb eséllyel tudom eladni 100%-ban mint a 3 db 10cm-es maradékot.
Vagy lenne egy minimum méret ami alatt a megrendelõnek mindenképpen el kellene vinni (és persze kifizetni) a maradékot.
Nem véletlen hogy pl a kisebb vastelepeken szóba sem jöhet a darabolás mert a végén mindenképpen maradnak 10-100 centis darabok ami már ritkán kell bárkinek. Ez meg már inkább marketing mint Excel probléma.
Hogyan kell alkalmazni? Kimaradtam a pénteki infóórámból, érdekel hogy mi az.
Köszi!
PC konfigom a Be quiet! Pure Base 500DX White házban: GIGABYTE Z490 GAMING X, Intel i7 10700K 3.8 Ghz (5 Ghz) , 32 GB DDR4 RAM, NVIDIA GeForce RTX3080, Windows 10 Pro 64bit, HP Reverb G2
tehát a lényeg megkeresni a számokat, melyek összege 6, aztán kilõni azokat a számokat és továbbnézni a többire.. így 6os összeget hozó csoportokba rendezõdnek...
ezt meg csak makróval lehet vagy solverrel ha excelben akarod, de 24 tagszám felett elég lassú a sok lehetséges kombó miatt.
Lenne egy kérdésem:
Vannak 6 méteres szálanyagok és a megrendelõk különbözõ hosszúságúakat kérnek (1,1m 1,65m stbstb) és azt szeretném kiszámolni, hogy mennyi 6méteres szálra van szükség ezekhez a legkisebb anyagveszteséggel.
Elõre is köszönöm a válaszokat!
www.czekoart.hu
Adva van egy excel tábla, annak két füle. Ugyanaz a kimutatásvarázslóval létrehozott kimutatás, ugyanazokkal a sor és oszlopcímkékkel (adott ugye, hogy akkor a számok különböznek csak).
Ezekbõl a kimutatásokból készül mindkét fülön 1-1 kördiagram. Tök egyformán létrehozva, színezése automatikus, minden cikk különbözõ színû.
Miért van az, hogy az elsõn a színek amikor elfogynak az alapszínek, a következõk pasztell árnyalatúak lesznek, míg a a másodikon újra az élénk színek ismétlõdnek?!
Érti ezt valaki?!?
De legalább gyors voltam. XD
Van egy 200 soros a-z szélességû táblázatom, ahol valahol keletkezett egy körkörös hivatkozás.
Excel figyelmeztet, de a helyét nem adja meg.
Hogy tudom én ezt megtalálni?! Van valami hibakeresõ funkció? Mint a helyesírás-ellenõrzés az officeban mondjuk?
Ez viszont nem lesz így, ha az oszlop celláit feltételes formázással színezted, mert akkor az Excel nem a pillanatnyilag látszó színeket veszi figyelembe, hanem az eredeti, feltétel(ek)tõl független színeket veszi alapul. Ebben az esetben a makróban nem a háttér-, és karakter színeket kell megadni, hanem a feltételes formázásnál megadott kritériumokat.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 24 Then
If Target.Font.ColorIndex = xlAutomatic And (Target.Interior.ColorIndex = 6 _
Or Target.Interior.ColorIndex = -4142) Then
Target = "IGAZ"
Else
Target = "HAMIS"
End If
End If
End Sub
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
A makrót a lapodhoz rendeld a szokásos módon: lapfülön jobb klikk, Kód megjelenítése.
A For Each CV In Range("A1:G20") sorban adhatod meg az A1:G20 helyén a saját tartományodat, ugyanígy, zárójelek és idézõjelek között.
Sok sikert!
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
köszi. Ne is akard tudni... <#csodalk>#csodalk>
Viszont segítséget kérek, hogy hova is írja pontosan? (hogy mit írjak át, hogy nekem megfelelõ helyre (X oszlopba pontosan) írja be.
És köszönöm! (o:
Juci
<#email>#email>
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Köszönöm a segítséget 😊
Private Sub Worksheet_Activate()
Dim CV As Object
For Each CV In Range("A1:G20")
If CV.Font.ColorIndex = xlAutomatic And (CV.Interior.ColorIndex = 6 Or CV.Interior.ColorIndex = -4142) Then
CV = "IGAZ"
Else
CV = "HAMIS"
End If
Next
End Sub
Mikor a lapra lépsz (a füzet megnyitásakor, vagy másik lapról), a Range("A1:G20") sorban megadott A1:G20 területre beírja az IGAZ és HAMIS értékeket.
Vigyázat! Ezzel visszavonhatatlanul felülírja a cellák tartalmát, hacsak mentés nélkül be nem zárod a füzetet. Ám ha ezzel a lappal nyílik meg, újra felülír mindent.
El sem tudom képzelni, mire jók ezek a beírások. <#circling>#circling>
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
arra van valamilyen tipp, hogy meg lehet-e csinálni azt, hogy egy adott cellába írja ki, hogy igaz, ha a cella betûszíne automatikus és a háttérszíne nincs vagy adott sárga, és minden többi esetben hamis értéket adjon? (o:0
Köszi,
www.rdha.hu [bf 80k] [bf2 100k] KisKöcsögkör FTW! \"Az ország azé, aki teliszüli.\"
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Akkor leírom, hogy kell kinéznie:
Képlet: =$A$1="a", Érvényesség =$A$1:$D$8, piros
Képlet: =$A$1="b", Érvényesség =$A$1:$D$8, kék
Ezt úgy hozod létre, hogy az A1😄8 tartományt kijelölve az új szabálynál "A formázandó cellák kijelölése képlettel" opciót választva írod be az "Értékek formázása, ha ez a képlet igaz:" rubrikába a képletet.
Mikor megadtad, a formátumot átmásolod az E1:H8 tartományra, behívod a felt. formátum szerkesztését, a $A$1-et átírod $E$1-re. Belépsz az Érvényességbe, F2-t nyomsz, hogy szerkeszteni tudd, és a tartományt a felsõnél átírod =$E$1:$H$8-ra, ezt másolod (Ctrl+c), és beilleszted a második feltételhez. Sajnos, meg kell ismételni 40×szer.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.