- A Bosch szerint Európának nem kellene az AI-t a halálba szabályozni
- Nehéz helyzetben az SMIC, régebbi chipet használ az új Huawei laptop
- Norvégia átmenetileg betiltja az áramigényes kriptobányászatot
- One otthoni szolgáltatások (TV, internet, telefon)
- Telekom otthoni szolgáltatások (TV, internet, telefon)
-
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
-
mr.nagy
tag
Nem csak 1 és 0 lehet. Ahol több karakteres a cella ott bármilyen szám, de csak max. a látható karakter mennyiség szerint. Tehát ahol 3 karakter látható a cellában ott 1-től 999-ig bármi.
Fire/SOUL/CD
Köszönöm, de nem jó! Mindig 13 karakterből álló kódot kell kapnom. Így ha ott ahol 3 karakteres a cella, ott ha mondjuk 1 az érték akkor a 001 sorozatnak kell hozzáadódni, ha 889 akkor csak egyszerűen a 889. -
Berakom ezt a makrót is, ha másért nem, hátha mások találnak benne a későbbiekben hasznosítható ötletet.
Private Sub CommandButton1_Click()
'FSCD_MIN_MAX_With_Unique Macro
Dim MyCell As Range
Dim MyCollection As New Collection
Dim MyValue As Variant
Dim MyTypeSrcRange As Range, MyTimeSrcRange As Range, MyDestRange As Range
Dim MyTypeColumnRow As Range, MyTimeColumnRow As Range
Dim MySrcColumn As String
Dim MySrcRow As Integer
Dim MyFxs As WorksheetFunction
Set MyFxs = Application.WorksheetFunction
Application.EnableEvents = False
Application.ScreenUpdating = False
'A TÍPUS adatok ettől a cellától kezdődnek
Set MyTypeColumnRow = Range("A2")
'Az IDŐ adatok ettől a cellától kezdődnek
Set MyTimeColumnRow = Range("B2")
'Az elkészítendő TÁBLÁZAT kezdőcellája (táblázat bal-felső sarka)
Set MyDestRange = Range("C2")
Set MyTypeSrcRange = Range(MyTypeColumnRow.Address & ":" & Chr(MyTypeColumnRow.Column + 64) & Cells(Rows.Count, Chr(MyTypeColumnRow.Column + 64)).End(xlUp).Row)
Set MyTimeSrcRange = Range(MyTimeColumnRow.Address & ":" & Chr(MyTimeColumnRow.Column + 64) & Cells(Rows.Count, Chr(MyTimeColumnRow.Column + 64)).End(xlUp).Row)
For Each MyCell In MyTypeSrcRange
On Error Resume Next
MyCollection.Add MyCell.Value, CStr(MyCell.Value)
Next MyCell
i = 1
MyDestRange.Offset(0, 0) = "Típus"
MyDestRange.Offset(0, 1) = "MIN"
MyDestRange.Offset(0, 2) = "MAX"
For Each MyValue In MyCollection
MyDestRange.Offset(i, 0).NumberFormat = "@"
MyDestRange.Offset(i, 0) = MyValue
MyDestRange.Offset(i, 1).NumberFormat = "[h]:mm:ss"
MyDestRange.Offset(i, 1).FormulaArray = "=MIN(IF(" & MyTypeSrcRange.Address & "=""" & MyDestRange.Offset(i, 0) & """," & MyTimeSrcRange.Address & "))"
MyDestRange.Offset(i, 2).NumberFormat = "[h]:mm:ss"
MyDestRange.Offset(i, 2).FormulaArray = "=MAX(IF(" & MyTypeSrcRange.Address & "=""" & MyDestRange.Offset(i, 0) & """," & MyTimeSrcRange.Address & "))"
i = i + 1
Next MyValue
Set MyTypeSrcRange = Nothing
Set MyTimeSrcRange = Nothing
Set MyDestRange = Nothing
Set MyTypeColumnRowe = Nothing
Set MyTimeColumnRowe = Nothing
Set MyCollection = Nothing
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub -
m.zmrzlina
senior tag
A következő elrendezést és Excel2007-et feltételezve a következő lehet egy megoldás:
A:B tartomány lefelé folytatódik.
És a makró:
Sub minmax()
Dim min As Single
Dim max As Single
Dim tipus As String
Dim i As Integer
For i = 1 To Range("A1048576").End(xlUp).Row
Cells(i, 1).Select
tipus = ActiveCell.Value
min = ActiveCell.Offset(0, 1).Value
min = ActiveCell.Offset(0, 1).Value
If Application.WorksheetFunction.CountIf(Range("D:D"), tipus) = 0 Then
Do While ActiveCell.Value <> ""
If ActiveCell.Value = tipus Then
If ActiveCell.Offset(0, 1).Value <= min Then
min = ActiveCell.Offset(0, 1).Value
If ActiveCell.Offset(0, 1).Value >= max Then
max = ActiveCell.Offset(0, 1).Value
End If
End If
End If
ActiveCell.Offset(1, 0).Select
Loop
Cells(Range("D1048576").End(xlUp).Row + 1, 4).Value = tipus
Cells(Range("E1048576").End(xlUp).Row + 1, 5).Value = min
Cells(Range("F1048576").End(xlUp).Row + 1, 6).Value = max
End If
Next
End Sub -
perfag
aktív tag
Akkor szerintem nem értjük egymást. Vagy én nem értem a feladatot, vagy Te a megoldást.
A megoldásomhoz nem kell rendezett tartomány, nem kell tartományt kijelölni sem. Az Excel-t azért nem árt ismerni.
Ha H4-be beírom tömbképlettel {=MAX(SOR(C:C)*(C:C<>""))}, akkor megvan a tartomány utolsó cellája.
Ha H3-ba beírod a keresett típust, akkor a
{=MIN(INDIREKT("d5:d"&H4))*(INDIREKT("C5:C"&H4)=H3)}
tömbképlet megadja az adott típushoz a minimum időértéket.Én ezt értettem a feladat leírásodból, adott típusra a minimum és a maximum meghatározása.
-
Makróval megoldható, csak pár infóra szükség van
1. Melyik oszlopban vannak a Típusok, és melyikben az időadatok?
2. Van-e fejléce az oszlopoknak?
3. Melyik cellától kezdődjön az összesítő táblázat? (Pl C1-től és függőlegesen legyenek a típusok és melléjük a MIN/MAX értékek) -
perfag
aktív tag
Nekem 2010-esem van, abban ha kijelölöm a rajzterületet, a helyi menüjében a Rajzterület formázása párbeszédablakban Kitöltés lapon van egy rakat lehetőség, pl. Színátmenet kitöltés. Be lehet rakni színátmeneti végpont csúszkákat, azokat lehet huzigálni, a sávoknak színt adni - úgy baromság, ahogy van.
Én csinálnék egy képernyő lopást, ez megadja a diagram léptékét, Photoshopban, vagy bármilyen fóliázásra képes képszerkesztőben rátenném a sávokat, ezt a sávos képet kimenteném és a Kitöltés képpel vagy anyagmintával opcióval betenném háttérképnek. -
ArchElf
addikt
Szerintem letölteni nem tudod (mivel a fizetős office csomag része, nem ingyenes kiegészítő), de ott kell legyenek az Office CD-n...
kis segítség
Ja és a MUI-val összeveszik, ha az fenn van (pl. angol install magyar nyelvvel), bár ez Excelben máshol is gondot okozhat...AE
-
föccer
nagyúr
Számold ki, hogy mennyi az átlag, vagy a medián, amit akarsz, majd vegyél fel egy új adatsort, ami konstansan ezt az értéket veszi fel az első x ponttól az utolsóig. Ez egy vízszintes vonalként fog megjelenni. Ugyanúgy formázható, és hivatkozható, mint bármi más. Egyébként meg simán lehet vonalat is rajzolni a diagramra.
üdv, föccer
-
ArchElf
addikt
Mármint excelben levő pontokból, vagy hogy képzeled el kb...? Mit szeretnél, kicsit konkrétabban?
"Csak úgy" szeretnél gauss görbét rajzolni, vagy megadott pontokra Gausst illeszteni?
AE
-
-
-
Delila_1
veterán
Gyorsabb, ha az Excel saját keresőjét használod.
A keresőbe beviszed az L1_L1-et, és a "Listába mind" gombbal kiíratod a találatokat.
A lista tartalmát kijelölöd, és indítod az alábbi makrót:Sub gyűjt()
Dim KövSor As Range
Set KövSor = Sheets("Munka2").Range("A" & Rows.Count).End(xlUp).Offset(1).EntireRow
Selection.EntireRow.Copy KövSor
End Sub -
ulrik19
tag
Ha a keresett szövegdarabbal kezdődnek a vizsgálandó cellák, akkor talán az ABC-rendezéssel és az algoritmus kicsi átalakításával némileg gyorsítható.
illetve ha pár kiértékelést átalakítasz (de ez nem biztos, hogy gyorsít, sosem teszteltem)
pl.
meddig = 50000 ' persze ezt kiszámolni valahogy előtte, pl. darabteli()-vel
For i = 9 to meddig
If InStr(1, Cells(i, 1), "MOVE_L1_L1") > 1 Then
Cells(x, 3) = Cells(i, 1)
x = x + 1
End If
Next i -
Hali!
Látom ulrik19 kolléga megelőzött, de ha már én is megírtam, akkor be is rakom.
Ez Microsoft ActiveX Data Objects 6.0 Library bővítménnyel és adatkapcsolattal, valamint mysql connector ODBC bővítménnyel megtámogatva van elkészítve. Természetesen kifogástalanul működik. Egy excel_mysql nevű adatbázis, test nevű tábláján megy végig és írja ki sorban a mezőket.
Private Sub CommandButton1_Click()
Dim FSCD_SQLConnection As ADODB.Connection
Dim FSCD_Recordset As ADODB.Recordset
Dim FSCD_SQLConnectionString As String
Dim FSCD_SQLCommand As String
Dim FSCD_MYSQL_Table As String
On Error GoTo FSCD_ErrorHandler
FSCD_MYSQL_Table = "test"
FSCD_SQLConnectionString = "Provider=MSDASQL.1;Persist Security Info=True;" & _
"User ID=root;Extended Properties='';DSN=Excel_MySQL_Tutorial;" & _
"UID=root;SERVER=127.0.0.1;DATABASE=excel_mysql;PORT=3306;'';" & _
"Initial Catalog=excel_mysql;Initial Catalog=excel_mysql"
Set FSCD_SQLConnection = New ADODB.Connection
FSCD_SQLConnection.ConnectionString = FSCD_SQLConnectionString
FSCD_SQLConnection.Open
FSCD_SQLCommand = "SELECT * FROM " & FSCD_MYSQL_Table
Set FSCD_Recordset = New ADODB.Recordset
FSCD_Recordset.Open FSCD_SQLCommand, FSCD_SQLConnection
FSCD_Recordset.MoveFirst
While Not FSCD_Recordset.EOF
MsgBox FSCD_Recordset.Fields("mező1").Value
MsgBox FSCD_Recordset.Fields("mező2").Value
FSCD_Recordset.MoveNext
Wend
FSCD_Recordset.Close
FSCD_SQLConnection.Close
Exit Sub
FSCD_ErrorHandler:
MsgBox "Error:" & Err.Description, vbCritical, "Fire/SOUL/CD"
End SubFire.
-
ulrik19
tag
Kell hozzá a Microsoft ActiveX Data Objects 2.8 Library (Tools/References).
Értelemszerűen adatbázisnév, felhasználónév és jelszó a ConnectionString-ben. Illetve ugyanitt meg kell adni az adott MySQL ODBC driver-t. (Nálam 5.1, de az adott gépen persze lehet más. Ha rosszat adtok meg, nem találja meg.)
Ebben a példában 3 mezőt ad vissza a lekérdezés, aztán minden visszaadott adatot kinyom az első sheet-re. Profin persze kellene bele hibakezelés stb.
Option Explicit
Public conn As ADODB.Connection
Public rs As Recordset
Public sh1 As Worksheet
Public SQL As String
Public Sub mySQL_kapcsolat()
Dim c As Integer
Set sh1 = Excel.Worksheets(1)
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost; DATABASE=adatbazisnev;UID=anonymus;PWD=; OPTION=3"
conn.Open
SQL = "select * from tbl_tablanev"
rs.CursorLocation = adUseServer
rs.Open SQL, conn
rs.MoveFirst
c = 1
Do Until rs.BOF Or rs.EOF
sh1.Cells(c, 1).Value = rs.Fields(0)
sh1.Cells(c, 2).Value = rs.Fields(1)
sh1.Cells(c, 3).Value = rs.Fields(2)
rs.MoveNext
c = c + 1
If rs.EOF Then
rs.MoveFirst
Exit Sub
End If
Loop
End Sub -
Delila_1
veterán
A 2000 verzióban is kiválóan működik.
A kijelöléssel lehet baj. Az oszlopot az oszlopazonosítón – betűn – kattintva jelöld ki a másoláshoz, másolsz (Ctrl+c), lépj a másolás helyének első sorába, beillesztés (Ctrl+v).
Hasonlóan járj el a sor másolásánál, ott a sorazonosítón kattintva jelöld ki a sort, és az első, A oszlopbéli cellán állva illesztd be.
Ha így teszel, nincs szükség az irányított beillesztésre, ez mindent visz magával. -
-
Lehdog
csendes tag
Üdv!
A következő sorokat az office.microsoft.com-on találtam.
"Az XML nyelvvel kapcsolatos szolgáltatások csak a Microsoft Office Professional Edition 2003 programcsomagban és a Microsoft Office Excel 2003 alkalmazásban használhatók. Ez alól kivétel a fájlok XML formátumú számolótáblaként való mentése."
Egyébiránt az xml fájloknak több mint 15 különböző fajtája van. Az Office 2003-nál régebbi verziók nem támogatják mindegyiket. Ha nem megy az importálás menüponttal, akkor valószínűleg egy nem támogatott xml struktúrával állsz szemben, amire az Office 2000 nem nyújt érdemi megoldást.
A megoldási javaslatom pedig az "Open XML konverter" nevű alkalmazás.
Sok sikert!
ui: az első hsz-ben nem írtad, hogy 2000-et használsz
-
Hali!
Igen, roppant egyszerűen, simán csak megnyitod az XML-t(Excel-ből) és választasz az "arcodba figyelő" ablak lehetőségei közül(3 van)
Részletesebben
(Amúgy ez Excel 2007-ben is így van, csak menürendszer miatt, máshol találja meg az ember)Fire.
-
boecce
tag
Ha tényleg zavar, akkor "Ablak">> "felfedés,vagy elrejt" paranccsal tudod szabályozni. Természetesen az Elrejt-et válasszad. (no persze nekem még 97-es van, nem tudom, változott-e az ujabbakban). Aztán ha sikerült elrejteni, már csak akkor lesz vele gondod, ha ujabb makrót írsz , és az t mentenéd az "Egyéni makrófüzet"-be--- Mert akkor nem engedi, előbb fel kell fedni..
-
#00809728
törölt tag
Hát igazából egy táblázat kéne és nem több sheet azaz 1 lap.
Nos ha kijelőlsz tőbbet accesben akkor csak 65.000 sort tud fogadni a excel .Itt a probléma mert nekem az lenne a legjobb ha az ősszes adatot be tudnám rakni vagy lenne egy olyan lehetőség mint a nyomtatoknál,hogy sok-sok lapra ő kirakná automatán.Remélem érthetően írtam...
-
Delila_1
veterán
Kösz szépen a könyv címét.
A fenti makród most azokat a sorokat törli, amelyekben nem szerepel 0. Eddig nem fordítva akartad? Ha igen, akkor csak a feltételt kell módosítani, If nev <> 0-ra.
Az i=19 helyett elegánsabb az Exit For.
Minden feladatot több módon lehet végrehajtani, itt egy másik, ez a nullás sorokat törli.For x = 2 To 10
For i = 0 To 19
nev = Cells(x, i + 7)
If nev = "0" Then
Rows(x).Select
Selection.Delete Shift:=xlUp
x = x - 1
Exit For
End If
Next i
Next x -
Amazonas
senior tag
Egyszerre több oszlopot is szűrni egyidejűleg, teljesen „személyre szabott” feltételekkel.
Ha jól értem, amit akarsz, akkor minden érintett oszlopot szűrj le így:
Autofilter-t ráteszed, ahogy Delila mondta, majd a az érintett oszlopoknál a legördülő menüből az (Egyéni...)/(Custom...) szűrőt választod.
A párbeszédablakban pedig add meg, hogy Tartalmaz (Contains) 0. -
Delila_1
veterán
A soradik (aktuális sor) 7. (G) oszlopában levő értéket, annak is a jobboldali 2 karakterét.
Ezt teszi be a nev változóba.
Azután az esetleges mínusz jel miatt tovább vizsgálja. Ha a két karakterből álló nev baloldali 1 karaktere – left(nev,1) – kettőspont, akkor a nev jobboldali 1 karakterét veszi alapul, egyébként pedig a teljes nev változót (pl. -1). -
Delila_1
veterán
Ha már Amanozas így megbízik bennem, itt a makró. (Igazad van Amazonas, körkörös hivatkozás lenne).
Sub mem()
Range("G1").Select
Selection.End(xlDown).Select
usor = Selection.Row
For sor = 1 To usor
nev = Right(Cells(sor, 7).Value, 2)
If Left(nev, 1) = ":" Then nev = Right(nev, 1)
Cells(sor, 7) = nev
Next
End Sub -
-
Amazonas
senior tag
Adatok menü -> Szűrő menüpont > Irányított szűrő -> Szűrendő tartományt kijelölöd -> alul "Csak az egyedi rekordok megjelenítése" elé pipa. Igy csak leszűri helyben.
Ha azt akarod, hogy a többszöri előfordulások ne is maradjanak benne elrejtve a táblában, akkor "Más helyre másolja" elé bejelölést teszel, vagy egyszerűen csak átmásolod a leszűrt táblát egy új lapra. -
Amazonas
senior tag
Pedig jó az Autofilter.
Az időoszlop szűrőjénél a kis legördülő menüből kiválasztod a "Custom..."-ot.
Utána értelemszerűen megadod a feltételeket szintén a legördülő menüből:
- Greater than kiválaszt, majd mellé értéknek beírod: 8:00:00 AM
és
- Less than kiválaszt, majd mellé értéknek beírod: 16:00:00 PM.
... és OK.
Ha azt akarod, hogy a két szélsőérték is benne legyen a tartományban, nyilván a Greater than or equal-t, és a Less than or equal-t választod ki értelemszerűen. -
Delila_1
veterán
Másik megoldás a másoláson kívül, hogy hivatkozol a többi lap celláira.
Az első lap első üres oszlopába: =Sheet2!A1
Ezt vízszintesen, és függőlegesen is másolod addig, amíg az adatok kívánják.
Következő üres oszlopba =Sheet3!A1
és így tovább. A feleslegessé vált lapok törlése előtt az újonnan behozott adatokat másold, és ugyanoda irányítottan, értékként illeszd be (Insert menü).Lehet, hogy gyorsabb a Ctrl+C. Még hasznosabb is, mert ha a lapokon képletek, függvények szerepeltek, akkor azok a fenti módszerrel elvesznek.
-
L3zl13
nagyúr
Ez nem a jelszó, hanem az oldal neve, akik eredetileg csinálták a képeket. Ott fent vannak a megoldások is (angolul természetesen) csak meg kell keresni a képeket, mert az exceles kvíz úgy lett öszeválogatva több eredeti kvízből, és átmagyarítva.
Ha ez a 100 képes verzió, akkor a fenti súgó nélkül asszem 92-t sikerült. Elég nagy csapat ''dolgozott'' rajta.
Új hozzászólás Aktív témák
Hirdetés
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Vírusirtó, Antivirus, VPN kulcsok
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap - NYÁRI AKCIÓ!
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem, Most kedvező áron!
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Dell P2419H P2419Hc Full HD LED IPS 24" + P2719H 27" LCD monitor (vékony keretes)
- Álmodozol egy erősebb gamer élményről? Kamatmentes rèszletre is!
- AKCIÓ! MSI B450M R5 5600X 32GB DDR4 512GB SSD RTX 3060 12GB Rampage SHIVA Zalman 600W
- Zebra ZP505 EPL - Hőpapíros címkenyomtató
- Fujitsu USB Port Replicator PR09 docking station (1x5K vagy 2x4K felbontás) (DisplayLink)
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged