Cerere de selectare a datelor (formule) în MS EXCEL. Cum să simplificați recuperarea datelor din mai multe rapoarte similare folosind extragerea datelor macro Excel Excel în funcție de condiție

26.04.2020 Programe

Pentru a face acest lucru, trebuie să deschideți editorul Visual Basic Editor (combinația de taste „Alt+F11” sau faceți clic dreapta pe comanda rapidă a oricărei foi și selectați „Text sursă” sau în grupul „Cod” din fila de meniu „Dezvoltator”, faceți clic pe elementul „Visual Basic”) și inserați un modul standard în proiect. Și adăugați două coduri de program la acest modul (vezi Figura 8.) - și .

Dim sheet As Worksheet

Dim cell As Range

Cu ActiveWorkbook

Pentru fiecare foaie din ActiveWorkbook.Worksheets

Set cell = Worksheets(1).Cells(sheet.Index, 1)

Fișe de lucru(1).Hyperlinks.Adăugați ancora:=celulă, Adresă:="",
Subadresă:=""" & foaie.Nume & """ & "!A1"

celulă.Formulă = foaie.Nume

Cum să optimizați selecția mai multor valori de căutare din diferite tabele în Excel

Atunci când pregătiți rapoarte privind sumele și termenele de plată pentru mai mulți furnizori individuali, este adesea necesar să verificați o cantitate semnificativă de date (tabele) înainte de a găsi informațiile pe care le căutați.

Puteți optimiza selecția mai multor valori dorite (sume de plată pentru diferiți furnizori) în funcție de un parametru (de exemplu, după dată) dintr-un număr mic de tabele folosind aproape aceeași schemă ca și cu singura diferență că foaia „Cuprins Cartea” va afișa o listă cu numele tabelelor care participă la selecție și rezultatele acesteia și, în plus, va fi utilizată o formulă de căutare în tabel ușor diferită:

„=CĂUTAREV($C$1,INDIRECT(A2),2,FALSE)”, unde:

  • celula C1 (sfert de număr) – setează valoarea parametrului;
  • „INDIRECT(A2)” – definește o legătură text către un interval numit, al cărui nume se află în celula A2;
  • „2” este numărul coloanei din tabelele sursă ale furnizorilor, care conțin sumele de plată de care avem nevoie;
  • „FALSE” (poate fi înlocuit cu 0) – indică funcției VLOOKUP că este necesară o potrivire exactă.

Esența unei interogări de selecție este de a selecta rânduri din tabelul sursă care îndeplinesc anumite criterii (similar cu utilizarea unuia standard). Să selectăm valorile din tabelul sursă folosind . Spre deosebire de utilizarea ( CTRL+SHIFT+L sau Date/ Sortare și Filtrare/ Filtrare) rândurile selectate vor fi plasate într-un tabel separat.

În acest articol ne vom uita la cele mai frecvente interogări, de exemplu: selectarea rândurilor de tabel a căror valoare dintr-o coloană numerică se încadrează într-un interval specificat (interval); selectarea rândurilor a căror dată aparține unei anumite perioade; sarcini cu 2 criterii text și altele. Să începem cu interogări simple.

1. Un criteriu numeric (Selectați acele Produse al căror preț este mai mare decât minimul)

dosar exemplu, fișă Un singur criteriu - numărul ).

Este necesar să afișați într-un tabel separat doar acele înregistrări (rânduri) din tabelul Sursă al căror preț este mai mare de 25.

Puteți rezolva cu ușurință aceasta și problemele ulterioare folosind . Pentru a face acest lucru, selectați anteturile tabelului Sursă și faceți clic CTRL+SHIFT+L. Selectați din lista derulantă de lângă antetul Prețuri Filtrele numerice..., apoi setați condițiile de filtrare necesare și faceți clic pe OK.

Vor fi afișate înregistrările care îndeplinesc condițiile de selecție.

O altă abordare este utilizarea . În schimb, rândurile selectate vor fi plasate într-un tabel separat - unul unic, care, de exemplu, poate fi formatat într-un stil diferit de tabelul Sursă sau pot fi făcute alte modificări.

criteriu ( pret minim) va fi plasat într-o celulă E6 , tabel pentru datele filtrate - în interval D10:E19 .

Acum să selectăm intervalul D11:D19 (Coloană Produs) și introduceți:

INDEX(A11:A19;
MIC (DACĂ($E$6<=B11:B19;СТРОКА(B11:B19);"");СТРОКА()-СТРОКА($B$10))
-RÂND($B$10))

În loc de INTRODUCE apăsați comanda rapidă de la tastatură CTRL+SHIFT+ENTER(formula matricei va fi ).

E11:E19 (coloana Preț) unde vom introduce unul similar:

INDEX(B11:B19;
MIC (DACĂ($E$6<=B11:B19;СТРОКА(B11:B19);"");СТРОКА()-СТРОКА($B$10))
-RÂND($B$10))

Ca urmare, vom obține un nou tabel care va conține doar produse ale căror prețuri nu sunt mai mici decât cele indicate în celulă E6 .

Pentru a arăta dinamismul cererii de eșantion primite, intrăm în E6 valoarea 55. Doar 2 înregistrări vor fi incluse în noul tabel.

Dacă adăugați un produs nou cu un preț de 80 la tabelul Sursă, atunci o înregistrare nouă va fi adăugată automat la noul tabel.

Notă. De asemenea, puteți utiliza și pentru a afișa datele filtrate. Alegerea unui instrument specific depinde de sarcina cu care se confruntă utilizatorul.

Dacă nu vă simțiți confortabil să utilizați formula matrice, care returnează mai multe valori, apoi puteți utiliza o altă abordare, care este discutată în secțiunile de mai jos: 5.a, 7, 10 și 11. În aceste cazuri, .

2. Două criterii numerice (Selectați acele Produse al căror preț se încadrează în interval)

Să existe un tabel inițial cu o listă de produse și prețuri (vezi. dosar exemplu, fișăInterval de numere).

Vom plasa criteriile (limitele inferioare și superioare de preț) în interval E5:E6 .

Acestea. dacă Prețul produsului se încadrează în intervalul specificat, atunci o astfel de înregistrare va apărea în noul tabel de date filtrate.

Spre deosebire de sarcina anterioară, vom crea două: Produse și Prețuri (puteți face fără ele, dar sunt convenabile când scrieți formule). Formulele corespunzătoare ar trebui să arate ca în Managerul de nume ( Formule/ Nume definite/ Manager de nume) după cum urmează (a se vedea figura de mai jos).

Acum să selectăm intervalul D11:D19 iar in intram:

INDEX(Produse;
CEL MAI PUŢIN(
DACĂ(($E$5<=Цены)*($E$6>=Prețuri);ROW(Prețuri);"");

În loc de INTRODUCE apăsați comanda rapidă de la tastatură CTRL+SHIFT+ENTER.

Vom efectua aceleași manipulări cu gama E11:E19 unde vom introduce unul similar:

INDEX(Prețuri;
CEL MAI PUŢIN(
DACĂ(($E$5<=Цены)*($E$6>=Prețuri);ROW(Prețuri);"");
LINIE(Prețuri)-RÂND($B$10))-ROW($B$10))

Ca urmare, vom obține un nou tabel care va conține doar produse ale căror prețuri se încadrează în intervalul specificat în celule E5 Și E6 .

Pentru a arăta dinamismul Raportului primit (Solicitare de eșantionare), intrăm în E6 valoarea 65. O altă înregistrare din tabelul Sursă care îndeplinește noul criteriu va fi adăugată la noul tabel.

Dacă adăugați un produs nou cu un preț în intervalul de la 25 la 65 la tabelul Sursă, atunci o înregistrare nouă va fi adăugată la noul tabel.

Fișierul exemplu conține și formule matrice cu gestionarea erorilor atunci când coloana Preț conține o valoare de eroare, de exemplu #DIV/0! (vezi fișa Eroare la procesare).

Următoarele probleme sunt rezolvate într-un mod similar, așa că nu le vom lua în considerare atât de detaliat.

3. Data unui criteriu (Selectați acele produse a căror dată de livrare se potrivește cu cea specificată)

dosar exemplu, fișăUn criteriu - Data).

Pentru a selecta rândurile, se folosesc formule matrice similare cu Sarcina 1 (în locul criteriului<= используется =):

=INDEX(A12:A20,MIC(DACĂ($E$6=B12:B20,RÂND(B12:B20),"");RÂND(B12:B20)-RÂND($B$11))-RÂND($B$11) )

INDEX(B12:B20,MIC(DACĂ($E$6=B12:B20,RÂND(B12:B20),"");RÂND(B12:B20)-RÂND($B$11))-RÂND($B$11) )

4. Două criterii de dată (Selectați acele produse a căror dată de livrare se încadrează în interval)

Să existe un tabel sursă cu o listă de produse și date de livrare (vezi. dosar exemplu, fișăInterval de date).

Vă rugăm să rețineți că coloana Data NU ESTE SORTATĂ.

Soluția 1: Poți să folosești .

Tastați în celulă D12 formula matrice:

INDEX(A$12:A$20;
CEL MAI MARE(($E$6<=$B$12:$B$20)*($E$7>=$B$12:$B$20)*(RÂND($B$12:$B$20)-ROW($B$11));
$J$12-RIND (A12)+RIND ($B$11)+1))

Notă: După introducerea formulei, în loc de tasta ENTER, trebuie să apăsați combinația de taste CTRL+SHIFT+ENTER. Această comandă rapidă de la tastatură este utilizată pentru a introduce formule matrice.

Copiați formula matricei până la numărul dorit de celule. Formula va returna numai acele valori pentru Produsele care au fost livrate în intervalul de date specificat. Celulele rămase vor conține #NUM! erori. Erori în exemplu de fișier (Fișa 4. Interval de date) .

O formulă similară trebuie introdusă pentru date în coloana E.

Într-o celulă J12 Se calculează numărul de rânduri din tabelul sursă care îndeplinesc criteriile:

COUNTIFS(B12:B20;">="&$E$6;B12:B20;"<="&$E$7)

Rândurile din tabelul sursă care îndeplinesc criteriile sunt .

Soluția 2: Pentru a selecta rânduri, puteți utiliza formule matrice similare cu Sarcina 2 (adică):

=INDEX(A12:A20,MIC(DACĂ(($E$6<=B12:B20)*($E$7>=B12:B20);RÂND(B12:B20);"");RÂND(B12:B20)-RÂND($B$11))-ROW($B$11))

INDEX(B12:B20,MIC(DACĂ(($E$6<=B12:B20)*($E$7>=B12:B20);RÂND(B12:B20);"");RÂND(B12:B20)-RÂND($B$11))-ROW($B$11))

Pentru a introduce prima formulă, selectați intervalul de celule G12:G20 . După introducerea formulei, în loc de tasta ENTER, trebuie să apăsați combinația de taste CTRL+SHIFT+ENTER.

Soluția 3: Dacă coloana Data este SORTED, nu trebuie să utilizați formule matrice.

Mai întâi trebuie să calculați prima și ultima poziție a rândurilor care îndeplinesc criteriile. Apoi scoateți liniile.

Acest exemplu demonstrează încă o dată cât de ușor este să scrii formule.

5. Data unui criteriu (Selectați acele Produse a căror dată de livrare nu este anterioară/nu ulterioară celei specificate)

Să existe un tabel sursă cu o listă de produse și date de livrare (vezi. dosar exemplu, fișă Un criteriu - Data (nu mai târziu) ).

Pentru a selecta rândurile a căror dată nu este anterioară (inclusiv data însăși), se folosește o formulă matrice:

=INDEX(A12:A20,MIC(DACĂ($E$7<=B12:B20;СТРОКА(B12:B20);"");СТРОКА(B12:B20)-СТРОКА($B$11))-СТРОКА($B$11))

De asemenea, în fișierul exemplu sunt formule pentru condițiile: Nu înainte (neincluzând); Nu mai târziu (inclusiv); Nu mai târziu (fără includere).

7. Un criteriu de text (Selectați produse de un anumit tip)

Să existe un tabel inițial cu o listă de produse și prețuri (vezi. dosar exemplu, fișăUn singur criteriu - Text).

8. Două criterii de text (Selectați produse de un anumit tip, livrate într-o anumită lună)

Să existe un tabel inițial cu o listă de produse și prețuri (vezi. dosar exemplu, fișă 2 criterii - text (I) ).

INDEX($A$11:$A$19;
MIC(DACĂ(($F$6=$A$11:$A$19)*($F$7=$B$11:$B$19);RÂND($A$11:$A$19)-ROW($A$10); 30);RÂND(INDIRECT("A1:A"&RÂND($A$11:$A$19)))))

Expresie ($F$6=$A$11:$A$19)*($F$7=$B$11:$B$19) specifică ambele condiții (Produs și Lună).

Expresie RÂND(INDIRECT("A1:A"&RÂND($A$11:$A$19))) forme (1:2:3:4:5:6:7:8:9), adică numerele de rând din tabel.

9. Două criterii de text (Selectați produse din anumite tipuri)

Să existe un tabel inițial cu o listă de produse și prețuri (vezi. dosar exemplu, fișă2 criterii - text (SAU)).

Spre deosebire de Problema 7, vom selecta rânduri cu 2 tipuri de mărfuri ().

O formulă matrice este utilizată pentru a selecta rândurile:

INDEX(A$11:A$19;
MARE((($E$6=$A$11:$A$19)+($E$7=$A$11:$A$19))*(RÂND($A$11:$A$19)-RÂND($A$10) ); COUNTIF($A$11:$A$19,$E$6)+COUNTIF($A$11:$A$19,$E$7)-ROW($A$11:A11)+1))

Condiție ($E$6=$A$11:$A$19)+($E$7=$A$11:$A$19) garantează că numai produsele din tipurile specificate vor fi selectate din celulele galbene (Produs2 și Produs3). Semnul + (adăugare) este folosit pentru a specifica (trebuie îndeplinit cel puțin 1 criteriu).

Expresia de mai sus va returna matricea (0:0:0:0:1:1:1:0:0). Înmulțind-o cu expresia RÂND($A$11:$A$19)-ROW($A$10), adică la (1:2:3:4:5:6:7:8:9), obținem o serie de poziții (numerele rândurilor de tabel) care îndeplinesc criteriile. În cazul nostru, va fi o matrice (0:0:0:0:5:6:7:0:0).

Ca exemplu, oferim soluții la următoarea problemă: Selectați Produse al căror preț se află într-un anumit interval și se repetă de un anumit număr de ori sau de mai multe ori.

Să luăm tabelul transporturilor de mărfuri ca fiind cel inițial.

Să presupunem că ne interesează câte și ce loturi de mărfuri au fost furnizate la un preț de 1000 de ruble. până la 2000 de ruble. (criteriul 1). Mai mult, trebuie să existe cel puțin 3 loturi cu același preț (criteriul 2).

Soluția este o formulă matrice:

MIC(RÂND($A$14:$A$27)*($C$14:$C$27>=$B$7)*($C$14:$C$27<=$C$7)*($D$14:$D$27>=$B$10);F14+($G$8-$G$9))

Această formulă returnează numerele de rând care îndeplinesc ambele criterii.

Formulă =SUMAPRODUS(($C$14:$C$27>=$B$7)*($C$14:$C$27<=$C$7)*($D$14:$D$27>=$B$10)) numără numărul de rânduri care îndeplinesc criteriile.

11. Utilizați valoarea criteriului (Orice) sau (Toate)

ÎN exemplu de fișier pe foaia „11. Criteriul Oricare sau (Toate)” Această versiune a criteriului a fost implementată.

Formula în acest caz trebuie să conţină funcţia IF(). Dacă este selectată valoarea (Toate), atunci se utilizează o formulă pentru a afișa valorile fără a ține cont de acest criteriu. Dacă este selectată orice altă valoare, criteriul funcționează ca de obicei.

IF($C$8="(Toate)";
MIC((RÂND($B$13:$B$26)-ROW($B$12))*($D$13:$D$26>=$D$8);F13+($G$6-$G$7));
MIC((RÂND($B$13:$B$26)-ROW($B$12))*($D$13:$D$26>=$D$8)*($C$13:$C$26=$C$8) ;F13+($G$6-$G$7)))

Restul formulei este similară cu cele discutate mai sus.

Eșantionarea datelor

Creați un raport pe un eșantion din Sheet5 utilizând coloana „Performanță calitativă, procent”. (din foaia 8, tabelul 7)

Pentru a preleva date, trebuie să efectuați următorii pași:

Determinați numărul de elemente ale unei noi matrice în funcție de o condiție dată introducând o variabilă folosind operatorul InputBox

Declarați și re-declarați o nouă matrice

Creați o nouă matrice. Pentru a face acest lucru, trebuie să setați numărul primului element al noii matrice u=1. Apoi se execută un ciclu în care condiția de eșantionare este scrisă în coloana „Performanță calitativă, procent”. Dacă rezultatul testului este adevărat, atunci elementul matricei analizate devine un element al matricei noi.

Retrage element nou pe foaia 8

Sub ReportSelection()

Foi („Sheet8”). Selectați

Dim A() ca variantă

ReDim A (1 la n1, 1 la m)

VVOD „Sheet5”, A, n1, m, 4

C = InputBox(„Introduceți condiția”)

Foi („Sheet8”). Celulele (5,11) = C

Pentru i = 1 La n1

Dacă A(i,

8) >

d = d + 1

Foi („Sheet8”). Celulele (5,10) = d

Dim B() ca variantă

ReDim B (1 la d, 1 la m)

Pentru i = 1 La n1

Dacă A(i,

8) > Foi („Sheet8”). Celulele (5,11) Apoi

Pentru j = 1 La m

B(u, j) = A(i, j)

u = u + 1

Pentru i = 1 La d

Pentru j = 1 La m

Foi („Sheet8”). Celule (i + 4, j) = B (i, j)

Fig.6. Datele din tabel după preluare

Crearea unei macrocomenzi automate pe baza unei selecții

Activați înregistrarea macro. Instrumente>Macro>Începe înregistrarea>OK. Va apărea un pătrat cu un buton pentru a opri înregistrarea. Pe Sheet5 (raport), selectați tabelul fără anteturi și totaluri, copiați-l în Sheet10 (autoselectare). Selectați tabelul fără anteturi și în elementul de meniu, selectați Date>Filter>AutoFilter>select condition>OK. Marcam coloana dupa care vom sorta. Finalizăm macro-ul.

Sub Macro2Selection()

" Macro2Selection Macro

Foi („Sheet5”). Selectați

Selecţie. Copie

Foi („Sheet9”). Selectați

Foaie activă. Pastă

Interval ("H5:H17"). Selectați

Aplicație. CutCopyMode = False

Selecţie. Filtrare automată

Foaie activă. Interval ("$H$5: $H$17"). Câmp de filtrare automată: =1, Criterii1: =">80", _


Operator: =xlAnd

Interval ("G22"). Selectați

Fig.7. Datele din tabel după preluarea automată


Determinarea valorii maxime și minime

Determinați valorile maxime și minime în coloanele „Total”, „Performanță absolută, procente”, „Performanță calitativă” (Tabelul 9, foaia 10)

Pentru a determina valorile maxime și minime, trebuie să efectuați următorii pași:

Setați o variabilă de referință care va fi minimul (maximul) curent

Fiecare element al colecției este comparat pe rând cu minimul (maximul) actual, iar dacă acest element nu îndeplinește condițiile de căutare (în cazul unui minim este mai mare, iar în cazul unui maxim este mai mic), atunci valoarea etalonului este înlocuită cu valoarea elementului comparat

După o revizuire completă a tuturor elementelor, variabila minimă (maximă) curentă găsește minimul (maximul) actual.

Valoarea minimă (maximă) este afișată în celulele corespunzătoare

Subminmax()

Dim A() ca variantă

n1 = Foi ("Foaie4"). Celule (5.12)

m = Foi ("Foaie2"). Celule (5.12)

ReDim A (1 la n1, 1 la m)

VVOD „Sheet5”, A, n1, m, 4

VIVOD „Sheet10”, A, n1, m, 4

VVOD „Sheet10”, A, n1, m, 4

Pentru j = 3 Tom

maxA = 0,00001

minA = 1000000

Pentru i = 1 La n1

Dacă A (i, j) > maxA Atunci

maxA = A (i, j)

Dacă A (i, j)< minA Then

minA = A (i, j)

Foi ("Sheet10"). Celulele (i + 4 + 2, j) = maxA

Foi ("Sheet10"). Celulele (i + 4 + 3, j) = minA


Metoda unu: Utilizarea unui filtru automat avansat

Pe Foaie Excel este necesar să se selecteze o zonă dintre datele care trebuie eșantionate. În fila „Acasă”, faceți clic pe „Sortare și filtrare” (situat în blocul de setări „Editare”). Apoi, faceți clic pe filtru.

O poți face diferit: după ce ai selectat zona, mergi la fila „Date” și dă clic pe „Filtrare”, aflat în grupul „Sortare și filtrare”.

Când acești pași sunt finalizați, pictogramele ar trebui să apară în antetul tabelului pentru a începe filtrarea. Acestea vor fi afișate în jos ca mici triunghiuri pe marginea dreaptă a celulelor. Faceți clic pe această pictogramă la începutul coloanei pentru care urmează să faceți o selecție. Lansați meniul, accesați „Filtre de text” și selectați „Filtru personalizat...”.

Fereastra de filtrare personalizată ar trebui să fie acum activată. În el setați restricția prin care se va efectua selecția. Puteți alege unul dintre cele cinci tipuri de condiții propuse: egal, nu egal, mai mare decât, mai mare decât sau egal cu, mai mic decât.

După filtrare, rămân doar acele linii în care suma veniturilor depășește 10.000 (de exemplu).

În aceeași coloană puteți adăuga o a doua condiție. Trebuie să reveniți din nou la fereastra de filtrare personalizată și să setați o limită de selecție diferită în partea inferioară. Setați comutatorul în poziția „Mai puțin” și introduceți „15000” în câmpul din dreapta.

Tabelul va conține doar acele rânduri în care suma veniturilor nu este mai mică de 10.000, dar nu mai mare de 15.000.

În alte coloane, selecția este configurată într-un mod similar. În coloana dorită, faceți clic pe pictograma filtrului, apoi faceți clic secvențial pe elementele din listă „Filtrați după dată” și „Filtru personalizat”.

Ar trebui să se deschidă fereastra Custom AutoFilter. De exemplu, efectuați o selecție de rezultate în tabelul din 4 mai până în 6 mai 2016, inclusiv. Faceți clic pe „După sau egal”, iar în câmpul din dreapta introduceți valoarea „05/04/2016”. În blocul inferior, puneți comutatorul în poziția „Înainte sau egal”, iar în câmpul din dreapta introduceți „05/06/2016”. Lăsați comutatorul de compatibilitate condiție în poziția implicită, adică „ȘI”. Pentru a aplica filtrarea, faceți clic pe OK.

Lista ar trebui acum redusă și mai mult, pentru că vor rămâne doar rânduri în care suma veniturilor variază de la 10.000 la 15.000, iar aceasta este pentru perioada 05/04-05/06/2016 inclusiv.

Într-una dintre coloane, puteți reseta filtrarea dacă doriți. De exemplu, puteți face acest lucru pentru valorile veniturilor. Faceți clic pe pictograma de filtru automat din coloana corespunzătoare. Selectați „Eliminați filtrul”.

Selecția după valoarea veniturilor va fi dezactivată și va rămâne doar selecția după date (de la 05/04/2016 la 05/06/2016).

Există o altă coloană în tabel numită „Nume”. Conține date în format text. Folosind aceste valori, puteți forma și un eșantion. În numele coloanei, faceți clic pe pictograma filtrului. Accesați „Filtre de text” și apoi „Filtru personalizat...”.

Se va deschide din nou fereastra de filtru personalizat, în care puteți face o selecție, de exemplu, după numele „Carne” și „Cartofi”. În primul bloc, trebuie să setați comutatorul în poziția „Egal” și să introduceți „Cartofi” în câmpul din dreapta acestuia. Setați comutatorul blocului inferior în poziția „Egal”, iar în câmpul opus - „Carne”. Acum ar trebui să setați comutatorul de compatibilitate a condiției în poziția „SAU”. Faceți clic pe OK.

În noul eșantion, restricțiile sunt stabilite după dată (de la 05/04/2016 la 05/06/2016) și după nume (Carne și Cartofi). Nu există restricții doar cu privire la valoarea veniturilor.

Puteți elimina complet filtrul și acest lucru se face folosind aceleași metode care au fost folosite pentru a-l seta. Pentru a reseta filtrarea, în fila „Date”, faceți clic pe „Filtrare” în grupul „Sortare și filtrare”.

În a doua opțiune, puteți accesa fila „Acasă” și faceți clic pe „Sortare și filtrare” în „Editare”. Apoi, faceți clic pe „Filtru”.

Dacă utilizați oricare dintre aceste metode, tabelul va fi șters și rezultatele selecției vor fi șterse. Adică, tabelul va afișa toate datele introduse anterior în el.

Metoda a doua: Folosirea unei formule matrice

Pe aceeași foaie Excel, creați un tabel gol cu ​​aceleași nume de coloane în antet care se află în sursă.

Toate celulele goale trebuie selectate în prima coloană masa noua. Plasați cursorul în bara de formule pentru a introduce formula - =INDEX(A2:A29,SMALL(IF(15000)

Pentru a aplica formula, apăsați tastele Ctrl+Shift+Enter.

Selectați a doua coloană cu date și plasați cursorul în bara de formule pentru a introduce - =INDEX(B2:B29,SMALL(IF(15000)

În același mod, introduceți următoarea formulă în coloana venituri - =INDEX(C2:C29,SMALL(IF(15000)

Se va deschide o fereastră de formatare în care trebuie să selectați fila „Număr”. În „Formate de numere” selectați „Dată”. În partea dreaptă a ferestrei, dacă doriți, puteți selecta tipul de dată afișat, iar când toate setările au fost făcute, faceți clic pe OK.

Acum totul va fi frumos, iar data va fi afișată corect. Dacă celulele afișează valoarea „#NUMĂR!”, atunci trebuie să aplicați formatarea condiționată. Toate celulele tabelului trebuie selectate (cu excepția antetului) și, fiind în fila „Acasă”, faceți clic pe „Formatizare condiționată” (în blocul de instrumente „Stiluri”). Va apărea o listă în care ar trebui să selectați „Creați o regulă...”.

Selectați regulile „Formatați numai celulele care conțin”, iar în primul câmp, situat sub linia „Formatați numai celulele pentru care este îndeplinită următoarea condiție”, selectați „Erori” și faceți clic pe „Format...”.

Se va deschide o fereastră de formatare, în care mergeți la „Font” și selectați culoarea albă. Faceți clic pe OK.

O mostră gata făcută în conformitate cu limitarea specificată va apărea în fața dvs. și totul va fi într-un tabel separat.

A treia metodă: Eșantionarea în mai multe condiții folosind o formulă

Condițiile limită pentru eșantion trebuie introduse într-o coloană separată.

Pe rând, selectați coloanele goale ale noului tabel pentru a introduce cele trei formule necesare în ele. În prima coloană introduceți - =INDEX(A2:A29,SMALL(IF(($D$2=C2:C29),ROW(C2:C29);"");ROW(C2:C29)-ROW($C$1); ) )-ROW($C$1)). Apoi, introduceți aceleași formule în coloane, schimbați doar coordonatele după numele operatorului INDEX la cele care sunt necesare și corespund anumitor coloane. Totul este similar cu metoda anterioară. De fiecare dată când intrați, nu uitați să apăsați combinația de taste Ctrl+Shift+Enter.

Dacă trebuie să modificați limitele de eșantionare, puteți modifica pur și simplu numerele de limită din coloana de condiții și apoi rezultatul selecției va fi schimbat automat.

A patra metodă: eșantionare aleatorie

În partea stângă a tabelului trebuie să săriți peste o coloană, iar în celula următoarei introduceți formula - =RAND() pentru a afișa un număr aleatoriu. Pentru a-l activa, apăsați ENTER.

Dacă trebuie să creați o întreagă coloană de numere aleatorii, atunci plasați cursorul în colțul din dreapta jos al celulei care conține formula. Ar trebui să apară un marcator de umplere, care trebuie tras în jos ținând apăsat butonul stâng al mouse-ului. Acest lucru se face paralel cu tabelul cu datele și până la sfârșit.

Gama de celule va conține formula RAND, dar nu trebuie să lucrați cu valori pure. Copiați în coloana goală din dreapta și selectați o serie de celule cu numere aleatorii. În fila „Acasă”, faceți clic pe „Copiere”.

Selectați o coloană goală și faceți clic dreapta pentru a afișa meniul contextual. În grupul de instrumente „Inserare opțiuni”, selectați „Valori” (afișat ca o pictogramă cu numere).

În fila „Acasă”, faceți clic pe „Sortare și filtrare”, apoi pe „Sortificare personalizată”.

Lângă opțiunea „Datele mele conțin anteturi”, bifați caseta. În linia „Sortare după”, indicați numele coloanei în care se află valorile numere aleatoare copiate. În linia „Sortare”, setările rămân la valorile implicite. În linia „Comandă”, selectați opțiunea „Ascendent” sau „Descendent”. Faceți clic pe OK.

Valorile tabelului trebuie aranjate în ordinea crescătoare sau descrescătoare a numerelor aleatorii. Orice număr de primele rânduri din tabel poate fi luat și considerat rezultatul unui eșantion aleatoriu.

O macrocomandă este o secvență de acțiuni care este înregistrată și salvată pentru o utilizare ulterioară. O macrocomandă salvată poate fi redată folosind o comandă specială. Cu alte cuvinte, puteți să vă înregistrați acțiunile într-o macrocomandă, să o salvați și apoi să permiteți altor utilizatori să redea acțiunile salvate în macrocomandă printr-o simplă apăsare a tastei. Acest lucru este util în special atunci când distribuiți rapoarte PivotTable.

Să presupunem că doriți să oferiți clienților posibilitatea de a grupa rapoartele PivotTable după lună, trimestru și an. Din punct de vedere tehnic, oricine poate face procesul de grupare, dar unii dintre clienții tăi nu vor simți nevoia să-l înțeleagă. Într-un astfel de caz, puteți înregistra o macrocomandă de grupare pe lună, alta pe trimestru și o treime pe an. Apoi creați trei butoane - câte unul pentru fiecare macrocomandă. Apoi, clienții care sunt noi în PivotTables vor trebui doar să facă clic pe un buton pentru a grupa corect raportul masă rotativă.

Principalul beneficiu al utilizării macrocomenzilor în rapoartele PivotTable este acela de a permite clienților să efectueze rapid operațiuni pe PivotTable pe care în mod normal nu le-ar putea efectua. Datorită acestui fapt, eficiența analizei datelor furnizate crește semnificativ.

Descărcați nota în sau formatați, descărcați cu exemple (în interiorul fisier Excel cu macro-uri; Politica furnizorului nu permite încărcarea directă a unui fișier de acest format pe site).

Înregistrați o macrocomandă

Aruncă o privire la tabelul rezumativ prezentat în Fig. 1. Puteți reîmprospăta acest tabel pivot făcând clic dreapta în interiorul lui și selectând Actualizați. Dacă ați înregistrat acțiuni ca macrocomandă în timp ce actualizați PivotTable, dumneavoastră sau oricine altcineva puteți reda acele acțiuni și actualizați PivotTable ca urmare a rulării macrocomenzii.

Orez. 1. Înregistrarea acțiunilor în timpul actualizării acestui tabel pivot vă va permite să actualizați datele în viitor, ca urmare a rulării macrocomenzii

Primul pas în înregistrarea unei macrocomenzi este apelarea casetei de dialog Înregistrați o macrocomandă. Accesați fila Dezvoltator panglică și faceți clic pe butonul Înregistrați o macrocomandă. (Dacă nu găsiți fila pe panglică Dezvoltator, selectați fila Fişier, și faceți clic pe butonul Opțiuni. În caseta de dialog care apare Opțiuni Excel Selectați o categorie Personalizați panglica iar în lista din dreapta, bifați caseta Dezvoltator. Ca rezultat, va apărea o filă pe panglică Dezvoltator.) Mod alternativîncepeți înregistrarea unei macrocomenzi - faceți clic pe butonul (Fig. 2).

În caseta de dialog Înregistrați o macrocomandă Introduceți următoarele informații macro (Figura 3):

Numemacro. Numele ar trebui să descrie acțiunile efectuate de macrocomandă. Numele trebuie să înceapă cu o literă sau subliniere; nu trebuie să conțină un spațiu sau alte caractere ilegale; nu trebuie să fie același cu numele încorporat al Excel sau cu numele altui obiect din registrul de lucru.

Combinaţiechei. Puteți introduce orice literă în acest câmp. Va deveni parte a comenzii rapide de la tastatură care va fi folosită pentru a reda macro-ul. Nu este necesar să specificați o combinație de taste. În mod implicit, doar Ctrl este oferit ca început al unei combinații. Dacă doriți ca combinația să includă și Shift, introduceți litera în fereastră în timp ce țineți apăsată tasta Shift

SalvațiV. Aici este stocată macro-ul. Dacă intenționați să distribuiți raportul PivotTable altor utilizatori, selectați opțiunea Acestcarte. Excel vă permite, de asemenea, să salvați o macrocomandă în Carte noua sau în Macrocarte personală.

Descriere. În acest câmp este introdusă o descriere a macrocomenzii de creat.

Orez. 3. Personalizarea ferestrei Înregistrați o macrocomandă

Deoarece macro-ul actualizează tabelul pivot, selectați numele Actualizare de date. De asemenea, puteți atribui comanda rapidă de la tastatură Ctrl+Shift+Q unei macrocomenzi. Rețineți că, odată ce creați o macrocomandă, veți folosi această comandă rapidă de la tastatură pentru ao rula. Pentru locația de stocare macro, selectați opțiunea Această carteși faceți clic Bine.

După ce faceți clic în caseta de dialog Înregistrați o macrocomandă pe buton BineÎncepe înregistrarea macro. În acest moment, tot ce faceți în Excel va fi înregistrat.

Faceți clic dreapta în zona PivotTable și selectați Actualizați(ca în Fig. 1, dar în modul de înregistrare macro). După actualizarea tabelului pivot, puteți opri procesul de înregistrare macro folosind butonul Opriți înregistrarea file Dezvoltator. Sau faceți din nou clic pe butonul prezentat în Fig. 2.

Deci tocmai ați înregistrat prima macrocomandă. Acum puteți executa macrocomandă folosind combinația de taste Ctrl+Shift+Q.

Avertisment de securitate macro. Trebuie remarcat faptul că, dacă macro-urile sunt înregistrate de către utilizator, acestea vor fi executate fără nicio restricție din partea subsistemului de securitate. Cu toate acestea, la răspândire registrul de lucru care conțin macrocomenzi, este necesar să se ofere altor utilizatori posibilitatea de a se asigura că nu există niciun risc în deschiderea fișierelor de lucru și că executarea macrocomenzilor nu va duce la infectarea sistemului cu viruși. În special, veți observa imediat că fișierul exemplu folosit în acest capitol nu va funcționa pe deplin decât dacă permiteți în mod specific Excel să ruleze macrocomenzi în el.

Cel mai simplu mod de a asigura securitatea macro este crearea unei locații de încredere - un folder în care vor fi plasate doar registrele de lucru „de încredere” care nu conțin viruși. O locație de încredere vă permite dvs. și clienților dvs. să rulați macrocomenzi pe registrele de lucru fără nicio restricție de securitate (acest comportament persistă atâta timp cât registrele de lucru sunt într-o locație de încredere).

Pentru a configura o locație de încredere, urmați acești pași:

Selectați o filă de panglică Dezvoltatorși faceți clic pe butonul Macro Security. Pe ecran va apărea o casetă de dialog Centrul de încredere.

Faceți clic pe butonul Adăugați o locație nouă.

Faceți clic pe butonul Revizuire pentru a specifica un folder pentru fișierele de lucru în care aveți încredere.

Odată ce specificați o locație de încredere, toate registrele de lucru din acea locație vor rula macrocomenzi arbitrare în mod implicit.

În Excel 2013, modelul de securitate a fost îmbunătățit. Acum, fișierele din registrul de lucru care erau anterior „de încredere” sunt memorate, de exemplu. dupa deschidere Caiete de lucru Excelși faceți clic pe butonul Includeți conținut Excel își amintește această stare. Drept urmare, această carte se încadrează în categoria celor de încredere, iar la următoarea deschidere nu se pun întrebări inutile.

Crearea unei interfețe cu utilizatorul utilizând controale de formular

Rularea unei macrocomenzi folosind combinația de taste Ctrl+Shift+Q va ajuta atunci când există o singură macrocomandă într-un raport PivotTable. (De asemenea, utilizatorii trebuie să cunoască această combinație.) Dar să presupunem că doriți să oferiți clienților mai multe macrocomenzi care efectuează acțiuni diferite. În acest caz, trebuie să oferiți clienților cu înțeles și într-un mod simplu rulați fiecare macrocomandă fără a fi nevoie să vă amintiți combinațiile de taste. Soluția ideală este simplă interfața cu utilizatorul ca un set de comenzi, cum ar fi butoane, bare de defilare și alte comenzi care vă permit să executați macrocomenzi cu clicuri de mouse.

Excel vă oferă un set de instrumente concepute pentru a crea interfețe cu utilizatorul direct în foaia de calcul. Aceste instrumente se numesc controale de formular. Ideea de bază este că puteți plasa un control de formular într-o foaie de calcul și îi puteți atribui o macrocomandă care a fost înregistrată anterior. Odată atribuită unui control, macro-ul va fi lansat făcând clic pe acel element.

Controalele formularului pot fi găsite în grup Controale de formulare file de panglică Dezvoltator. Pentru a deschide paleta de control, faceți clic pe butonul din acest grup Introduce(Fig. 4).

Orez. 4. Controlul formularelor Buton

Vă rugăm să rețineți: pe lângă controalele formularului, paleta conține și controale ActiveX . Deși sunt similare, din punct de vedere programatic sunt obiecte complet diferite. Controale de formulare cu dizabilitățile tale și setări simple special concepute pentru a fi plasate pe foile de lucru. În același timp controale ActiveX folosit în principal în formulare personalizate. Fă-ți o obișnuință să plasezi doar controale de formular pe foile de lucru.

Ar trebui să selectați controalele care se potrivesc cel mai bine sarcinii în cauză. În acest exemplu, clienții trebuie să poată actualiza tabelul pivot făcând clic pe un buton. Faceți clic pe control Buton, mutați indicatorul mouse-ului în locul din foaia de lucru în care doriți să fie localizat butonul și faceți clic.

După ce plasați butonul în tabel, se va deschide o casetă de dialog Atribuiți macrocomandă obiect(Fig. 5). Selectați macrocomanda necesară (în cazul nostru - Actualizare de date, înregistrată mai devreme) și faceți clic pe butonul Bine.

Orez. 5. Selectați macrocomanda pe care doriți să o atribuiți butonului și faceți clic pe butonul Bine. În acest caz, ar trebui să utilizați macro-ul Actualizare de date

După ce ați plasat toate controalele necesare în raportul dvs. PivotTable, puteți formata tabelul pentru a crea o interfață de bază. În fig. Figura 6 prezintă raportul PivotTable după formatare.

Editarea unei macrocomenzi înregistrate

Ca rezultat al înregistrării unei macrocomenzi programul Excel creează un modul care stochează acțiunile pe care le-ați efectuat. Toate acțiunile înregistrate sunt reprezentate de linii de cod VBA care alcătuiesc macrocomanda. Puteți adăuga diferite tipuri de date la rapoartele dvs. PivotTable. funcţionalitate, personalizând codul VBA pentru a produce rezultatele dorite. Pentru a înțelege mai ușor cum funcționează totul, să creăm o nouă macrocomandă care afișează primele cinci înregistrări ale clienților. Accesați fila Dezvoltatorși faceți clic pe butonul Înregistrați o macrocomandă. Se va deschide caseta de dialog prezentată în figură. 7. Denumiți macrocomenzii pe care o creați PrimulNcliențiiși indicați locația de salvare Această carte. Clic Bine pentru a începe înregistrarea macro-ului.

După ce începeți înregistrarea, faceți clic pe săgeata de lângă câmp Numele clientului, Selectați Filtrați după valoareși opțiunea Primele 10(Fig. 8a). În caseta de dialog care apare, setați setările așa cum se arată în Fig. 8b. Aceste setări indică afișarea datelor celor cinci clienți cu cele mai bune volume de vânzări. Clic Bine.

Orez. 8. Selectați filtrul (a) și ajustați opțiunile (b) pentru a afișa primii cinci clienți după vânzări

După ce ați înregistrat cu succes toți pașii necesari pentru a extrage primii cinci clienți potențiali, accesați fila Dezvoltatorși faceți clic pe butonul Opriți înregistrarea.

Acum aveți o macrocomandă care va filtra tabelul pivot pentru a extrage primele cinci conturi de vânzări. Este necesar să faceți macro-ul să reacționeze la starea barei de derulare, adică. Folosind bara de defilare, trebuie să puteți spune macrocomenzii numărul de clienți ale căror date vor fi afișate în raportul tabelului pivot. Astfel, folosind bara de defilare, utilizatorul va putea prelua primii cinci, primii opt sau primii treizeci și doi de clienți la discreția sa.

Pentru a adăuga o bară de derulare în foaia de calcul, faceți clic pe Dezvoltator, faceți clic pe butonul Introduce, selectați un control din paletă Bara de defilareși plasați-l pe foaia de lucru. Faceți clic dreapta pe control Bara de defilare Format obiect. Se va deschide o casetă de dialog Format de control(Fig. 9). În el, efectuați următoarele modificări ale setărilor: parametru Valoarea minima atribuiți valoarea 1 parametrului Valoare maximă- valoarea 200, iar în câmp Comunicarea celulară Introduceți $M$2 pentru a afișa valoarea barei de defilare în celula M2. Faceți clic pe butonul Bine pentru a aplica setările specificate anterior.

Acum trebuie să potriviți macrocomanda recent înregistrată PrimulNclienții cu element de control Bara de defilare situat pe foaia de lucru. Faceți clic dreapta pe control Bara de defilare si in meniul contextual alege echipa Atribuiți macrocomandă pentru a deschide caseta de dialog de atribuire macro. Atribuiți o macrocomandă înregistrată barei de defilare Clienții FirstN. Macrocomanda va fi executată de fiecare dată când faceți clic pe bara de defilare. Testați bara de derulare creată. Făcând clic pe bară, se va lansa macrocomanda Clienții FirstN iar numărul din celula M2 se va schimba pentru a afișa starea barei de defilare. Numărul din celula M2 este important deoarece este folosit pentru a lega macrocomandă la bara de defilare.

Singurul lucru care rămâne de făcut este să faceți ca macro-ul să proceseze numărul din celula M2 asociindu-l cu bara de defilare. Pentru a face acest lucru, trebuie să accesați codul VBA al macrocomenzii. Pentru a face acest lucru, accesați fila Dezvoltatorși faceți clic pe butonul Macro-uri. Se va deschide o casetă de dialog Macro(Fig. 10). În el puteți rula, șterge și edita macrocomanda selectată. Pentru a afișa codul VBA al unei macrocomenzi pe ecran, selectați macrocomanda și faceți clic pe butonul Schimbare.

Orez. 10. Pentru a accesa codul VBA al macrocomenzii PrimulNclienții, selectați macrocomanda și faceți clic pe butonul Schimbare

Pe ecran va apărea o fereastră de editor Visual Basic cu codul macro VBA (Fig. 11). Scopul dvs. este să înlocuiți numărul 5 hard-coded, care este setat când macro-ul este înregistrat, cu valoarea din celula M2, care este legată de bara de defilare. Inițial, a fost înregistrată o macrocomandă pentru a afișa primii cinci clienți cu cel mai mare venit.

Eliminați numărul 5 din cod și introduceți în schimb următoarea expresie:

ActiveSheet.Range(" M2 ").Valoare

Adăugați două linii la începutul macrocomenzii pentru a șterge filtrele:

Interval ("A4"). Selectați
ActiveSheet.PivotTables(„PivotTable1”).PivotFields(„Numele clientului”).ClearAllFilters

Acum, codul macro ar trebui să arate așa cum se arată în Fig. 12.

Închideți Visual Basic Editor și reveniți la raportul PivotTable. Testați bara de defilare trăgând glisorul la 11. Macrocomanda ar trebui să ruleze și să filtreze primele 11 conturi de vânzări.

Sincronizați două tabele pivot utilizând o singură listă derulantă

Raportul prezentat în fig. 13 conține două tabele rezumative. Fiecare dintre ele are un câmp de pagină care vă permite să selectați o piață de vânzare. Problema este că de fiecare dată când selectați o piață în câmpul pagini al unui tabel pivot, trebuie să selectați aceeași piață în câmpul pagini al altui tabel pivot. Sincronizarea filtrelor între două tabele în timpul etapei de analiză a datelor nu este o mare problemă, dar există șansa ca dvs. sau clienții dvs. să uitați să o faceți.

Orez. 13. Două tabele pivot conțin câmpuri de pagină care filtrează datele în funcție de piață. Pentru a analiza datele pentru o singură piață, trebuie să sincronizați ambele tabele pivot

O modalitate de a menține aceste tabele pivot sincronizate este să utilizați o listă derulantă. Ideea este de a înregistra o macrocomandă care selectează din teren piața dorită Piața de vânzăriîn ambele tabele. Apoi, trebuie să creați o listă derulantă și să o completați cu numele piețelor din cele două tabele pivot. În cele din urmă, macrocomanda înregistrată trebuie modificată pentru a filtra ambele tabele pivot folosind valorile din lista derulantă. Pentru a rezolva această problemă, trebuie să faceți următoarele:

1. Creați o nouă macrocomandă și dați-i un nume SynchMarkets. Când începe înregistrarea, selectați în câmp Piața de vânzare pentru ambele tabelele rezumative ale pieței de vânzări Californiași opriți înregistrarea macro-ului.

2. Afișați paleta Form Controls și adăugați o listă derulantă la foaia de lucru.

3. Creați o listă hardcoded a tuturor piețelor din tabelul pivot. Vă rugăm să rețineți că primul element al listei este valoarea (Toate). Ar trebui să activați acest element dacă doriți să puteți selecta toate piețele din lista derulantă.

4. În acest moment, raportul PivotTable ar trebui să arate ca cel prezentat în figură. 14.

Orez. 14. Aveți la dispoziție toate instrumentele necesare: o macrocomandă care schimbă câmpul Piața de vânzări ambele tabele pivot, o listă derulantă și o listă cu toate piețele de vânzare conținute în tabelul pivot

5. Faceți clic dreapta pe lista derulantă și selectați comanda din meniul contextual Format obiect pentru a configura controlul.

6. Mai întâi, setați intervalul inițial de valori utilizate pentru a completa lista derulantă, așa cum se arată în figură. 15. În acest caz, vorbim despre lista piețelor de vânzare pe care ați creat-o la pasul 3. Apoi indicați celula care afișează numărul de serie al elementului selectat (în în acest exemplu aceasta este celula H1). Parametru Numărul de linii de listă determină câte rânduri vor fi afișate simultan în lista derulantă. Faceți clic pe butonul Bine.

Orez. 15. Setările listei derulante ar trebui să indice lista de piețe de vânzare ca interval inițial de valori și să definească celula H1 ca punct de ancorare

7. Acum aveți ocazia să selectați o piață de vânzare în lista derulantă și, de asemenea, să determinați numărul de serie asociat acesteia în celula H1 (Fig. 16). Apare întrebarea: de ce este folosită valoarea indicelui său în locul numelui real al pieței? Pentru că lista derulantă nu returnează un nume, ci un număr. De exemplu, dacă selectați California din lista derulantă, în celula H1 apare valoarea 5. Aceasta înseamnă că California este al cincilea element din listă.

Orez. 16. Lista derulantă este acum completată cu numele piețelor, iar numărul de serie al pieței selectate este afișat în celula H1

8. Pentru a utiliza un număr de secvență în loc de un nume de piață, trebuie să îl transmiteți folosind funcția INDEX.

9. Introduceți funcția INDEX, care convertește numărul de serie din celula H1 într-o valoare semnificativă.

10. Funcția INDEX are două argumente. Primul argument reprezintă gama de valori a listei. În cele mai multe cazuri, veți folosi același interval care populează meniul drop-down. Al doilea argument este numărul de ordine. Dacă numărul de serie este introdus într-o celulă (de exemplu, în celula H1, ca în Fig. 17), atunci vă puteți referi pur și simplu la această celulă.

Orez. 17. Funcția INDEX din celula I1 convertește numărul de secvență stocat în celula H1 într-o valoare. Veți folosi valoarea din celula I1 pentru a modifica macrocomanda

11. Editați macrocomanda SynchMarkets, folosind valoarea din celula I1 în loc de valoarea codificată. Accesați fila Dezvoltatorși faceți clic pe butonul Macro-uri. Pe ecran va apărea caseta de dialog prezentată în Fig. 18. Selectați o macrocomandă în ea SynchMarketsși faceți clic pe butonul Schimbare.

Orez. 18. Pentru a accesa codul VBA al macrocomenzii, selectați macrocomandă SynchMarketsși faceți clic Schimbare

12. La înregistrarea macrocomenzii, ați selectat piața de vânzări din California din câmpul din ambele tabele pivot Piața de vânzări. După cum se poate observa din fig. 19, piața din California este acum codificată în codul macro VBA.

13. Înlocuiți valoarea „California” cu expresia Activesheet.Range(„I1”).Value, care face referire la valoarea din celula I1. În această etapă, codul macro ar trebui să arate așa cum se arată în Fig. 20. După modificarea macrocomenzii, închideți Editorul Visual Basic și reveniți la foaia de calcul.

Orez. 20. Înlocuiți valoarea "California" cu ActiveSheet.Range("I1").Value și închideți Visual Basic Editor

14. Tot ce rămâne este să vă asigurați că macro-ul este executat atunci când selectați o piață de vânzare din lista derulantă. Faceți clic dreapta pe meniul derulant și selectați opțiunea Atribuiți macrocomandă. Selectați macrocomandă SynchMarketși faceți clic pe butonul Bine.

15. Ascundeți rândurile și coloanele câmpului de pagină din tabelele pivot, precum și lista de piețe și formulele de index pe care le-ați creat.

În fig. Figura 21 arată rezultatul final. Acum aveți o interfață cu utilizatorul care permite clienților să selecteze o piață în ambele tabele pivot folosind o singură listă derulantă.

Când selectați un articol nou din lista derulantă, coloanele se redimensionează automat pentru a găzdui toate datele pe care le afișează. Acest comportament al programului este destul de enervant atunci când se formatează un șablon de foaie de lucru. Puteți preveni acest lucru făcând clic dreapta pe tabelul pivot și selectând Opțiuni pentru tabel pivot. Pe ecran va apărea o casetă de dialog cu același nume, în care trebuie să resetați caseta de selectare Modificați automat lățimea coloanelor la actualizare.

Nota a fost scrisă pe baza cărții lui Jelen, Alexander. . Capitolul 12.