- GoodSpeed: UEFI BIOS frissítési módok 2016-ban és 2024-ben ASUS alaplapoknál, FlashBack
- eBay-es kütyük kis pénzért
- bb0t: Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
Hirdetés
-
Premier előzetesen az xDefiant
gp Az ingyenes multiplayer FPS premierjére alig két napot kell már csak várni.
-
Spyra: nagynyomású, akkus, automata vízipuska
lo Type-C port, egy töltéssel 2200 lövés, több, mint 2 kg-os súly, automata víz felszívás... Start the epic! :)
-
A tüntetések ellenére is bővítheti német gyárát a Tesla
it Hiába a nagy tüntetések, a helyi önkormányzat rábólintott a Tesla német gyárbővítésére.
-
PROHARDVER!
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
-
Delila_1
Topikgazda
válasz bara17 #25925 üzenetére
Szorozd meg 1-gyel az oszlopot.
Beírsz egy üres cellába egy 1-est, másolod (Ctrl+c-vel), kijelölöd az átalakítandó értékeket, és irányítottan, szorzóként beilleszted az 1-est. Utána törölheted a szorzót.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
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 -
Louro
őstag
válasz bara17 #26091 üzenetére
Ha nincs átnevezgetve vagy az elnevezésben van folytonosság, akkor ciklussal copy-paste-elnék.
Range(a-tól z-ig).Copy
For ciklussal meg végigmennék az összes munkalapon, amin kell és beilleszteném, ahová kell.Remélem tudtam segíteni.
Mess with the best / Die like the rest
-
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[ Szerkesztve ]
Mess with the best / Die like the rest
-
Fferi50
őstag
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.
-
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órolodMá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.
[ Szerkesztve ]
-
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 :
[ Szerkesztve ]
-
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
Építésztechnikus. Építőmérnök.
-
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.
-
Fferi50
őstag
-
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))
-
Mutt
aktív 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
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
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.
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen