- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- Elektromos rásegítésű kerékpárok
- Argos: Szeretem az ecetfát
- zebra_hun: Hűthető e kulturáltan a Raptor Lake léghűtővel a kánikulában?
- Gurulunk, WAZE?!
- eBay-es kütyük kis pénzért
- Parci: Milyen mosógépet vegyek?
-
LOGOUT
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
-
Mutt
senior tag
válasz
nzsolt74 #20112 üzenetére
Hello,
...Az első oszlop 14 soronként ugyanaz, ezekből szeretnék egy új lapon 14 oszlopot fejléccel...
Makrós megoldásod van már, de ezt képletekkel is el lehet érni, mivel az adatod struktúrált.
A lényeg, hogy az új lapodon a második sorban a Név mezőbe a másik lap 1 sorát, a 15-et, a 29-et stb. kell kiíratni.
Ez az alábbi logikával írható le: 14*{0;1;2;3..}+1
Excelben a képleted: =14*(SOR()-2)+1 (2-t kell kivonnunk mert az elsőben fejléc van már)A születési idő a 2, 16, 30 stb. sorokban van, ahol a képlet a fentiektől csak annyiban tér el, hogy nem 1-et, hanem mindig 2-t kell adni az elsőrészhez.
Mivel a név az első oszlopban van, a születési idő a másodikban (és így tovább), ezért ha használjuk az OSZLOP függvényt akkor nem kell nekünk megadni, hogy egyik esetben 1-et, a másikban 2-t stb. kell hozzádni. Vagyis az univerzális képlet: =14*(SOR()-2)+OSZLOP()
Már csak cella hivatkozás kell, amelyre az INDIREKT függvény szolgál.
A végső képlet tehát: =INDIREKT("Masiklap!B"&14*(SOR()-2)+OSZLOP())Ezt másold le jó sokszor, hogy biztos lefedd a másik lapon összes sorát (10000 sor esetén elgé 715 sorba).
A képlet ott ahol üres a cella 0-t fog kírni, ezt el tudod tüntetni ha vizsgálod a SZÖVEG.E függvénnyel, hogy kaptál-e adatot vissza.
üdv.
-
Delila_1
veterán
válasz
nzsolt74 #20112 üzenetére
Egy rövid makró megcsinálja.
Sub Transzponalas()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim sor As Long, tol As Long, ig As Long, ures As Long
Set WS1 = Sheets("Munka1")
Set WS2 = Sheets("Munka2")
WS1.Activate
'Címsor másolása
Range("A1:A14").Copy
WS2.Range("A1").PasteSpecial Paste:=xlPasteValues, Transpose:=True
'Egységek másolása
ures = 2: tol = 1: ig = 14
Do While Cells(ig, 1) <> ""
Range("B" & tol & ":B" & ig).Copy
WS2.Range("A" & ures).PasteSpecial Paste:=xlValues, Transpose:=True
tol = tol + 14: ig = ig + 14: ures = ures + 1
Loop
End SubSzerk.: A Set-tel kezdődő 2 sorban írd át a lapneveket. Munka1 helyett az adatokat tartalmazó lapodat, Munka2 helyett pedig azt írd be, ahova át akarod írni más formában.
Új hozzászólás Aktív témák
Hirdetés
- Bomba ár! Lenovo ThinkPad T490s - i7-8GEN I 16GB I 256SSD I 14" WQHD HDR I Cam I W11 I Gari!
- Telefon felvásárlás!! Samsung Galaxy A50/Samsung Galaxy A51/Samsung Galaxy A52/Samsung Galaxy A53
- LG OLED Televíziók: FRISS SZÁLLÍTMÁNY -30%
- Csere-Beszámítás! Asus Számítógép PC Játékra! R5 1600X / GTX 1080 8GB / 32GB DDR4 / 256SSD + 2TB HDD
- AKCIÓ! Lenovo Thinkpad P15 Gen1 15 FHD notebook - i7 10750H 16GB RAM 512GB SSD Quadro T1000 W11
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged