-
Fototrend
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
-
Brutforsz
aktív tag
Kicsit gányolás jellegű lesz, de egy ötletnek talán elmegy - akkor, ha a kis táblázatod állandó tartalmú.
Az első problémát úgy kísérelném meg orvosolni, hogy a 11x21-es táblázatot lementeném képként, majd beilleszteném úgy, hogy passzoljon az igazihoz - fontos, hogy a horgony beállításánál ne cellához, hanem az oldalhoz rögzítés opció legyen aktív (fejből nyomom, lehet, hogy nem pontosan ez a nevük). Így - noha az igazi táblázat sorai adott esetben eltűnnek szűréskor - az egész kis táblázat látszani fog. Ha precízen csinálod, észre sem lehet majd venni a trükközést.
[Szerkesztve]Te sejted, kik vagyunk, mi tudjuk, ki vagy.
-
Brutforsz
aktív tag
Az esetleg nem jöhet szóba, hogy a kis táblázatot a nagy fölé pakolod, és egy vízszintes ablaktábla-rögzítést hozol létre? Ez jó lenne mindkét problémára, csak macerás lehet az esetleges hivatkozások miatt. Más ötletem sajnos nincsen.
Te sejted, kik vagyunk, mi tudjuk, ki vagy.
-
Delila_1
Topikgazda
Az ablaktáblát a Nézet menüben rögzítheted úgy, hogy a rögzítendő sor alá, és a rögzítendő oszlop mögé állsz. Ha 3 sort, és mondjuk két oszlopot akarsz rögzíteni, akkor a negyedik sorba, és a harmadik oszlopba állsz (C4), és itt kapcsolod be a panelek rögzítését. A kikapcsolást ugyanitt állva teheted meg.
Ugorj neki újra a második kérdések megfogalmazásának, mert nem világos, mit is szeretnél. Hány lapon, melyik sorokat és oszlopokat akarod azonos tartalommal feltölteni?
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fehér Mancs
tag
Az FKERES függvény intervallum keresésre is alkalmas, az utolsó paramétere mondaná meg ezt (ha 1 vagy IGAZ, akkor lehet így használni). A függvényhez persze hozzá kell még adni 150-et.
pl.:
Tábla:
0 15
10 20
20 50fkeres(0;tábla;2;IGAZ) = 15
fkeres(3;tábla;2;IGAZ) = 15
fkeres(12;tábla;2;IGAZ) = 20
fkeres(2000;tábla;2;IGAZ) = 50és
fkeres(0;tábla;2;IGAZ)+150 = 165 ... -
Delila_1
Topikgazda
-
Delila_1
Topikgazda
Az IGAZ-ra abban a sorban keres, ami még nem nagyobb, mint a keresett érték.
A súgóból:
Ha a tartományban_keres értéke IGAZ vagy hiányzik, akkor a visszaadott érték közelítő lehet, azaz ha pontos egyezést nem talált a függvény, akkor a következő legnagyobb, de a keresési_érték argumentumnál kisebb értéket adja vissza.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Fehér Mancs
tag
Az nem derült ki, hogy hova tegyük a köztes értékeket, de ez is megoldható képletekkel:
1. Ha van pontos találat, akkor FKERES-sel megkereshető.
2. ha nem, akkor meg kell keresni a következő nagyobb szám pozícióját (HOL.VAN)
3. majd OFSZET-tel rá lehet állni.Vagyis:
=HA(HIBÁS(FKERES(A1;$C$2:$D$10;2;0));OFSZET($C$1;HOL.VAN(A1;$C$2:$C$10;1)+1;1);FKERES(A1;$C$2:$D$10;2;0))
A1 a keresett érték,
$C$2:$D$10-ig pedig a lista -
Fehér Mancs
tag
A $C$1 a fejlécet jelentené, a következő sorban kezdődne az adat. Ennek a sorához adjuk hozzá az ofszet második paraméterében azt a sorszámot, amit a hol.van függvénnyel találunk meg (a keresett értéknél nem nagyobb legnagyobb szám) +1-et, hogy az azt követő sorra álljunk rá.
Az FKERES-ben pontos értékre keresünk (utolsó paraméter 0 / HAMIS), a HOL.VAN esetén pedig intervallumra (ott az utolsó paraméter 1-es).
[ Szerkesztve ]
-
Fehér Mancs
tag
Ha nincs a listában fejléc, akkor egy kicsit lehet ezen finomítani:
=HA(HIBÁS(FKERES(A1;$C$1:$D$10;2;0));OFSZET($C$1;HOL.VAN(A1;$C$1:$C$10;1);1);FKERES(A1;$C$2:$D$10;2;0))
(C110-ig vannak adatok)
Amúgy rendezett a lista? Ha nem, akkor hibaüzenetet kaphatsz vissza.
Ha így sem megy, küldd át az excelt.
[ Szerkesztve ]
-
Nowhere
tag
C oszlopba:
=IF(EXACT(A1;B1);A1+B1;0)
D oszlopba:
=IF(EXACT(A1;B1)=FALSE;A1+B1;0)A c összeadja az egyformákat (ahol A=B) a D pedig ahol nem egyenlő A B-vel.
Delila_1: igazad van, kicsit elbénáztam a bemásolást, de amúgy jól csináltam azt a részt én is (kivételesen ) Kösz!
[ Szerkesztve ]
-
Nowhere
tag
Ja világos már.
Én azt csinálnám, hogy az előbbi képleteket felhasználva:
E1 cella: =IF(C1=0;B1;0)
F1 cella: =IF(D1=0;C1;0)Ezeket lehúzod addig ahány sorod van és az alján szummázva az E azt a végösszeget adja ahol nem egyezett az A és B (jelen esetben 13), az F meg ahol nem (28).
Szépnek nem szép, de megoldás.
-
Delila_1
Topikgazda
A CheckBox-ot elneveztem Jelölő-nek.
A makró a Jelölő jelölt állapotában összeadja az L1 és M1 értékét, jelöletlen állapotában pedig összeszorozza azokat. Az eredményt az N1 cellába – Cells(1,14) – írja.Sub keplet()
If CheckBoxes("Jelölő").Value = xlOn Then
Cells(1, 14).Formula = "=L1+M1"
Else
Cells(1, 14).Formula = "=L1*M1"
End If
End Sub[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
-
Fehér Mancs
tag
-
Delila_1
Topikgazda
Lúzer válaszából következik, hogy a különböző nyomtatási beállításokhoz tedd külön lapokra, amiket különböző beállításokkal akarsz nyomtatni. Azonos munkalapon lévő adatokat csak azonos beállításokkal nyomtathatsz.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
félisten
-
Delila_1
Topikgazda
Nem látom a logikát a két táblázat között. Sejtem, hogy más sem érti, azért nem kapsz választ. Kicsit pontosíthatnád a feltételeket.
Azért off, mert megnyomtad az Off topic gombot.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
gyga
senior tag
még sem tökéles:
így csináltam: c1 nek adtam fix nevet és a feltételes formázást erre adtam ki.
ez 1 sorra tökéletes lenne. De ha már több sor van akkor azokban a c2 c3 c4 stb cellákra kell hivatkozni és midnek új nevet kell adni és a formázási feltételeket újból be kell írni ez elég macerás minden sort újra írni főleg ha van sok feltételes formázás.A kisebbség is számíít, teszkó.
-
Delila_1
Topikgazda
Jelöld ki a formázni kívánt sorokat A-tól K-ig.
A formázást a csatolt kép szerint add meg, ügyelve a $ jelre.
A képlet értelmezése: ha a C oszlop aktuális cellája 1, vagy 2, akkor a formátum legyen a megadott.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
Megcsinálod a 10 lapon egyesével, de mindegyik lapon azonos cellába.
Itt példaként legyen ez a V100.
Az összesítő lapra ezt írd (tetszésed szerinti cellába):=SZUM('Első_lap:Utolsó_lap'!V100)
Természetesen az Első_lap és az Utolsó_lap helyett a saját első, és utolsó lapod nevét írd.
[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
A laponkénti képlet:
=SZUMHA(J:J;"PF";H:H)
Ezt egyszerre is beviheted a 10 lapodra. Kijelölöd a lapokat (elsőn állsz, Shiftet nyomva az utolsó lapfülre kattintasz), és a megfelelő helyre beírod a függvényt. Így gyorsabb, mint egyenként, és biztosan azonos cellában lesz minden lapon. Ezután az összesítő lapra beírod a SZUM függvényt, ahogy az előző hozzászólásomban írtam.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
-
Delila_1
Topikgazda
Sub SubTotal()
ucso = Worksheets.Count
For lap = 2 To ucso
Sum = Sum + Sheets(lap).Cells(154, 12)
Next
Sheets("Összesítő").Cells(154, 12) = Sum
End SubEzt a makrót vidd be. Alt+F11-re bejön a VB szerkesztő. Bal oldalon megtalálod a füzeted nevét, az előtte lévő + jelre kattintasz. Insert menü, Module. Jobb oldalon kapsz egy üres fehér oldalt, oda másold.
Ha az összesítő lapod neve nem Összesítő, a makróban írd át.
Ha az összesítőn az eredményt nem az L154 cellában szeretnéd látni, a Cells(154,12)-ben írd át az értékeket. a 154 a sor száma, a 12 az oszlopé (A oszlop=1, B oszlop=2, ... Loszlop=12).Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
Sub SubTotal()
ucso = Worksheets.Count
For lap = 2 To ucso
Sum = Sum + Sheets(lap).Cells(154, 12)
Sum1 = Sum1 + Sheets(lap).Cells(155, 12)
Sum2 = Sum2 + Sheets(lap).Cells(156, 12)
Next
Sheets("Összesítő").Cells(154, 12) = Sum
Sheets("Összesítő").Cells(155, 12) = Sum1
Sheets("Összesítő").Cells(156, 12) = Sum2
End SubEzt vidd be az előző helyére.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
Automatikus számolás akkor lenne lehetséges a szum(első_lap:utolsó_lap!L154) képlettel, ha állandó lenne a lapjaid száma és neve.
Tegyél ki egy gombot az Űrlapok eszköztárról az Összesítő lapra, és rendeld hozzá a makrót. Az adataid változásakor csak egy gombnyomás...Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
dtpeter
csendes tag
Meg lehet ezt csinálni automatikusra is szerintem, nem szükséges a gomb. A visual basic szerkesztőben válaszd ki bal oldalon az összesítő lapodat, majd középen fent azt a részt, ahol most jó eséllyel (General) szöveget látsz, állítsd át Worksheetre, és a mellette lévő lévő részt pedig Activate-re.
Ekkor kapsz egy
"Private Sub Worksheet_Activate()End Sub"
szöveget. Na, e közé a két sor közé illeszd be a Delila_1 által írt kódot (persze a Sub... és End Sub nélkül). Ez azt fogja eredményezni, hogy minden alkalommal, amikor más lapról átlépsz az összesítő lapodra, lefut a kód. Arra érdemes figyelni, ez csak akkor jó megoldás, ha az összesítő lapon lévő eredmény cellából más lapon nem dolgozol.Van még pár lehetőség, hogy milyen eseményhez lehet rendelni a kód lefutását, pl. olyan is van, ami akkor indítja el a programodat, ha megváltozik az adott munkalapon bármelyik cella. Ezt mondjuk érdemes lenne feltételhez kötni, hogy mely oszlopok változása esetén frissítgesse az eredménycellát, teljesen felesleges mindig elvégeztetni vele az összeszámolást. Ezt meg úgy tudod megcsinálni, hogy bal oldalon a ThisWorkbook-ot választod, középen fent Workbook-ra állítod a (General) részt, és jobb fent SheetChange-et választasz a legördülő menüből.
Ekkor ilyesmi szöveget látsz majd:
"Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Column = 8 Then
MsgBox "Most számol :)"
End If
End Sub"A középen lévő részt én írtam be, a msgbox-os sor helyére tedd Delila_1 kódját. Az eleje meg csak annyit jelent, hogy ha a 8. oszlop (azaz a H oszlop, amit emlékeim szerint összegezni szeretnél) változik, akkor indítja az összegzést.
Alapesetben az első variációt választanám, mert az csak akkor számol, amikor tényleg meg akarod nézni az eredményt. Ennek a másodiknak akkor van értelme, ha az eredménycellára más helyen hivatkozol, és fontos, hogy minden egyes változtatás után azonnal friss adatok álljanak rendelkezésre.
Első számú aranyszabály: Ha nincs probléma, csinálunk.
-
félisten
-
föccer
nagyúr
Az fkeres mindig a legbaloldalibb (az első) oszlopban keresi a keresési értéket, így biztosan, hogy fel kell cserélned a két oszlopot.
Utána meg valami ilyesmi lesz a függvényed:
=fkeres(min(B1:B20);B1:C20;1;0)
Ez már feltételezi, hogy a B és C oszlopokat felcserélted.
üdv, föccer
[ Szerkesztve ]
Építésztechnikus. Építőmérnök.
-
Delila_1
Topikgazda
Nem szerencsés dolog a fórumon egy személyhez intézni a kérdést. Jó esetben itt van a megszólított, tud, és akar is válaszolni. Ha a 3 feltétel közül valamelyik hiányzik, nem kapsz választ. A címzett nélküli kérdésre nagyobb eséllyel kaphatsz megoldást.
Töröld a törölhető sorokat, majd írd be a VBE-be a lenti két funkciót.
Function fent(Keres As Long, WS$, hol$)
Dim CV, oszlop%, ter$
oszlop% = Asc(hol$) - 64
ter = hol$ & ":" & hol$
For Each CV In Sheets(WS$).Range(ter$)
If CV > Keres Then
fent = Sheets(WS$).Cells(CV.Row - 1, oszlop%)
Exit Function
End If
Next
End Function
Function lent(Keres As Long, WS$, hol$)
Dim CV, oszlop%, ter$
oszlop% = Asc(hol$) - 64
ter = hol$ & ":" & hol$
For Each CV In Sheets(WS$).Range(ter$)
If CV > Keres Then
lent = Sheets(WS$).Cells(CV.Row + 1, oszlop%)
Exit Function
End If
Next
End FunctionA cellába, ahova a keresett érték fölötti sort akarod megkapni, így add meg a függvényt:
=fent(A1;"Munka2";"A")
Az A1 az a cella, ahova a kérdésben példaként írt 203958-at írod. A "Munka2" annak a lapnak a neve idézőjelek között, ahol a keresést végre akarod hajtatni, az "A" a keresés oszlopának a betűjele.A másik képlet =lent(A1;"Munka2";"A"), ez a keresett érték alatti cella értékét hozza eredményül.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
Új hozzászólás Aktív témák
- Hearthstone: Heroes of Warcraft - free online CCG
- Bambu Lab X1/X1C, P1P-P1S és A1 mini tulajok
- Kormányok / autós szimulátorok topicja
- Vallás
- LG C3: egy középkategóriás OLED tévé tesztje
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Milyen autót vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Amlogic S905, S912 processzoros készülékek
- Otthonfelújítási program (2024.)
- További aktív témák...