Sziasztok!
Úgy szeretném használni az irányított szűrőt, hogy a feltételek megadása után ne az összes mezőt/oszlopot
jelenítse meg, csak azokat, amelyeket én megadok.
Egy feladatot kell megoldanom Excelben és Calc-ban is.
Excelben úgy működik, hogy a kimenet helyére felveszem azokat a mezőneveket, amelyeket szeretnék megjeleníteni és a többi mező/oszlop nem is jelenik meg.
Calc-ban is próbáltam, de minden mezőt megjelenít. A rekordokat/sorokat szűri szépen, de sajnos a mezőket nem tudtam.
Esetleg az irányított szűrőben van mód a rendezésre is?
Feladat: Jelenítse meg az S-es népsűrűségű megyék adatait. Minden mezőt jelenítsen meg, kivéve a Népsűrűséget.
Rendezze az adatokat Lakás szerint növekvő sorrendbe.
Csatolok két képet. AZ elsőben a szűrés előtti állapot, a kimeneti tartományban megadott kevesebb mezővel,
a második pedig a szűrés után, ahol minden mezőt megjelenített, azt is amit nem akartam.
köszönöm a válaszokat előre is.
Irányított szűrő - kimeneti mezők megadása
Irányított szűrő - kimeneti mezők megadása
w7, Libre Office 3.4
Re: Irányított szűrő - kimeneti mezők megadása
Üdv!
Nem tudok olyan lehetőségről, hogy a szűrésnél meg lehetne adni ilyen opciót (ez nem zárja ki, hogy létezik ilyen funkció).
Igazából ezt a problémát úgy oldanám meg, hogy készítenék egy makrót.
Elkészítettem a mintád alapján egy doksit amiben benne van a megoldásom.
Röviden
- Készítsd el az adat tartományokat (Adatok, Filter)
- Először futtasd le az irányított szűrőt, hogy a második oldalon meghatározhasd a "Kimenet" Adat tartományt. Ez azért kell,hogy a rendezéskor a tartomány határai dinamikusan változzanak.
- Makró elkészítése
- Tartomány szűrése valamilyen feltétel alapján
- A szűrés eredményének másolása a második munkalapra.
- A szűrt tartományból "Népsűrűség" törlése.
- Makró gombhoz/menüponthoz rendelése
- Doksi használata.
Anti
Felhasznált anyagok:
Irányított szűrő
Oszlopok hozzáadása/törlése
Nem tudok olyan lehetőségről, hogy a szűrésnél meg lehetne adni ilyen opciót (ez nem zárja ki, hogy létezik ilyen funkció).
Igazából ezt a problémát úgy oldanám meg, hogy készítenék egy makrót.
Elkészítettem a mintád alapján egy doksit amiben benne van a megoldásom.
Kód: Egész kijelölése
Sub Szures()
rem Irányitott szűrés makró segítségével
Dim oSheet 'A sheet from the Calc document.
Dim oRanges 'The NamedRanges property.
Dim oCritRange 'Range that contains the filter criteria.
Dim oDataRange 'Range that contains the data to filter.
Dim oFiltDesc 'Filter descriptor.
REM Range that contains the filter criteria
oSheet = ThisComponent.getSheets().getByIndex(0)
oCritRange = oSheet.getCellRangeByName("Filter")
REM You can also obtain the range containing the
REM filter criteria from a named range.
REM oRanges = ThisComponent.NamedRanges
REM oRange = oRanges.getByName("AverageLess80")
REM oCritRange = oRange.getReferredCells()
REM The data that I want to filter
oSheet = ThisComponent.getSheets().getByIndex(0)
oDataRange = oSheet.getCellRangeByName("Adatok")
oFiltDesc = oCritRange.createFilterDescriptorByObject(oDataRange)
oFiltDesc.UseRegularExpressions = True
REM Másolja a szűrt adatot másik munkalapra.
oFiltDesc.CopyOutputData = True
REM Készít egy új adattartományt a második munkalapra,
REM A oszlop, 1 sorba (A számozás 0-tól kezdődik)
Dim x As New com.sun.star.table.CellAddress
x.Sheet = 1
x.Column = 0
x.Row = 0
oFiltDesc.OutputPosition = x
oDataRange.filter(oFiltDesc)
REM Masodik munkalap B oszlopanak torlese
Dim Doc As Object
Dim Sheet As Object
Dim NewColumn As Object
Doc = ThisComponent
Sheet = Doc.Sheets(1)
Sheet.Columns.removeByIndex(1, 1)
rem Innentől a makró rögzítővel készítettem el a rendezést.
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "DbName"
args1(0).Value = "Kimenet"
dispatcher.executeDispatch(document, ".uno:SelectDB", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(7) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ByRows"
args2(0).Value = true
args2(1).Name = "HasHeader"
args2(1).Value = true
args2(2).Name = "CaseSensitive"
args2(2).Value = false
args2(3).Name = "NaturalSort"
args2(3).Value = false
args2(4).Name = "IncludeAttribs"
args2(4).Value = true
args2(5).Name = "UserDefIndex"
args2(5).Value = 0
args2(6).Name = "Col1"
args2(6).Value = 4
args2(7).Name = "Ascending1"
args2(7).Value = true
dispatcher.executeDispatch(document, ".uno:DataSort", "", 0, args2())
end sub
- Készítsd el az adat tartományokat (Adatok, Filter)
- Először futtasd le az irányított szűrőt, hogy a második oldalon meghatározhasd a "Kimenet" Adat tartományt. Ez azért kell,hogy a rendezéskor a tartomány határai dinamikusan változzanak.
- Makró elkészítése
- Tartomány szűrése valamilyen feltétel alapján
- A szűrés eredményének másolása a második munkalapra.
- A szűrt tartományból "Népsűrűség" törlése.
- Makró gombhoz/menüponthoz rendelése
- Doksi használata.
Anti
Felhasznált anyagok:
Irányított szűrő
Oszlopok hozzáadása/törlése
- Csatolmányok
-
- Iranyitott_szuro.ods
- (12.16 KiB) Letöltve 187 alkalommal.
-
- Önkéntesek
- Hozzászólások: 47
- Csatlakozott: 2009. szeptember 15., kedd 18:09
- Kapcsolat:
Re: Irányított szűrő - kimeneti mezők megadása
De ha makrómentesen akarod, átmeneti lépéssel is megoldható.
Irányított szűrővel egy másik munkalapra kiíratod az eredményeket,
s a végleges helyre csak simán cellahivatkozással átmásolod.
Irányított szűrővel egy másik munkalapra kiíratod az eredményeket,
s a végleges helyre csak simán cellahivatkozással átmásolod.
SuSe11.4 + OO, XP SP3 + OO
Re: Irányított szűrő - kimeneti mezők megadása
KÖszönöm a válaszod!
Eddig is így csináltam, hogy másik munkalapra írattam az eredményt a szűrőfeltételek alá,
majd manuálisan kitöröltem a szükségtelen oszlopokat.
Eddig is így csináltam, hogy másik munkalapra írattam az eredményt a szűrőfeltételek alá,
majd manuálisan kitöröltem a szükségtelen oszlopokat.
w7, Libre Office 3.4
- Zizi64
- Globális moderátorok
- Hozzászólások: 4034
- Csatlakozott: 2008. november 12., szerda 21:22
- Tartózkodási hely: Budapest
Re: Irányított szűrő - kimeneti mezők megadása
...És laszlogonda makrós megoldását is megnézted?
...mert most amikor írok, még csak kétszer töltötték le, és az - emlékeim szerint - mindkettő én voltam: egyszer itt a munkahelyemen (biztosan, itt a fájl a gépemen), egyszer meg otthon (úgy emlékszem)...
...mert most amikor írok, még csak kétszer töltötték le, és az - emlékeim szerint - mindkettő én voltam: egyszer itt a munkahelyemen (biztosan, itt a fájl a gépemen), egyszer meg otthon (úgy emlékszem)...
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
-
- Önkéntesek
- Hozzászólások: 47
- Csatlakozott: 2009. szeptember 15., kedd 18:09
- Kapcsolat:
Re: Irányított szűrő - kimeneti mezők megadása
De nem manuális törlésre gondoltam, hanem úgy, hogy szűrővel egy másik munkalapra,moonster írta:KÖszönöm a válaszod!
Eddig is így csináltam, hogy másik munkalapra írattam az eredményt a szűrőfeltételek alá,
majd manuálisan kitöröltem a szükségtelen oszlopokat.
s onnan csak a neked szükséges oszlopokat hivatkozva vissza.
Lehet nem érthető, de megpróbálom leírni.
Van négy oszlopod, leszűröd, s a szűrés után marad a négy oszlop.
Majd abból a szükséges oszlopokat hivatkozással veszed ki (nem kell törölni).
1. Szűréssel egy átmeneti munkalapra kerülnek az adatok.
2. Az átmeneti munkalapról hivatkozol az adatok végső helyére.
pl.: ha a második oszlop nem kell, akkor kihagyod ->
A1=munkalap átmeneti!A1;B1=munkalap átmeneti!C2;...
Lényegében a nem szükséges oszlopod "eltűnik", s nem kell törölgetni.
A hivatkozás biztos működik más verzión is, mert én is sokat dolgozok Libre-val, meg MsOffice-val feltváltva,
emiatt a makrók nem igazán szerencsések.
SuSe11.4 + OO, XP SP3 + OO