-
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
-
-
Fferi50
Topikgazda
válasz
Gabcsika #22685 üzenetére
Szia!
Nos, ha az A1-be írod az értéket, akkor miért a B2 cella értékét vizsgálod a feltételekben?
Másrészt a képlet (most B2-vel) =HA(B2<50;840;HA(B2<100;560;HA(B2<150;280;HA(B2<200;0;""))))
mivel az előző ha már kiváltja a kisebb vizsgálatot, elég a következőnél a felső határt nézni.
Üdv.
-
Delila_1
veterán
válasz
Gabcsika #21735 üzenetére
Feltöltöttem az átírt makróval a füzetedet ide.
Igaz, ahogy itt írtam, a lapnevek kijavításával helyre rázódott volna a lelke, de most egy-egy oldalnyi adat átmásolása után üzenetet kapsz a nyomtatásra.
Az F1 cella tartja számon a Munka1 lapon, hogy hol tartasz a másolással és nyomtatással, azt ne töröld ki. Mikor mindent kinyomtattál, akkor vált át üres stringre.
-
-
Delila_1
veterán
válasz
Gabcsika #21708 üzenetére
Itt a manuális nyomtatáshoz a makró, bár nálam hiba nélkül végrehajt mindent.
Sub Nyomtat()
Dim sor1 As Long, sor2 As Long
Sheets("Sheet2").Cells.ClearContents
Sheets("Sheet1").Select
If Range("V1") = "" Then Range("V1") = 2
sor1 = Range("V1"): sor2 = 1
Do While sor2 <= 66
Range("A" & sor1 & ":C" & sor1 + 4).Copy
Sheets("Sheet2").Range("A" & sor2).PasteSpecial Paste:=xlPasteValues, Transpose:=True
sor1 = sor1 + 5
sor2 = sor2 + 3
Loop
Range("V1") = sor1
Sheets("Sheet2").Select
MsgBox "Nyomtass"
If Application.CountA(Sheets("Sheet1").Columns(1)) < sor1 Then _
Sheets("Sheet1").Range("V1") = ""
End Sub -
-
Delila_1
veterán
válasz
Gabcsika #21699 üzenetére
Másol, kinyomtatja az első átmásolt mennyiséget, törli a Sheet2 lap tartalmát, másolja és nyomtatja a következőt. Ezt addig folytatja, míg a Sheet1 lapon talál adatot
Az utolsó adagot az én hibám miatt nem nyomtatja. Az eredeti makró Loop sora alá másold be:
If Sheets("Sheet2").Range("A1") > "" Then
Sheets("Sheet2").Select
ActiveWindow.ActiveSheet.PrintOut Copies:=1, Collate:=True
Cells.ClearContents
Sheets("Sheet1").Select
End If -
Delila_1
veterán
válasz
Gabcsika #21692 üzenetére
Próbáld meg ezzel a makróval.
Sub Nyomtat()
Dim sor1 As Long, sor2 As Long
Sheets("Sheet1").Select
sor1 = 2: sor2 = 1
Do While Cells(sor1, "A") <> ""
Range("A" & sor1 & ":C" & sor1 + 4).Copy
Sheets("Sheet2").Range("A" & sor2).PasteSpecial Paste:=xlPasteValues, Transpose:=True
sor1 = sor1 + 5
If sor2 >= 63 Then
Sheets("Sheet2").Select
ActiveWindow.ActiveSheet.PrintOut Copies:=1, Collate:=True
Cells.ClearContents
Sheets("Sheet1").Select
sor2 = 1
Else: sor2 = sor2 + 3
End If
Loop
End Sub -
Delila_1
veterán
válasz
Gabcsika #5380 üzenetére
Megszívlelvén Cucinak a 2. pontjában feltett kérdését, a B oszlopban megtalált érték sorába beíratom az összes helyet, ami a C oszlopban van, és tartalmazza a B értékét. Az első megtalált érték a D, a második az E.., stb. oszlopokba kerül. Mindegyik beírt találathoz fűzök egy megjegyzést, ami a C oszlop beli címet tartalmazza.
Ez is bonyolultan hangzik, de ha lefuttatod, világosabb lesz.Sub Hasonlo()
Dim sor, oszlop As Integer
Dim sz, cim As String
Dim ter As Range
Dim CV As Object
Set ter = Range("B242:B267")
For sor = 242 To 267
oszlop = 4
sz = Cells(sor, 3): cim = Cells(sor, 3).Address
For Each CV In ter
If InStr(1, sz, CV) Then
Do While Cells(CV.Row, oszlop) <> ""
oszlop = oszlop + 1
Loop
Cells(CV.Row, oszlop).Select
With Selection
.Value = sz
.AddComment
.Comment.Text Text:=cim
.Comment.Visible = False
End With
oszlop = oszlop + 1
End If
Next
Next
End Sub -
Delila_1
veterán
válasz
Gabcsika #5380 üzenetére
Ez a "legjobban megfelelő" nem valami korrekt meghatározás, ahogy Cuci is írta.
A makrót úgy írtam, hogy ha a C oszlop értékében megtalálható a B oszlop valamelyik értéke, akkor a B-ben lévő cella sorába, a D oszlopba írja a C értékét. Hú, ez aztán kacifántos megfogalmazás, de biztosan érted.
Az ellenőrzendő területet a "Set ter=" -, valamint a "For sor=" kezdetű sorokban módosíthatod.Sub Hasonlo()
Dim sor As Integer
Dim sz As String
Dim ter As Range
Dim CV As Object
Set ter = Range("B242:B267")
For sor = 242 To 267
sz = Cells(sor, 3)
For Each CV In ter
If InStr(1, sz, CV) Then Cells(CV.Row, 4) = sz
Next
Next
End Sub -
Cuci3
tag
válasz
Gabcsika #5380 üzenetére
Kérdések:
1. Ha a C oszlopból megvan az R1815B, akkor az hova kerüljön a D oszlopban? 261-es sor (ahol a B oszlopban az 1815 van), vagy a 243-as sorba (ahol a C oszlopba az 1815 részletében van)? Meg az R1815B kerüljön oda, vagy pl annak a C oszlopban elfoglalt sora?
2. Ha pl több R1815B találat lesz, akkor azok közül az összes kell, vagy csak az egy? Meg ha több kell, akkor azt hova kell tenni? E, F ,... oszlopok?
3. Ha pl több találat van (R1815B, 1815-B1, 1815B1), akkor azok hova kerüljenek? E, F, ... oszlopok?
4. Mit jelent a legjobban megfelelő találat? Pl 18152B megfelelő vagy sem?Sima szűréssel amúgy meg lehetne oldani egy-egy esetben (egyéni szűrés), de tömegesnél makró kellene? Még nem tom, hogy lesz-e rá időm.
-
Delila_1
veterán
válasz
Gabcsika #5305 üzenetére
Az fkeres(d1;a:a;1)-et ismered, az utolsó paraméter az IGAZ-zal egyenértékű. Ez a keresett értékkel egyenlő, vagy annál kisebb, de legnagyobb értéket adja vissza. Pl. az 1770 eredménye a mintád szerint 1700.
A =hol.van(fkeres(d1;a:a;1);a:a) megadja a sorszámot, ahol az fkeres eredménye megtalálható az A oszlopban. Tehát a sort már tudjuk, a példád szerint 5. Ez a képlet van az E1 cellában.
Az indirekt függvény azt az értéket adja vissza, amit az argumentumában szövegesen megadsz. Pl. =indirekt("d2") eredménye a mintádban 1866.
A =HA(ABS(D1-INDIREKT("A"&E1))<ABS(D1-INDIREKT("A"&E1+1));INDIREKT("B"&E1;E1);INDIREKT("B"&E1+1)) képletnél helyettesítsd be az értékeket a képlet egyes részeibe a példád szerint. Ha 1770-1700<1770-1800 (itt azt néztem meg, melyik értékhez áll közelebb a D1, és ennek megfelelően írattam be a közelebb álló értéket eredményül).
Az ABS-re, abszolút értékre azért volt szükség, mert a D oszlop értékéből levonva az A oszlopban megtalált értéket negatív számot is kaphatsz, és ez több számnál, pl. az 1228-nál, vagy az 1620-nál hamis eredményt ad. -
Delila_1
veterán
válasz
Gabcsika #5268 üzenetére
Az 5222-es válasz arra az esetre igaz, ha a D oszlop értékeit az A oszlop értékpárjai között kell kereni. Ha viszont a teljes A oszlop értékei közül kell kiválasztani, melyik értékhez áll legközelebb a D értéke, akkor az 5236-os válasz a jó.
Könnyebben érthető a hosszú képlet, ha az E1-be beírod:
=HOL.VAN(FKERES(D1;A:A;1);A:A)
ezt lemásolod az adataid mellé.
A hosszú képlet így egyszerűsödik:
=HA(ABS(D1-INDIREKT("A"&E1))<ABS(D1-INDIREKT("A"&E1+1));INDIREKT("B"&E1;E1);INDIREKT("B"&E1+1))
Eredetileg így írtam, aztán a két képlet összevonásával az E oszlop külön képletét szüntettem meg.Szóval nekem még mindig nem tiszta, hogy értékpárok, vagy a teljes oszlop adatai közül kell kikeresni a D-hez legközelebb állót.
Tanulság, hogy pontosabban kell fogalmaznod a kérdést, és (bár erre az esetre nem vonatkozik) érdemes megemlíteni, hogy az Excelnek melyik verzióját használod.Mindenesetre jól elszórakoztunk a sok válasszal (legalábbis én).
Jó pihenést!
-
Cuci3
tag
válasz
Gabcsika #5221 üzenetére
A szorzatösszeg, meg abs nem is értem, hogy jött a képbe.
De a csavarodnál jó lenne tisztázni, hogy most mi van az egyenlőségjellel.Ahogy én tanultam: Fkeres - utolsó argumentum kitöltése nélkül - megnézi, hogy az érték szerepel-e a táblázatban. Ha nem akkor, elkezdi csökkenteni a megadott értéket, és egyezőség esetén ad visszalök egy eredményt.
Utólag végiggondolva ez egy baromságnak hangzik, mivel igen hosszú futásidőt eredményez.Tehát valószínű megnézi, hogy mely kategóriánál nagyobb (szigorúan nagyobb) az adott érték és az ahhoz tartozó oszlopot adja vissza.
Vagyis ha egyezőséget is akarsz, akkor a kategóriák határait kell módosítanod.
Nézd meg ebben a fájlban. -
Cuci3
tag
válasz
Gabcsika #5219 üzenetére
Ezt az "X-hez van közelebb" dolgot részletezhetnéd egy kicsit.
Alapgondolatom az fkeres lenne (utolsó argumentumot nem kell kitölteni), de az nem különbséget néz, hanem értéket. Tehát 1399-re A-t ad vissza, mivel nem éri el az 1400-at. 1400 és 1499 között B lesz az eredmény.De ha neked olyan kell, hogy 1399-nél B-t dobjon vissza, akkor is fkeres kellene, de a segédtáblát módosítani kellene úgy, hogy pl egy beszúrt oszlopba beírod az új határokat (adott sor + előző sor értéke osztva kettővel), és ezeket használod fel az fkeresben. Mondjuk:
1200 1200 A
1400 1300 B
1500 1450 C
1600 1550 D
...Így tehát 1451-re C-t ad vissza, de 1376-ra B-t.
u.i.: ha gondod van az fkeressel, akkor majd csinálok példát. -
Cuci3
tag
válasz
Gabcsika #5177 üzenetére
Első kérdés: az A és B oszlopban lévő értékek egyszerre ugye csak egyszer fodulnak elő?
Mivel ha a "5660065 B12586" értékpár többször fordul elő, akkor meg van lőve az egész, több eredmény is lehetséges lenne, melyet nem lehet lekezelni.A megoláds leírása hosszú lenne, ezért feltettem ide.
A HA(HIBÁS(FKERES());"";FKERES()) függvény középső részében tudod változtatni, hogy nemleges találat esetén mit írjon ki. Jelenleg semmit ("").
-
Csabee.
nagyúr
válasz
Gabcsika #4941 üzenetére
=HA(A1=B1;"OK";"Nem Ok")
ezután meg fogod a cellát ahova ezt beírtad, gondolom én az A3ba írod majd, és a cella jobb alsó sarkába kattintva lehúzod ameddig szeretnéd vizsgálni az A és B oszlopot!
ez az egyszerü ha feltétel annyit tesz hogy ha Ax és Bx cella megegyező értéket tartalmaz akkor kiírja hogy OK, ha eltérő a két érték kiírja hogy Nem Ok
erre gondoltál?
-
Delila_1
veterán
-
Delila_1
veterán
válasz
Gabcsika #4698 üzenetére
1. Kijelölöd a szétválasztandó cellákat tartalmazó oszlopot. Adatok/Szövegből oszlopok. A párbeszéd ablakban a Tagolt legyen jelölt. A következő ablakban a határoló jeleknél a Más-hoz írd be az x-et, és kész.
2. A mai napot tartalmazó cellából kivonod az első időpontot tartalmazó cella értékét. A képlet cellája általános, vagy szám formátumú legyen.
-
Delila_1
veterán
válasz
Gabcsika #4544 üzenetére
Az ISERROR (HIBÁS) függvényt kell beiktatni.
=IF(A2="";"";IF(ISERROR(VLOOKUP(A2;'[list.xls]BOM list'!$A:$A;1;FALSE));"NO";"YES"))
Ha hibát hoz ki a vlookup (nem találja a keresett értéket), akkor írjon NO-t.
Még mindig nem számoltál be a hosszú lista szűrésének az eredményéről!
-
Delila_1
veterán
válasz
Gabcsika #4466 üzenetére
Kétféle módja van.
1. Ha van már personal.xls-ed, oda bemásolod. Ha nincs, készítesz.
Rögzíts egy akármilyen makrót: Eszközök/Makró/Új makró rögzítése. Lényeg, hogy a makró helyének a listából az Egyéni makró-munkafüzetben elnevezésűt jelöld be. Semmi mást nem kell módosítani. Ezt OKézod, indul a makró, amit rögzítesz, pl. módosítod a betű színét, majd a rögzítés vége gombbal befejezed. Létrejött a personal.xls, benne az első makróddal. Most lépj a makró szerkesztőbe:
Eszközök/Makró/Visual Basic (vagy Alt+F11). Bal oldalon a personalhoz tartozó Modules könyvtárban kattints duplán a Module1-re. Jobb oldalon megjelenik az általad rögzített makró. Ez alá másold be az újat. A rögzítettet le is törölheted.2. Másold be a makrót egy üres füzet makró szerkesztőjébe, majd mentsd el egy találó néven, xla kiterjesztéssel (Microsoft Excel bővítmény) formában. Az útvonalat nem kell megadni, az Excel automatikusan beállítja.
Jelöld be az Eszközök/Bővítmények között megjelenő, általad elnevezett bővítményt, ezután alkalmazhatod függvényként. A függvények között a Felhasználói kategóriában, és persze a Mind-ben találod meg ezután.
-
Delila_1
veterán
válasz
Gabcsika #4463 üzenetére
Pontosan ezt a függvényt írta meg neked Fehér Mancs. Látod, nem Sub, hanem Function az eleje.
Másold át a füzetedbe a makrókhoz.
A függvények között a Felhasználói kategóriában és a Mindben ezután megtalálod a CountDistinc nevűt.
A példádnál maradva az Értékekhez az A oszlopodat, a Tartományhoz a B oszlopot, a Vizsg_értékhez pedig A1-et írj be. Húzd le a függvényt.
Ahogy módosulnak az adataid, a függvénnyel előállított értékek is változnak. -
Fehér Mancs
tag
válasz
Gabcsika #4442 üzenetére
Még egy észrevétel, ha macroval számoltatjuk ki ezt, akkor saját függvényt érdemes használni, mivel az nem módosítja az adataidat, változásnál újra is számol, másolható, stb.
Erre egy megoldás:
Function CountDistinct(Ertekek As range, Tartomany As range, Vizsg_ertek) As Variant
Dim Taroltak()
Dim i, j, Talalat
Dim VanMar As Boolean
Talalat = 0
For i = 1 To Ertekek.Rows.Count
If Ertekek(i) = Vizsg_ertek Then
If Talalat = 0 Then
ReDim Taroltak(1)
Taroltak(1) = Tartomany(i)
Talalat = 1
Else
VanMar = False
For j = 1 To Talalat
If Taroltak(j) = Tartomany(i) Then
VanMar = True
Exit For
End If
Next j
If Not (VanMar) Then
ReDim Preserve Taroltak(Talalat + 1)
Taroltak(Talalat + 1) = Tartomany(i)
Talalat = Talalat + 1
End If
End If
End If
Next i
CountDistinct = Talalat
End Function -
Fehér Mancs
tag
válasz
Gabcsika #4442 üzenetére
Az excel 2007-es verziójában képlettel is ki lehet ezt számolni ezt:
=SZUM(HA(értékek=vizsg_érték;HA(tartomány<>"";1/DARABHATÖBB(értékek;vizsg_érték;tartomány;tartomány);0);0))
(Tömbképlet, vagyis shift+ctrl+enter-et kell használni)Az értékekben keressük meg a vizsg_értéket, és csak ezeket vesszük figyelembe a darabszámlálásnál (tartományban a különbözők kiszedése).
Ha nem lehet érteni, ne aggódj, én sem igazán értem, de működik
-
Delila_1
veterán
válasz
Gabcsika #4445 üzenetére
Akkor két részletben add meg a színezést, az A28: P65536, és a Q1:IV65536 tartományra. 2007-es Excelnél nagyobb a tartomány.
Alapértelmezésben a cellák zárolva vannak, de ez a zárolás csak akkor lép érvénybe, mikor beállítod a lapvédelmet. A nem védendő cellák kijelölése után a cellaformázásnál a védelem fülön kiveszed a pipát a Zárolt elől. Ugyanitt a cella rejtését is beállíthatod, ha azt akarod, hogy a szerkesztőlécen ne jelenjen meg a képlet. Ez utóbbi is csak a lapvédelem beállítása után lép érvénybe.
A lapvédelmet az Eszközök/Védelem/Lapvédelemnél állíthatod be, és jelszót is adhatsz a feloldásához. -
Delila_1
veterán
válasz
Gabcsika #4443 üzenetére
A font.color a karakter színét adja, az interior.color a kitöltését. A kitöltés nélkülit próbáltam a vbNone kifejezéssel megadni, de az fekete lett, ezért inkább a ColorIndexet írtam be, a -4142-t.
Sub colour()
Cells.Interior.Color = vbRed
Range(Cells(1, 1), Cells(27, 16)).Select
Selection.Interior.ColorIndex = -4142
Range("A1").Select
End Sub -
Delila_1
veterán
válasz
Gabcsika #4436 üzenetére
Nagy nehezen megszületett.
Sub Egyezo()
Sheets("Sheet1").Select
'******* Rendezés ***************
Range("A2").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B1") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
'************************************
sor_1 = 1: sor_2 = 1
Sheets("Sheet2").Select
Do
első = sor_1
A = Cells(sor_2, 1)
Sheets("Sheet1").Select
Do While Cells(sor_1, 1) <> ""
If Cells(sor_1, 1) = A Then
If Cells(sor_1 + 1, 1) > A Or Cells(sor_1 + 1, 1) = "" Then
ucsó = sor_1
Range("B" & első & ":B" & ucsó).Select
ActiveWorkbook.Names.Add Name:="tartomány", RefersTo:=Selection
Sheets("Sheet2").Select
Cells(sor_2, 2).Select
Selection.FormulaR1C1 = "=SUMPRODUCT((tartomány<>"""")/COUNTIF(tartomány,tartomány))"
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Sheets("Sheet1").Select
ActiveWorkbook.Names("tartomány").Delete
sor_1 = sor_1 + 1
Exit Do
End If
End If
sor_1 = sor_1 + 1
Loop
sor_2 = sor_2 + 1
Sheets("Sheet2").Select
Loop While Cells(sor_2, 1) <> ""
Application.CutCopyMode = False
End SubA csillagokkal határolt rész a Sheet1-en való rendezés. Nálam nincs rovatfej. Ha ez nem jó, helyette rögzítsd makróban a kétkulcsos rendezést, első kulcs az A, második a B oszlop, emelkedő sorrendben.
-
Delila_1
veterán
válasz
Gabcsika #4436 üzenetére
Meg lehet számoltatni az adatok "féleségét". A B oszlop adatait elnevezed tartománynak.
=SZORZATÖSSZEG((tartomány<>"")/DARABTELI(tartomány;tartomány))
avagy
=SUMPRODUCT((tartomány<>"")/COUNTIF(tartomány;tartomány))Ezzel az a baj, hogy azt mutatja meg, hány féle érték van a B oszlopban, függetlenül az A oszlop tartalmáról.
Miért nem jó a kimutatás? Már máskor is kapálóztál ellene. -
-
AvLav
csendes tag
válasz
Gabcsika #4433 üzenetére
Szia!
Én valami hasonló makróval próbálkoznék, bár amit most itt mutatok még hagy egy kis kívánnivalót maga után:
Sub szamol()
Sheets("Munka2").Select
lastRow = Range("A65535").End(xlUp).Row
Sheets("Munka1").Select
lastRow2 = Range("A65535").End(xlUp).Row
Dim szamlalo
For i = 1 To lastRow
Sheets("Munka2").Select
x = Range("A" & i).Value
szamlalo = 0
For j = 1 To lastRow2
Sheets("Munka1").Select
y = Range("A" & j).Value
If (y = x) Then
szamlalo = szamlalo + 1
End If
Next j
Sheets("Munka2").Select
Range("B" & i).Value = szamlalo
Next i
End Sub!!! Ez a makró feltételezi, hogy a Sheet1-en minden A oszlopbeli elem mellett van a B oszlopban érték
-
Delila_1
veterán
válasz
Gabcsika #4409 üzenetére
Például ilyen:
Sub szétcincál()
sor = 1
Do While Cells(sor, 1) <> ""
Cells(sor, 1) = Left(Cells(sor, 1), InStr(Cells(sor, 1), "-") - 1)
sor = sor + 1
Loop
End Subde másképp is meg lehet írni.
Másik, nem makrós megoldás, hogy kijelölöd a sorokat, Adatok/Szövegből oszlopok. A varázsló második lapján a kötőjelet adod meg határoló jelnek. -
AvLav
csendes tag
válasz
Gabcsika #4400 üzenetére
Helllo!
Az adatokat tartalmazó oszlop (legyen A) mellett lévő oszlopba (B-be), a következőt kell írni:
"=SZÖVEG.TALÁL("-";A1)" :ez megadja, hogy a kötőjel hanyadik karakter a szövegbenEzután a következő oszlopba (C-be), a következőt kell írni:
"=BAL(A1;B1-1)" :ez veszi az A oszlopban lévő szövegből balról kezdve a karaktereket a kötőjeligMindez persze megoldható makróval is, de sajnos nem fogalmaztad meg pontosan, hogy szükséged van-e az eredeti oszlopra vagy hogy hogyan nézzen ki a végén a tábla.
-
Delila_1
veterán
válasz
Gabcsika #4364 üzenetére
A 4360-as hozzászólás D oszlopának képletei adják az A oszlop adatait duplikátok nélkül, de az oszlop foghíjas lesz. Makróval lehetne folyamatossá tenni az adatokat.
Oldd meg inkább a feladatot Fehér Mancs javaslata szerint kimutatással. Az Adatok menüben találod, a varázsló szépen végig vezet a szükséges lépéseken. -
Fehér Mancs
tag
válasz
Gabcsika #4318 üzenetére
Képlettel is ki lehet hámozni a zárójeles részt (A1-ben van az adott szöveg):
=MID(A1;FIND("(";A1);FIND(")";A1)-FIND("(";A1)+1)1. paraméter, az adott cella
2. paraméter megkeresi, hogy honnan kezdődik, vagyis a nyitó zárójel pozíciója
3. paraméter, hogy milyen hosszú részt kell kiemelni -> záró zárójel pozíciója minusz a nyitó zárójel pozija +1 -
Delila_1
veterán
válasz
Gabcsika #4318 üzenetére
Vegyük, hogy a szétbontandó adataid az A oszlopban vannak. Kijelölöd az adatokat.
Az Adatok/Szövegből oszlopok menüben Tagolt, a következő ablakban Szóköz, Kész.
Ám ez a (456)-ot negatív számként teszi be a sor B oszlopába a zárójel miatt.C1-be: ="(" & B1*-1 & ")" A képletet lemásolod, kijelölöd a C oszlopot. Másolás, B1-be állva értékként beilleszted.
Ezt több idő volt leírni, mint az egészet végrehajtani.
-
Delila_1
veterán
válasz
Gabcsika #4169 üzenetére
A sorokat kellett volna törölnöd, nem az adatokat. Egy szűrés üresre, vagy rendezés után megteheted.
A vlookup csak a kritériumnak megfelelő első sort adja, használd az irányított szűrést. Angolban nem tudom, magyarban Adatok/Szűrő/Irányított szűrő. A súgóban megtalálod a leírását. -
válasz
Gabcsika #4069 üzenetére
Hali!
Tudom, hogy régen volt, de volt egy érdekes kérdésed a "villogó cella" témakörben.
Munkafüzet1 - Munka1 (Code)
Public Most_villog As Boolean
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Range("A1") = "ok" And Most_villog = False Then
Call Szincsere
Most_villog = True
ElseIf Range("A1") <> "ok" And Most_villog = True Then
Call Villogas_ki
Most_villog = False
End If
End SubMunkafüzet1 - Module1 (Code)
Public Idozites As Double
Sub Villogas_ki()
Range("A1").Interior.ColorIndex = xlAutomatic
Range("A1").Font.Color = RGB(0, 0, 0)
Application.OnTime Idozites, "Szincsere", , False
End Sub
Sub Szincsere()
If Range("A1").Interior.Color = RGB(255, 0, 0) Then
Range("A1").Interior.Color = RGB(0, 255, 0)
Range("A1").Font.Color = RGB(255, 0, 0)
Else
Range("A1").Interior.Color = RGB(255, 0, 0)
Range("A1").Font.Color = RGB(0, 255, 0)
End If
Idozites = Now + TimeSerial(0, 0, 1)
Application.OnTime Idozites, "Szincsere", , True
End SubHa az A1 cellába beírod hogy "ok" akkor villog a cella háttere, meg a betűszín, egyéb esetben meg nem. Bár a VB nem az erősségem, de ez olyan jó feladat volt, hogy nem bírtam ellenállni, hogy egy kis kitérőt tegyek
Nyílván ha szép elhalványodó, színátmenetes villogást szeretnél, akkor azért ennél több kell. Azonban egyetértek Delila_1-el, miszerint felesleges, jobb a hagyományos módszer.(ne villogjon, csak legyen más színe).Fire.
-
Delila_1
veterán
válasz
Gabcsika #4062 üzenetére
Az, hogy miben tér el a két oszlop, a tartalmuktól függ. A Ha függvénnyel kérheted az egyenlőség, ill. a NEM egyenlőség megmutatását.
=HA(A1=B1;"Azonosak";"Eltérnek")
Ha összegek vannak a két oszlopban, akkor
=Ha(A1>B1;"'A' nagyobb";ha(B1>A1;"'B' nagyobb";"Egyenlőek"))
Ez tulajdonképpen szövegek összehasonlítására is jó, ott a "nagyobb" azt jelenti, hogy az ABC rendben később szerepel.
-
Delila_1
veterán
válasz
Gabcsika #3971 üzenetére
Húzd át Excelbe. Az egészet beteszi az A oszlopba.
Jelöld ki az oszlopot, Csere.
Mit kereshez írj egy szóközt, Mire cserélihez semmit. Mindet cserélje.
Marad a kijelölés, a cserénél a Ft-ot cseréld semmire.
Adatok/Szövegből oszlopok/Tagolt, a következő oldalon a határolójel Más, mellé írd be a / jelet. Kész.
A B oszlop adatait ezután formázhatod úgy, hogy mögötte legyen minden sorban Ft. -
Delila_1
veterán
válasz
Gabcsika #3765 üzenetére
Szívesen.
A Formátum/Feltételes formázással könnyen megoldható.
[Itt egy kép] -
Delila_1
veterán
válasz
Gabcsika #3464 üzenetére
Szia Gabcsika!
Megtisztelő, hogy személyesen engem szólítasz meg, de itt a fórumon erre sokan mások is tudnak válaszolni.
A VLOOKUP a magyar FKERES angol megfelelője, azt jelenti, hogy függőlegesen keres.
Példa: van egy halom anyagod, cikkszámmal, súllyal. Az anyag megnevezését tudod, amellé kell beilleszteni a megfelelő cikkszámot, és a súlyt.
Van egy táblázatod, mondjuk a $J$1:$L$100 tartományban, ahol a J az anyag nevét, a K a megfelelő cikkszámot, az L a súlyt tartalmazza.
A napi használatban felviszed az anyag nevét az A oszlopba. Az A1 az oszlop nevét tartalmazza, az adatok A2-ben kezdődnek. A B oszlopba kellene beírni a cikkszámot, a C-be a súlyt, ehelyett a Vlookup függvényt írod be a B2-be:
=Vlookup($A2;$J$1:$L$100;2;FALSE)
Az első paraméter a keresendő érték, jelen esetben az A2 cella tartalma. A 2. paraméter a tábla, ahol keresni kell, ez a $J$1:$L$100.
A függvény a tábla első oszlopában keresi a keresendő értéket, az anyag nevét. A 3. paraméterrel adjuk meg, hogy a tábla hanyadik oszlopában lévő adatot írja az B2-be, ez itt most a második. Az utolsó paraméter egy logikai érték, amivel azt adhatjuk meg, hogy pontos-, vagy közelítő értéket keresünk-e. A FALSE pontos egyezést ad. A súgó leírja a közelítő értékek keresésének módját.
A függvény a B2 cellába beírja a cikkszámot.
A B2 képletét átmásolod a C2-be, és az oszlop számát átírod 2-ről 3-ra, mert ide a tábla 3. oszlopában lévő súlyt kell beíratni.
A C2 így néz ki:
=Vlookup($A2;$J$1:$L$100;3;FALSE)
Ezt a két képletet lemásolod addig, ameddig szükséges. Ezután elég az anyag nevét beírni az A oszlopba, a másik két adatot a függvények mellé írják.Jó munkát
-
Delila_1
veterán
válasz
Gabcsika #3448 üzenetére
Vegyük, hogy az adataid a Munka1 lapon vannak, A oszlopban a megnevezés, B-ben a szám_1, C-ben a szám_2.
Munka2 A2-be: =HA(Munka1!$B2=Munka1!$C2;Munka1!A2;"")
Ezt jobbra húzod a C oszlopig, onnan a hármat együtt le addig a sorig, ameddig a Munka1-en adataid vannak. Kapsz egy foghíjas táblázatot.
A Munka2 lapon bekapcsolod az autoszűrőt, bármelyik oszlopban kiszűröd az üres sorokat, és törlöd azokat.
A szűrő visszaállítása után érdemes a Munka2 lapon kijelölni az A,B,C oszlopokat, másolás, ugyanoda érték beillesztés (hogy a képletek helyére a fix adatok kerüljenek).
Új hozzászólás Aktív témák
Hirdetés
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 4060 Ti 8GB GAMER PC termékbeszámítással
- KIÁRUSÍTÁS - REFURBISHED és ÚJ - Lenovo ThinkPad Ultra Docking Station (40AJ)
- Apple iPhone 13 Mini 128GB, Kártyafüggetlen, 1 Év Garanciával
- Bomba ár! Dell Latitude E6520 - i7-2760QM I 8GB I 256SSD I Nvidia I HDMI I 15,6" HD+ I W10 I Gari!
- Eredeti Lenovo 300W töltők - ADL300SDC3A
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest