Viilutajate sünkroonimine erinevatest andmekogumitest - Exceli näpunäited

Lang L: none (table-of-contents)

Viilutajad on pöördtabelite jaoks suurepärased, kuna saate ühest viilutajate komplektist juhtida mitut liigendtabelit. Aga - see on omamoodi vale. Saate juhtida mitut liigendtabelit, mis pärinesid samast andmekogumist. Kui teil on pöördtabeleid, mis pärinesid kahest erinevast andmekogumist, on see üsna keeruline. Näitan teile mõnda VBA-d, mis laseb teil selle välja tõmmata.

Vaata videot

  • Kuidas saaksite viilutajaga juhtida kahte pöördlauda?
  • Kui mõlemad liigendtabelid pärinesid samast andmekogumist: valige tükeldaja, aruande ühendustest, valige muud liigendtabelid
  • Kuid kui pöördtabelid pärinesid erinevatest andmekogumitest:
  • Töövihiku laienduse XLSX asemel XLSM-i muutmiseks kasutage nuppu Salvesta nimega
  • Kasutage alt = "" + TMS ja muutke makro turvalisus teiseks seadeks.
  • Alt + F11, et pääseda VBA-sse
  • Ctrl + R, et kuvada projektiuurija
  • Leidke tööleht, mis sisaldab teie esimest pöördtabelit ja viilutajat
  • Sisestage kood töölehe_Update jaoks
  • Peida teine ​​viilutaja eemale, et see püsiks olemas, kuid keegi ei saa selle viilutaja vahel kunagi valida

Video ärakiri

Õppige Exceli for Podcast, jagu 2104: sünkroonige erinevate andmekomplektide viilutajad.

Tere, tere tulemast tagasi netisaate juurde, ma olen Bill Jelen ja tänane küsimus pole selles, kuidas võtta need kaks ühest andmekogumist tulnud pöördtabelit ja panna Slicer kõiki neid pöördtabeleid juhtima. See pole see, mis see on. Seda on lihtne teha - viilutaja, tööriistad, suvandid, kas aruande ühendustest või vanas versioonis viilutajaühendused, ja kontrollige, kas soovite, et see viilutaja kontrolliks kõiki neid pöördtabeleid. Lihtne, eks? See küsimus puudutab seda töölehte, kus meil on kaks erinevat andmekogumit ja me loome sellest pivot-tabeli ja sellest - lubage mul nüüd videot kiirendada, kuni ma neid pivot-tabeleid loon. Hästi, nüüd näete, et mul on kaks pöördtabelit, see pöördetabel on loodud ühest andmekogumist ja seal on viilutaja, mis juhib seda pöördtabelit;ja siis on mul teine ​​pöördtabel, mis on loodud teisest andmekogumist, ja viilutaja, mis juhib seda pöördtabelit. Kuid pole mingit võimalust panna see viilutaja juhtima nii seda pöördtabelit kui ka seda teisest andmekogumist ehitatud liigendtabelit. Hästi. Kuid ma näitan teile, kuidas seda makro abil täna teha.

Nüüd on seda keeruline teha. Kui küsimus tuli, ütlesin: "Nüüd, ma arvan, et te ei saa seda teha." Kuid olen sellega tegelenud ja katsetanud ning arvan, et sain selle lõpuks ka kätte. Ma pean arvama, et sain selle lõpuks alla. Hästi, nii et lähme sellest läbi. Esiteks salvestatakse see xlsx-failina. See on hea failitüüp, välja arvatud see, et see on jube failitüüp, sest see on ainus failitüüp, mis ei võimalda makrosid. Peate selle muutma xlsx-st xlsm-ks, vastasel juhul visatakse kogu teie töö ülejäänud videoks aknast välja. Salvesta nimega, muutke failitüübiks xlsm või heck, xlsb, üks neist töötab. See on katki - xlsx-- ja see on vaikimisi, hull on ju? Xlsm, klõpsake nuppu Salvesta. Kui te pole kunagi varem makrosid teinud, siis Alt + T Tomile, M makrole,S turvalisuse tagamiseks ja saate kõik makrod ilma teavitamata salvestada. Peate selle muutma teiseks, mis võimaldab teie makrodel töötada.

Hästi, nüüd on meil kaks viilutajat. Vea kihla, et te ei teadnud seda kunagi, kuid viilutajatel on nimed. Läheme Sliceri tööriistadesse, suvanditesse, Sliceri seadistustesse ja näeme, et seda nimetatakse Sliceri_nimi. Nagu see. Minge teise juurde, minge jaoturile Slicer Tools, Options, Slicer Settings, selle nimi on Slicer_Name1 - mitte nimeruum 1, Name1. Kaks sellist nime.

Siin me teeme. Läheme üle VBA-le - Alt + F11. Kui te pole VBA-s kunagi VBA-d teinud, on teil see suur hall ekraan. Me tuleme siia ja ütleme, et Project Exploreris on View, Project Explorer, leidke teie fail - minu nimi on Podcast 2104. Avage Microsoft Exceli objektid ja leht, kus ma tahan, et see toimiks, on juhtpaneel. Paremklõpsan seal ja ütlen View Code. See meie kirjutatav kood ei saa minna moodulisse nagu tavalises makros - see peab olema sellel töölehel. Avage ülemine vasak rippmenüü Tööleht, seejärel üleval paremas rippmenüüs ütleme Pivot Table Update. Hästi, nii et meie kood läheb siia. Olen selle koodi juba eelküpsetanud. Vaatame koodi siin märkmikus. Niisiis, memul on kaks Sliceri vahemälu - SC1 ja SC2 - üks Sliceri üksus ja siis peate siin just seda kohandama. Nii et minu kahte viilutajat nimetati nimeks ja nimeks1. Hästi, peate oma viilutaja nimed sinna panema. Application.Screenupdating = False, Application.EnableEvents = False ja siis Slicer Cache 2 - kustutame filtri ja seejärel iga üksuse SI1 ja sc1 korral. SlicerItems, kui see on valitud, siis teeme valitud üksus Sliceri vahemälus. See on väike silmus, mis jookseb läbi, hoolimata sellest, et paljud viilutid on. Minu puhul on mul 11 ​​või 12; teie puhul võib teil olla rohkem.Nii et minu kahte viilutajat nimetati nimeks ja nimeks1. Hästi, peate oma viilutaja nimed sinna panema. Application.Screenupdating = False, Application.EnableEvents = False ja siis Slicer Cache 2 - kustutame filtri ja seejärel iga üksuse SI1 ja sc1 korral. SlicerItems, kui see on valitud, siis teeme valitud üksus Sliceri vahemälus. See on väike silmus, mis jookseb läbi, kuid paljud elemendid juhtuvad selles viilutamismasinas olema. Minu puhul on mul 11 ​​või 12; teie puhul võib teil olla rohkem.Nii et minu kahte viilutajat nimetati nimeks ja nimeks1. Hästi, peate oma viilutaja nimed sinna panema. Application.Screenupdating = False, Application.EnableEvents = False ja siis Slicer Cache 2 - kustutame filtri ja seejärel iga üksuse SI1 ja sc1 korral. SlicerItems, kui see on valitud, siis teeme valitud üksus Sliceri vahemälus. See on väike silmus, mis jookseb läbi, kuid paljud elemendid juhtuvad selles viilutamismasinas olema. Minu puhul on mul 11 ​​või 12; teie puhul võib teil olla rohkem.kavatsen valida sama elemendi Sliceri vahemälus. See on väike silmus, mis jookseb läbi, hoolimata sellest, et paljud viilutid on. Minu puhul on mul 11 ​​või 12; teie puhul võib teil olla rohkem.kavatsen valida sama elemendi Sliceri vahemälus. See on väike silmus, mis jookseb läbi, hoolimata sellest, et paljud viilutid on. Minu puhul on mul 11 ​​või 12; teie puhul võib teil olla rohkem.

Kui oleme sellega valmis, lülitage lubamissündmused uuesti sisse, lülitage ekraani värskendus uuesti sisse. Hästi. Võtame selle koodi, kopeerime selle ja kleepime selle siia oma makro keskele. Hästi, nüüd veendume, et vajutan klahvikombinatsiooni Ctrl + G ja minu taotlus on rakendus. EnableEvents, sisse või välja - nii ,? Application.EnableEvents-- ja see on tõsi. Kui teie oma on vale, siis tahate siia tagasi tulla ja öelda, et see on = tõsi - nii et siis lülitate need sündmused sisse. Hästi. Nüüd, mis juhtuma hakkab. Nii et meie treener peaks siin töötama, see on õigel töölehel. Me oleme salvestatud xlxm-faili ja ma lülitasin makrod sisse ja mida me näeme, on see, et kui valin vasakust Slicerist, siis Sliceri vahemälu 1 - I 'Valin Della kaudu Andy - värskendab ka teine ​​Slicer. Hästi ja isegi kui ma valiksin lihtsalt Gloria - lihtsalt Gloria - tundub, et see töötab tõesti väga hästi. Isegi kui klõpsaksin CTRL +, klõpsates lasevad Ctrl lahti lasta kõik kolm.

Aga siin on gotcha - seal on alati gotcha - see viilutaja, see peab olemas olema, kuid te ei saa seda viilutit kasutada - oodake, ma mõtlen, et saate, võite kasutada viilutit, kuid see ajab asjad segi . Sest mis juhtuma hakkab, vahetan selle Hankiks ja nad lähevad tagasi viilutaja vahemälu 1 juurde, sest ma muutsin selle lehe pöördtabelit. Kas teil on nüüd reaalses elus kaks pöördelauda ühel lehel? Ma ei tea, kas sa oled või pole, olgu, aga asjad lähevad veidi hulluks.

Nüüd vaatame seda lihtsalt. Esimese asjana tahan sisestada uue töölehe - Alt + IW töölehe sisestamiseks - ja nimetan seda DarkCave'iks. Võite seda nimetada nii, nagu soovite. Ma võtan selle armatuurlaua, mis ei tööta, kopeerin selle armatuurlaua ja tulen siia pimedasse koopasse ja kleepin selle sinna ning siis paremklõpsates ja peites selle lehe, nii et keegi ei näe kunagi seda Slicerit. Ja siis peaksime siit saama selle kustutada. Tore, hästi. Ja me lihtsalt kontrollime, kas nad ikka töötavad - vali Charlie Eddie kaudu ja nad mõlemad veel värskendavad. Mis nüüd toimub? Viilutaja, mida me ei näe, see, mille oleme eemale peitnud, on ka värskendatav, kuid me ei hooli sellest, et see värskendaks.

Mis siis saab, kui soovite, et teie asjad oleksid erinevatel lehtedel? Lisan siia uue töölehe - Alt + IW - ja võtan ühe nendest liigendtabelitest - võib-olla ka teise pöördetabeli - ja teisaldan selle teisele lehele - nii et kopeerimiseks vajutage Ctrl + C pöördtabel, Ctrl + V, et siia pivot-tabel kleepida. Ja kui mul on siin vaja viilutit - ärge sisestage sellest pöördtabelist viilu - peame oma armatuurlauale tagasi tulema, võtke sellest koopia tegemiseks viilutaja, mis on kontrolliv viilutaja, Ctrl + C, ja kleepige see siia - Ctrl + V. Hästi? Nüüd pole meil sellel lehel koodi - Sheet4-l pole ühtegi koodi - ja ma mõtlesin, et pean Sheet4-le mõne koodi lisama, kuid siin on see ilus asi: kui ma seda viilutit vahetan, siis toimub see, armatuurlaual see pöördelaud "s värskendatakse, kuigi see pivot-tabel sellel lehel, mis pole aktiivne, värskendab, käivitavad nad koodi ja seda värskendatakse ka. Päris kuradi hämmastav, et see töötab.

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.

Tahame teid tänada, et peatusite, näeme järgmine kord järgmisel Netcastil.

Laadige fail alla

Laadige näidisfail alla siit: Podcast2104.xlsm

Huvitavad Artiklid...