Szeletelők szinkronizálása különböző adatsorokból - Excel tippek

Tartalomjegyzék

A szeletelők fantasztikusak a pivot-táblák számára, mert több pivot-táblát vezérelhet egy szeletelő készletből. De - ez egyfajta hazugság. Több pivot táblát is vezérelhet, amelyek ugyanabból az adatkészletből származnak. Ha két különböző adatsorból származó pivot táblák vannak, akkor ez elég trükkös. Mutatok néhány VBA-t, amely lehetővé teszi, hogy ezt kihúzza.

Videót nézni

  • Hogyan lehet egy szeletelő két forgóasztalt meghajtani?
  • Ha mindkét pivot tábla ugyanabból az adatkészletből származik: Válassza a Szeletelő, Jelentés a kapcsolatokról, válassza az Egyéb pivot-táblák lehetőséget
  • De ha a pivot táblák különböző adatsorokból származnak:
  • Használja a Mentés másként lehetőséget a munkafüzet kiterjesztésének XLSM helyett XLSX helyett
  • Használja az alt = "" + TMS-t, és állítsa a makróbiztonságot második beállításra.
  • Alt + F11 a VBA eléréséhez
  • Ctrl + R a projektfelfedező megjelenítéséhez
  • Keresse meg azt a munkalapot, amely az első pivot táblázatot és szeletelőt tartalmazza
  • Helyezze be a Worksheet_Update kódot
  • Rejtje el a második szeletelőt, hogy az meglévő maradjon, de soha senki nem választhat a szeletelő közül

Videó átirat

Az Excel for Podcast 2104-es epizódjának megismerése: Szeletelők szinkronizálása különböző adatsorokból.

Hé, üdvözlöm újra a netcasten, Bill Jelen vagyok, és a mai kérdés nem arról szól, hogy hogyan vegyük ezt a két, egy adatsorból származó pivot táblázatot, és hogy a Slicer vezérelje ezeket a pivot táblázatokat. Nem erről van szó. Ez könnyű dolog - Szeletelő, Eszközök, Opciók, vagy a Kapcsolatok jelentése, vagy a Szeletelői kapcsolatok a régi verzióban, és ellenőrizze, hogy szeretné-e, hogy ez a Szeletelő vezérelje az összes ilyen kimutatótáblát. Könnyű, igaz? Ez a kérdés erről a munkalapról szól, ahol két különböző adatsorunk van, és ebből létrehozunk egy pivot táblázatot, és ebből - most hadd gyorsítsam fel a videót, amíg én létrehozom ezeket a pivot táblázatokat. Rendben, most meglátod, hogy van két pivot-táblám, ez a pivot-tábla egy adathalmazból jön létre, és van egy szeletelő, amely ezt a pivot-táblát vezérli;és akkor van egy második pivot táblám, amely egy másik adathalmazból jött létre, és egy szeletelőm, amely ezt a pivot táblát vezérli. De egyáltalán nem lehet rávenni, hogy ez a szeletelő irányítsa mind ezt a pivot táblázatot, mind ezt a pivot táblát, amely egy másik adathalmazból épül fel. Rendben. De megmutatom, hogyan lehet ezt ma egy makróval megtenni.

Ez most trükkös. Amikor felmerült a kérdés, azt mondtam: "Most, ez nem hiszem, hogy meg tudnád csinálni." De dolgoztam rajta és kísérleteztem, és azt hiszem, végre megszereztem. Azt kell gondolnom, hogy végre lebuktam. Rendben, hát menjünk át ezen. Először is, ez xlsx fájlként kerül mentésre. Ez remek fájltípus, kivéve, hogy borzalmas fájltípus, mert ez az egyetlen fájltípus, amely nem engedélyezi a makrókat. Ezt meg kell változtatnia xlsx-ről xlsm-re, különben az összes munkáját a többi videóra dobja ki az ablakon. Mentés másként változtassa meg a fájltípust xlsm-re vagy heck, xlsb-re, bármelyik működni fog. Ez az, ami elromlott - xlsx--, és ez az alapértelmezett, őrült, nem? Xlsm, kattintson a Mentés gombra. Ha még soha nem készített makrót, akkor Alt + T Tom esetén, M makró esetén,S for Security, és minden makrót értesítés nélkül elmenthet. Változtatnia kell a másodikra, amely lehetővé teszi a makrók működését.

Rendben, most két szeletelőnk van. Fogadjunk, hogy ezt soha nem tudta, de a szeletelőknek vannak neveik. Meglátogatjuk a Szeletelőeszközök, az Opciók, a Szeletelőbeállítások oldalt, és látni fogjuk, hogy ezt Slicer_Name-nek hívják. Mint az. Lépjen a másodikra, lépjen a Szeletelőeszközök, Beállítások, Szeletelőbeállítások menüpontra, ezt hívják Slicer_Name1 - nem 1. névtér, Name1. Két ilyen név.

Íme, mit fogunk tenni. Át fogunk váltani a VBA-ra - Alt + F11. A VBA-ban, ha még soha nem végzett VBA-t, akkor ez a nagy szürke képernyő lesz. Ide fogunk jönni, és azt mondjuk, hogy a View, Project Explorer, a Project Explorerben keresse meg a fájlját - az enyém Podcast 2104 nevet kapja. Nyissa meg a Microsoft Excel objektumokat, és azt a lapot, ahol szeretném, hogy ez működjön, irányítópultnak hívják. Kattintson a jobb gombbal oda, és mondom a Nézet kódot. Ez a kód, amelyet írunk, nem mehet be olyan modulba, mint egy normál makró - ennek ezen a munkalapon kell lennie. Nyissa meg a bal felső, Munkalap legördülő menüt, majd a jobb felső legördülő menüben azt mondjuk, hogy a Pivot Table Update. Rendben, szóval itt fog menni a kódunk. Már elősütöttem ezt a kódot. Vessünk egy pillantást a kódra itt a jegyzettömbben. Szóval, mikét Slicer gyorsítótár - SC1 és SC2 - egy Slicer elem lesz, majd itt kell testre szabnia. Tehát két szeletelőmet Névnek és Névnek1 hívták. Rendben, be kell adnia a szeletelő nevét. Application.Screenupdating = False, Application.EnableEvents = False, majd a Slicer Cache 2 - törölni fogjuk a szűrőt, majd minden egyes elemnél SI1 és sc1. SlicerItems, ha be van jelölve, akkor elkészítjük ugyanazt az elemet a Szeletelő gyorsítótárában kell kiválasztani. Ez egy kis hurok, amely végig fog futni, bár sok elem véletlenül is benne van a szeletelőben. Az én esetemben 11 vagy 12 van; a te esetedben lehet, hogy több van.Tehát két szeletelőmet Névnek és Névnek1 hívták. Rendben, be kell adnia a szeletelő nevét. Application.Screenupdating = False, Application.EnableEvents = False, majd a Slicer Cache 2 - törölni fogjuk a szűrőt, majd minden egyes elemnél SI1 és sc1. SlicerItems, ha be van jelölve, akkor elkészítjük ugyanazt az elemet a Szeletelő gyorsítótárában kell kiválasztani. Ez egy kis hurok, amely végig fog futni, bár sok elem véletlenül is benne van a szeletelőben. Az én esetemben 11 vagy 12 van; a te esetedben lehet, hogy több van.Tehát két szeletelőmet Névnek és Névnek1 hívták. Rendben, be kell adnia a szeletelő nevét. Application.Screenupdating = False, Application.EnableEvents = False, majd a Slicer Cache 2 - törölni fogjuk a szűrőt, majd minden egyes elemnél SI1 és sc1. SlicerItems, ha be van jelölve, akkor elkészítjük ugyanazt az elemet a Szeletelő gyorsítótárában kell kiválasztani. Ez egy kis hurok, amely végig fog futni, bár sok elem véletlenül is benne van a szeletelőben. Az én esetemben 11 vagy 12 van; a te esetedben lehet, hogy több van.ugyanazt az elemet fogja elkészíteni a Szeletelő gyorsítótárban. Ez egy kis hurok, amely végig fog futni, bár sok elem véletlenül is benne van a szeletelőben. Az én esetemben 11 vagy 12 van; a te esetedben lehet, hogy több van.ugyanazt az elemet fogja elkészíteni a Szeletelő gyorsítótárban. Ez egy kis hurok, amely végig fog futni, bár sok elem véletlenül is benne van a szeletelőben. Az én esetemben 11 vagy 12 van; a te esetedben lehet, hogy több van.

Ha ezzel végeztünk, kapcsolja be újra az engedélyező eseményeket, majd kapcsolja be újra a Képernyőfrissítést. Rendben. Szóval, átvesszük ezt a kódot, átmásoljuk és beillesztjük ide a makrónk közepére. Rendben, most csak győződjünk meg arról, hogy megnyomom a Ctrl + G billentyűkombinációt, és a kérésem az Application. EnableEvents, be vagy ki - így van? Application.EnableEvents-- és ez igaz. Ha a tied hamisnak tűnik, akkor vissza akarsz jönni ide, és azt mondani, hogy ez = Igaz - tehát bekapcsolod ezeket az eseményeket. Rendben. Itt van, mi fog történni. Tehát edzőnknek itt kellene dolgoznia, ez a megfelelő munkalapon található. Egy xlxm fájlba mentünk, és bekapcsoltam a makrókat, és amit látni fogunk, az az, hogy amikor a bal Szeletelő közül választom, akkor a Szeletelő Cache 1 -Dellen keresztül Andy-t választom - a másik Slicer is frissíteni fog. Rendben, és még akkor is, ha csak Gloriát választanám - csak Gloriát -, úgy tűnik, nagyon-nagyon jól működik. Még akkor is, ha a CTRL + kattintásra kattintanék, amikor elengedem a Ctrl billentyűt, mindhárman frissülnek.

De itt van a gotcha - mindig van egy gotcha - ez a szeletelő, annak léteznie kell, de nem használhatja ezt a szeletelőt - várjon, úgy értem, hogy használhat, használhat szeletelőt is, de ez összekeveri a dolgokat . Mivel mi fog történni, ezt Hank-re változtatom, és visszatérnek a Slicer Cache 1-hez bárhová, mert én megváltoztattam a pivot táblázatot ezen a lapon. Most, a való életben, két forgatótáblája lesz ugyanazon a lapon? Nem tudom, hogy vagy, vagy nem, rendben, de a dolgok kissé megőrülnek.

Most vessünk egy pillantást erre. Első dolog, amit meg akarok tenni: új munkalapot fogok beszúrni - Alt + IW a munkalap beszúrásához - és ezt DarkCave-nek fogom nevezni. Hívhatod, ahogy akarod. Fogom azt az irányítópultot, amely nem fog működni, átmásolom azt az irányítópultot, és idejönök a sötét barlangba, beillesztem oda, majd jobb gombbal elrejtem azt a lapot, hogy soha senki ne lássa azt a Szeletelőt. És akkor innentől kezdve képesnek kell lennünk arra, hogy törölje. Szép, rendben. És csak ellenőrizni fogjuk, hogy továbbra is működnek-e - válasszuk Charlie-t Eddie-n keresztül, és mindketten még frissítenek. Most mi történik? Az a Szeletelő, amelyet nem láthatunk, amelyet elrejtettünk, szintén frissül, de nem érdekel, hogy frissül.

Now, what if you want to have your things on different sheets? I'll insert a new worksheet here--Alt+IW-- and I'll take one of these pivot tables-- maybe the second pivot table-- and move it to that other sheet-- so, Ctrl+C to copy the pivot table, Ctrl+V to paste the pivot table here. And if I need to have a slicer here-- don't insert a slice from this pivot table-- we have to come back to our dashboard, take the slicer that's the controlling Slicer, Ctrl+C to make a copy of it, and paste it here-- Ctrl+V. Alright? Now, we have no code on this sheet-- there's no code on Sheet4-- and I was thinking I was going to have to add some code to Sheet4, but here's the beautiful thing: When I change this slicer, what's happening is, on the dashboard that pivot table's updating even though that pivot table on that sheet that's not active is updating, they will run the code and this will update as well. Pretty darn amazing that that works.

Now, the whole key to this is, you can never use the slicer tied to the second pivot table. You have to have the slicer that's tied to the second pivot table but you cannot use it-- you have to use this slicer tied to the first pivot table. Alright? But in general, I think this is working fairly well.

Alright, now hey, Sal, the person who asks this question, wrote in and said, "Look, I have a disconnected pivot table-- disconnected slicer in the second pivot table only." So let's just add a new field here called Region, East, West, we'll refresh our second pivot table, cool, and I'll insert a slicer that is disconnected-- in other words, it's only in the second data set, not in the first data set, Alright, now, this is going to be tricky because when I choose East from here, we're not going to have anybody selected. Alright? So the pivot table goes away. I would have to clear this slicer on the left hand side and then East remains selected. And now things have gone to hell, right? So, you are choosing from a slicer tied to the second data set and, while the second one is updating, the first one is not going to respect that because it has no idea there's no region filled back in the other field. This is only going to work when you have the same field in both data sets. If you have some other situation like this, then it will not fly.

So here's what you're going to have to do: You're going to have to insert that field-- the Region field-- back in your original data set, refresh this pivot table, insert a new slicer that will control that first pivot table. Alright? Now, we have two different slicers now, and because I built them backwards their names are backwards-- this one's Slicer_Region 1, and the one that's going to be the controlling one is called Slicer_Region2. If I would have planned differently, we would have had a different result, but here we are. Alt+F11, I want to take a lot of cutting and pasting. I'm going to take those first three lines and paste them, change it to SlicerCache3, SlicerCache4, SlicerItem3. I'll initialize SlicerCache3, ClicerCache4 to be Region2, Region1, clear the manual filter on SC4-- so that was a copy and paste, take this entire loop here and paste it. There are a lot of places you have to change-- your SI3, SC3 and then SC4, SI3. SI3-- don't miss that one, I missed that one-- next SI3. Alright, so now this set of code will hopefully control two sets of slicers. If you had a third set of slicers you're going to do the same changes I just made, copying and pasting and changing things carefully. Carefully. And again, now, this this guy is the one that we will never see-- we never want to see that one work-- because the ones on the Pivot Table 1 are the controlling ones. So this, we have to copy this-- Ctrl+C-- go to our sheet where we're hiding things away-- so Home, Format, Hide and Unhide, Unhide that sheet (the DarkCave), Paste so it continues to exist, it has to live somewhere, and then once I know it's back there on the DarkCave I can delete it and then hide this sheet here. Alright, and so now we should have on our dashboard, one set of slicers, we choose Central, they both update; we choose Just Flow, they both update; I clear the filter and Central stays. That's actually good. I'm glad that works-- clear this filter and everybody comes back. But these all have to be driving off that first pivot table. What if you have a field in the second data set that's not in your first data set? Then all bets are off. We'll go back to "I don't know how to solve that".

Well, hey, Macros came to the solution today and Macros are amazing and awesome. If you want to learn all about Macros, Tracy Syestad and I have written this great book, "Excel 2016, VBA and Macros." Check that out, Click the "I" on the top right hand corner to get to a page where you can buy that book.

Alright, Episode recap. How can you have a slicer drive two pivot tables? If they both came from the data set it's simple-- Slicer, Report Connections, Choose Other pivot tables. But if a pivot table came from two data sets, lots of steps change-- xlsx to xlsm, change your macro security setting, Alt+F11 to get the VBA, Ctrl+R to display the Project Explorer, find the worksheet name that contains your first pivot table and slicer, right-click and say View Code, and then Insert code for worksheet, Update, then, really important, Hide that second slicer away on a hidden worksheet or far out to the right so no one can ever choose from that slicer. By the way, don't cut that slicer-- you have to copy it and paste and then delete the first one in order to get it to work.

Szeretnénk megköszönni, hogy bejártál, legközelebb találkozunk egy újabb netcast-lal.

Fájl letöltése

Töltse le a minta fájlt innen: Podcast2104.xlsm

érdekes cikkek...