-
Fototrend
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
veterán
válasz
benjoe1 #52406 üzenetére
Egy rövid makróval meg lehet oldani. Makróbarátként kell mentened a füzetet.
Az A10 helyett más cellába is adhatod az eredményt.Sub Kigyujtes()
Dim sor As Integer, szoveg As String
sor = 2
Do While Cells(sor, 2) > ""
If Cells(sor, 3) <> "" Then szoveg = szoveg & Cells(sor, 2) & ","
sor = sor + 1
Loop
Range("A10") = Left(szoveg, Len(szoveg) - 1)
End Sub
-
Mutt
senior tag
válasz
benjoe1 #44180 üzenetére
Szia,
Makrómentesen 2 megoldás:
1. A Projektneveket egy Kimutatással soroltam fel alul.
2. B10-ben ez a csúnya tömbképlet van.=HA(A10<>"";SZÖVEGÖSSZEFŰZÉS(";";IGAZ;HA(ELTOLÁS($B$1;HOL.VAN($A10;$A:$A;0)-1;;;DARAB2($1:$1)-1)>0;ELTOLÁS($B$1;0;;;DARAB2($1:$1)-1);""));"")
Kell hozzá Excel 2016-tól elérhető SZÖVEGÖSSZEFŰZÉS, a végén CSE-t kell nyomni. Másold le sokszor, hogyha új projekt jön akkor automatikusan megjelenjen. Ha az oszlopok száma nem bővül (vagyis nem hétről-hétre adjátok hozzá őket, akkor a második ELTOLÁST le lehet cserélni fix tartományra, pl. $B$1:$BA$1-re)
2. Excel 2010-től van Power Query, amiben kb. 10 lépés. A lényeg az ún. UNPIVOT (magyarul elemi értékre bontás).
üdv
-
Delila_1
veterán
válasz
benjoe1 #44199 üzenetére
Makróval megoldható.
Első oszlop projektek, másodikba ír a makró, 3-tól az első sorban vannak a hetek.
A makrót modulba tedd, a füzetet makróbarátként kell mentened.Sub Heti_Arbevetel()
Dim oszlop As Integer, uoszlop As Integer, sor As Long
Columns("B:B") = ""
Range("B1") = "Tervezett" & vbLf & "árbevételek"
sor = 2: uoszlop = Cells(1, Columns.Count).End(xlToLeft).Column
Do While Cells(sor, 1) <> ""
For oszlop = 3 To uoszlop
If Cells(sor, oszlop) > "" Then Cells(sor, 2) = Cells(sor, 2) & Cells(1, oszlop) & ", "
Next
If Len(Cells(sor, 2)) > 0 Then Cells(sor, 2) = Left(Cells(sor, 2), Len(Cells(sor, 2)) - 2)
sor = sor + 1
Loop
Columns("B:B").EntireColumn.AutoFit
End Sub -
Delila_1
veterán
válasz
benjoe1 #25572 üzenetére
Szűröd az A oszlopot, majd indítod a lenti makrót.
Sub Rejt()
Dim sor As Integer, oszlop As Integer
Application.ScreenUpdating = False
sor = Range("A" & Rows.Count).End(xlUp).Row
For oszlop = 2 To 200
If Cells(sor, oszlop) = "" Then
Columns(oszlop).Hidden = True
Else
Columns(oszlop).Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub -
Delila_1
veterán
válasz
benjoe1 #3820 üzenetére
A Selection.Offset(3.1).Select sort itt nem értem, meg szerintem a cikluson belül módosítani kellene a kijelölés helyét. Nálad működött?
Az enyémben az usor kezdetű sor felesleges, de nem árt senkinek. Előbb a ciklust az usorig vittem, aztán a módosítottban benne hagytam a szemetet.
Új hozzászólás Aktív témák
- LG 35WN75C-B - 35" Ívelt VA - 3440x1440 - 100Hz 5ms - USB Type-C 60W - AMD FreeSync - HDR 10
- GYÖNYÖRŰ iPhone 13 mini 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3133, 95% Akkumulátor
- BESZÁMÍTÁS! ASUS B760M i9 12900K 32GB DDR4 1TB SSD RTX 3080 10GB ZALMAN S2 TG A-Data 750W
- Lenovo X13 Yoga 2in1 Thinkpad WUXGA Touch i5-1145G7 vPro 16GB 256GB 4G LTE GPS Win11 Pro Garancia
- Huawei Quidway S5324TP-SI-AC - 24G, 4SFP, L2, managed switch
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest