-
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
-
bteebi
veterán
Sziasztok!
Van egy viszonylag nagy táblázatom, és alatta ugyanaz, értékek nélkül. A felső táblázatban alapvetően számok vannak, de van néhány szöveges mező is. Fontos, hogy ezek a szöveges értékek ki legyenek szűrve. Az alsó táblázatba a felső táblázat adatait szeretném bizonyos szűrő feltételek mellett bemásolni. A szűrő feltétel az S130-as cellában lévő érték; ha attól nagyobb a cella értéke, akkor szűrésre kerül, a szűrt érték pedig "" (üres cella) lesz. A két táblázat formailag megegyezik, annyi, hogy 72 sornyi különbség van köztük.
Ehhez még nem kellett volna makró, de a szűrő bonyolódása után már nem tudtam megoldani egyszerű képlettel. Ha az első (5.) oszlopban lévő szám nagyobb lenne a szűrőnél, de a mellette lévő (6.) oszlopban a szűrés után is van érték, akkor annak kell az 5. oszlopba kerülnie. A többi oszlopnál (6-11.) pedig, ha az alapérték szűrésre kerül, de a mellette lévő szomszédos oszlopok értékei nem, akkor annak a két szomszédos oszlopnak az átlagát kellene beilleszteni.
Valószínűleg túl sok volt az argumentum, egyébként valami ilyesmi volt:
=HA(VAGY(F5>=$S$130;SZÁM(F5)=HAMIS);HA(ÉS(SZÁM(E5)=IGAZ;SZÁM(G5)=IGAZ);ÁTLAG(E5;G5);HA(SZÁM(F5)=IGAZ;HA(F5<$S$130;F5;"");"")))
Kicsit talán nehezen érthető a probléma, ezért feltettem egy képet:
Tegyük fel, hogy a szűrő értéke 100, tehát az ennél nagyobb értékeket szeretném kiszűrni. Ebben az esetben a B2-es cella értéke ki lenne szűrve - a mellette, a C2-es cellában lévő szám azonban nem, ezért a C2 értékét kellene lemásolni 72 cellával lentebbre. A D3-as cella viszont üres, de a mellette lévők (C3 és E3), ezért a szűrés során a C3 és E3 átlagát kellene továbbvinni.
Írtam rá egy makrót, de valamiért nem csinál semmit, pedig lefut. A makró a "proba" nevű laphoz van rendelve.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sor As Integer, oszlop As Integer
If Target.Address = "$S$130" Then
For sor = 77 To 139
If Sheets("proba").Cells(sor - 72, 5) < Sheets("proba").Range("S130") Or WorksheetFunction.IsNumber(Sheets("proba").Cells(sor - 72, 5) = True) Then
Sheets("proba").Cells(sor, 5) = Sheets("proba").Cells(sor - 72, 5)
ElseIf WorksheetFunction.IsNumber(Sheets("proba").Cells(sor - 72, 5) = False) Then
If WorksheetFunction.IsNumber(Sheets("proba").Cells(sor - 72, 6) = True) Then
Sheets("proba").Cells(sor, 5) = Sheets("proba").Cells(sor - 72, 6)
Else: Sheets("proba").Cells(sor, 5) = ""
End If
End If
For oszlop = 6 To 11
If Sheets("proba").Cells(sor - 72, oszlop) >= Sheets("proba").Range("S130") Or WorksheetFunction.IsNumber(Sheets("proba").Cells(sor - 72, oszlop) = False) Then
If WorksheetFunction.IsNumber(Sheets("proba").Cells(sor - 72, oszlop - 1) = True) And WorksheetFunction.IsNumber(Sheets("proba").Cells(sor - 72, oszlop + 1) = True) Then
Sheets("proba").Cells(sor, oszlop) = WorksheetFunction.Average(Sheets("proba").Cells(sor - 72, oszlop - 1), Sheets("proba").Cells(sor - 72, oszlop + 1))
ElseIf Sheets("proba").Cells(sor - 72, oszlop) < Sheets("proba").Range("S130") And WorksheetFunction.IsNumber(Sheets("proba").Cells(sor - 72, oszlop) = True) Then
Sheets("proba").Cells(sor, oszlop) = Sheets("proba").Cells(sor - 72, oszlop)
Else: Cells(sor, oszlop) = ""
End If
End If
Next oszlop
Next sor
End If
End SubHol rontottam el? Előre is köszönöm a segítségeteket!

Új hozzászólás Aktív témák
- Százmilliárd dolláros AI-fegyverkezésbe kezdett az Amazon és a Google
- Battlefield 6
- WLAN, WiFi, vezeték nélküli hálózat
- Milyen nyomtatót vegyek?
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- SONY LCD és LED TV-k
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Futás, futópályák
- Tőzsde és gazdaság
- Milyen alaplapot vegyek?
- További aktív témák...
- MEGA AKCIÓ! - Jogtiszta Windows - Office & Autodesk & CorelDRAW - Azonnal - Számlával - Garanciával
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap - 15% AKCIÓ
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- The Elder Scrolls Online Imperial Collector s Edition
- LG 32GS95UX - 32" OLED / UHD 4K / 240Hz - 480Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
- NVIDIA ASUS TUF 3090, Gainward 3090, MSI VENTUS 3X 3090 24GB
- IT Megoldások és szolgáltatások
- BESZÁMÍTÁS! Gigabyte B760M i5 14600K 16GB DDR4 512GB SSD RX 9060 XT 16GB Asus A31 PLUS TG ARGB 650W
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest


Fferi50
