Hirdetés
- Google Pixel topik
- Az iPhone Air buktája elkaszálhatta vékonyítási lázat
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Szívós, szép és kitartó az új OnePlus óra
- iOS alkalmazások
- One mobilszolgáltatások
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Redmi Note 9 Pro [joyeuse]
- Magisk
- Xiaomi 15 Ultra - kamera, telefon
-
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
-
ny.janos
tag
válasz
bara17
#42257
üzenetére
Szia!
Tömbképletes megoldások nekem ritkán ugranak be (nem is olyan rég volt, mikor végre sikerült felfognom a lényegüket). A te esetedben attól függően, hogy mire van valójában szükséged és hogyan épül fel az adathalmazod, amiben keresel nem vagyok biztos benne, hogy tökéletesen működni fog egy ilyen megoldás.
A kérdésedet én úgy értelmeztem, hogy mindenképpen a B oszlopban szereplő keresett dátum utáni következő dátumot keressük, feltéve, hogy C oszlopban ott 1-es szerepel. Mind a te, mind Mutt tömbképletes megoldására igaz az, hogy amennyiben a B oszlopban
>=relációra keresel, úgy magát a keresett értéket (nem pedig az azt követő elemet) fogod visszakapni a táblázatodban azokban az esetekben, ha a keresett dátum mellett a C oszlopban 1-es szerepel. Ha a relációt>-ra cseréled, az pedig azzal jár, hogy amennyiben az adathalmazodban egy dátum többször is előfordul közvetlen egymás alatt, úgy szintén nem azt kapod amit szerettél volna, hanem mindenképpen minimum 1 nappal későbbi dátumot.Az alábbi képeken látod az általam vélt működésbeli hiányosságot. Kék háttérrel jelöltem a keresett értéket, zölddel pedig amely értéket eredményként kapni kellene.
-
Mutt
senior tag
válasz
bara17
#42246
üzenetére
Szia,
Excel 2016-tól felfelé van MINHA függvény, amelyet használj így:
=MINHA(B:B;B:B;">"&F2;C:C;1)ahol B oszlop a dátumos oszlop, C a 0/1-et taratalmazó oszlop és F2 a cella ahol van a keresési érték.
Régebbi Excelben pedig egy tömbfüggvény tud segíteni, ezt Ctrl+Shift+Enter-rel kell lezárni.
=MIN(HA((B1:B22>F2)*(C1:C22=1)>0;B1:B22;2^99))üdv
-
ny.janos
tag
válasz
bara17
#42246
üzenetére
Szia!
Egy lehetséges megoldás, hogy felveszel egy segédoszlopot, ahol a második oszlopban szereplő 1-eseket és 0-kat összesíted. Attól függően, hogy a segédoszlopodat hova szúrod be vagy az FKERES és INDEX - HOL.VAN párossal meg tudod találni a kívánt eredményt. Előbb megkeresed az adott dátumhoz tartozó értéket a segédoszlopodban, majd a segédoszlopban ettől eggyel magasabb értékhez keresed vissza a hozzá tartozó dátumot.
D1 cella képlete:
=SZUM($C$1:C1)H4 cella képlete:
=INDEX(B1:B20;HOL.VAN(INDEX(D1:D20;HOL.VAN(H3;B1:B20;0))+1;D1:D20;0)) -
Fferi50
Topikgazda
-
ny.janos
tag
válasz
bara17
#42015
üzenetére
A Ctrl+L billentyűparancs már a régebbi verziókban is a táblázat létrehozása párbeszédpanelt nyitotta meg. Amit írsz az egy makró lehetett. Billentyűparancs módosítása nem hiszem, hogy lehetséges.
Makró helyett: ha van olyan parancs az excelben, ami az aktuális cella feletti cella tartalmát másolja (én nem tudok ilyenről), akkor azt a parancsot felveheted a gyorselérési eszköztárra. A gyorselérési eszköztárra felvett parancsok közül az első tíznek a gyorsbillentyű kombinációja: Alt+1, Alt+2 stb.
-
föccer
nagyúr
válasz
bara17
#31038
üzenetére
Ha egyesítessz 2 cellát, akkor csak 1 cella tartalom lehet, lévén 1 cella lesz, nem kettő. Bár nem értem, hogy pontosan mit szeretnél... Ha az a probléma, hogy a "húzott" képlet másolásban automatikusan módosulnak a cellahivatkozások, akkor használd a $ jelet.
üdv, föccer
-
azopi74
addikt
válasz
bara17
#27438
üzenetére
Bocsi, de ezt a képletes módszert én javasoltam, nem lappy. Ő mást javasolt

és lappy módszere nem működik? mert az még ennél is egyszerűbb....

Most gépközelben vagyok,megnéztem, és igazunk volt, tényleg be lehet képletezés nélkül is állítani (legalábbis 2010-től felfelé) , hogy a legkisebb vagy legnagyobb értéket adott színűre színezzeÍgy :

-
azopi74
addikt
válasz
bara17
#27435
üzenetére
Feltételes formázással lehet, képlettel (MIN függvény)...
De talán van rá beépített formázás is, (verziószámtól függ, nézd át a "gyári" opciókat) ami pont ezt csinálja, és akkor még ezt is megspórolod
Másik kérdésre: HA függvénnyel (és minden más worksheet függvénnyel) csak a cella tartalmát tudod befolyásolni, a formázását nem. Szóval nem, nem lehet vele színezni
Feltételes formázás a barátod, ha ilyet akarsz. VBA teljesen felesleges ilyen célra. -
Fferi50
Topikgazda
válasz
bara17
#26516
üzenetére
Szia!
Mit látsz az adott cellában a munkalapon? 5.500 vagy valami mást? Mert az egy dolog, hogy a csv fájlban pontok vannak. Szám megjelenítésnél - ha a cella számformátumú, akkor nem tudsz így cserélni.
A cella számformátumától függ, hogy egy szám milyen módon jelenik meg. Először azt kellene megnézni, gyanítom, hogy elég lenne a cellaformátumot megváltoztatni.Üdv.
-
Louro
őstag
válasz
bara17
#26097
üzenetére
Akkor egy segédmunkalapon felírnám a munkalapokat egymás alá. X-et tetetnék, amibe kell másolni. Majd szűrő az X-re, a megmaradt neveket tömbbe gyűjteném majd ciklussal a megfelelő munkalapokra másolnám. Ne bonyolítsuk, hogy munkalaponként máshová

Szűréshez kulcssszó:autofilter
...Szanaszét kommentelten. Fáradtan ez lett.....valószínűleg a topiktulaj tud majd szebbet is.
Sub Munkalapozó()
Dim MunkalapTomb As Variant
Dim WS As String
Dim lastrow As Integer
'Segéd sheet-en a munkalapok nevei. x-szel kell jelölni, hogy mi kell
Sheets("Segéd").Range("A1:B200").AutoFilter Field:=2, Criteria1:="x"
Range("A2:A" & ActiveSheet.UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Select
'mennyi munkalapról van szó. Mekkora lesz a tömb
lastrow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Rows.Count
'másolás
Selection.Copy
'beillesztés egy segédoszlopba
Range("E1").PasteSpecial xlPasteValues
'tömbbe másolás
MunkalapTomb = Sheets("Segéd").Range("E1:E" & lastrow).Value
'segédoszlop törlése
Range("E1:E" & lastrow).Clear
'ciklus amekkora a tömb mérete
For i = 1 To UBound(MunkalapTomb)
'vegye ki a tömb soron következő elemét
WS = MunkalapTomb(i, 1)
'itt kell megadni, hogy mit akarsz másolni
Sheets("Segéd").Range("A1:A10").Select
'vágólapra tegye ki
Selection.Copy
'a megfelelő munkalapra illessze be az A1-től.
Sheets(WS).Range("A1").PasteSpecial xlPasteValues
Next
'Szűrő kikapcsolása
Sheets("Segéd").AutoFilterMode = False
End Sub -
azopi74
addikt
válasz
bara17
#25919
üzenetére
Egyébként nem akarok beleszólni, de ha a makród nem .csv-ből "másolná" a dolgokat, hanem szabályosan importálná , akkor ezt az egész fejtörést megspórolhatnád magadnak, mivel akkor nem lenne szükség text to columsra sem.
Megadhatnád neki rögtön a delimitereket (elválasztókat), ezres elválasztót, tizedes elválasztót, oszloponkánt beállíthatod az adattípust, stb.

Valahogy így
With ActiveSheet.QueryTables.Add(Connection:="TEXT;eleresi ut.csv" _
, Destination:=Range("$A$1"))
.Name = "table"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1)
.TextFileDecimalSeparator = ","
.TextFileThousandsSeparator = "."
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With -
Delila_1
veterán
Új hozzászólás Aktív témák
- Kertészet, mezőgazdaság topik
- Vezeték nélküli fejhallgatók
- Fejhallgató erősítő és DAC topik
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Windows 11
- Google Pixel topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Az iPhone Air buktája elkaszálhatta vékonyítási lázat
- EAFC 26
- Formula-1
- További aktív témák...
- Witcher 1 Collector's Edition
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Vírusirtó, Antivirus, VPN kulcsok
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- BESZÁMÍTÁS! MSI B550M R7 5800X 32GB DDR4 1TB SSD RTX 3070Ti 8GB Zalman T4 Plus Cooler Master 750W
- Dupla Lencsés PTZ Biztonsági Kamera 2.4/5G Dual Band Wifi Kamera+128gb mermoria kártya
- ÚJ Microsoft Surface Laptop 7 13.8" 2K - 120Hz Érintő - Snapdragon X Elite - 16GB - 512GB-2 év gari
- BESZÁMÍTÁS! MSI B550M R9 3900X 32GB DDR4 500GB SSD RX 7800XT 16GB Corsair 4000D Cooler Master 750W
- Xiaomi Redmi Note 11 Pro / 6/128GB / Kártyafüggetlen / 12Hó Garancia
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest





Fferi50

