Masyvo formulių gairės ir pavyzdžiai
Taikoma
„Excel“, skirta „Microsoft 365“ „Excel“, skirta „Microsoft 365“, skirtam „Mac“ „Excel 2024“ „Excel 2024“, skirta „Mac“ Excel 2021 „Excel 2021“ skirta „Mac“ Excel 2019 Excel 2016 „Excel“, skirta „iPad“ „Excel“, skirta „iPhone“

Masyvo formulė yra formulė, kuri gali atlikti kelis skaičiavimus su vienu ar keliais masyvo elementais. Masyvą galima suvokti kaip reikšmių eilutę, reikšmių stulpelį arba reikšmių eilučių ir stulpelių derinį. Masyvo formulės gali grąžinti kelis rezultatus arba vieną rezultatą.

Pradedant 2018 m. rugsėjo mėn. „Microsoft 365“ naujinimu, bet kuri formulė, kuri gali grąžinti kelis rezultatus, automatiškai juos išplečia arba žemyn, arba per gretimus langelius. Šį veikimo pakeitimą taip pat papildo kelios naujos dinaminio masyvo funkcijos. Dinaminio masyvo formules, nesvarbu, ar jos naudoja esamas, ar dinaminio masyvo funkcijas, reikia įvesti tik į vieną langelį, tada patvirtinti paspaudžiant klavišą Enter. Ankstesnėse senstelėjusiose masyvo formulėse pirmiausia reikia pažymėti visą išvesties diapazoną, tada patvirtinti formulę paspaudžiant klavišus Ctrl + Shift + Enter. Jos paprastai vadinamos CSE formulėmis.

Naudodami masyvo formules, galite atlikti sudėtingas užduotis, pvz.:

  • Greitai sukurti duomenų rinkinių pavyzdžius.

  • Apskaičiuoti langelių diapazone esančių simbolių skaičių.

  • Sumuoti tik skaičius, kurie atitinka tam tikras sąlygas, pvz., mažiausias diapazono vertes arba skaičius, kurie yra tarp viršutinės ir apatinės ribos.

  • Sumuoti kiekvieną n-tąją vertę verčių diapazone.

Toliau pateikti pavyzdžiai, vaizduojantys, kaip kurto kelių langelių ir vieno langelio masyvo formules. Kur įmanoma, įtraukėme pavyzdžių su kai kuriomis dinaminio masyvo funkcijomis, taip pat esamas masyvo formules, įvestas kaip dinaminius ir senstelėjusius masyvus.

Atsisiųskite mūsų pavyzdžius

Atsisiųskite darbaknygės pavyzdį su visais masyvo formulės pavyzdžiais, pateiktais šiame straipsnyje.

Šis pratimas vaizduoja, kaip naudoti kelių langelių ir vieno langelio formules pardavimo skaičių rinkiniui apskaičiuoti. Pirmasis veiksmų rinkinys naudoja kelių langelių formulę, kad apskaičiuotų tarpinių sumų rinkinį. Antrasis rinkinys naudoja vieno langelio formulę bendrajai sumai apskaičiuoti.

  • Kelių langelių masyvo formulės

    Kelių langelių masyvo funkcija langelyje H10 =F10:F19*G10:G19 skirta apskaičiuoti automobilių, parduotų už vieneto kainą, skaičių

  • Čia apskaičiuojame bendrą kiekvieno pardavėjo kupė ir sedanų pardavimo sumą įvesdami =F10:F19*G10:G19 langelyje H10.

    Kai paspausite klavišą Enter, rezultatai bus išplečiami į langelius H10:H19. Atkreipkite dėmesį, kad išplėtimo diapazonas paryškinamas kraštine, kai pasirenkate bet kurį langelį išplėtimo diapazone. Taip pat galite matyti, kad formulės langeliuose H10:H19 yra papilkintos. Jos skirtos tik informavimo tikslais, todėl jei norite koreguoti formulę, turėsite pažymėti langelį H10, kuriame yra pagrindinė formulė.

  • Vieno langelio masyvo formulė

    Vieno langelio masyvo formulė, skirta apskaičiuoti bendrąją sumą naudojant =SUM(F10:F19*G10:G19)

    Darbaknygės pavyzdžio langelyje H20 įveskite arba nukopijuokite ir įklijuokite =SUM(F10:F19*G10:G19), tada paspauskite klavišą Enter.

    Šiuo atveju „Excel“ padaugina masyve esančias reikšmes (langelių diapazone nuo F10 iki G19) ir naudoja funkciją SUM, kad sudėtų bendrąsias sumas. Gautas rezultatas yra bendroji pardavimo suma, lygi 1 590 000 EUR.

    Šis pavyzdys vaizduoja, kokios naudingos gali būti tokio tipo formulės. Pavyzdžiui, įsivaizduokite, kad turite 1 000 duomenų eilučių. Galite sumuoti dalį arba visus duomenis sukurdami masyvo formulę viename langelyje, o ne vilkti formulę per 1 000 eilučių. Taip pat atkreipkite dėmesį, kad vieno langelio formulė langelyje H20 yra visiškai nepriklausoma nuo kelių langelių formulės (formulės langeliuose nuo H10 iki H19). Tai dar vienas masyvo formulių naudojimo pranašumas – lankstumas. Kitas H stulpelio formules galite keisti nepadarydami jokios įtakos langelyje H20 esančiai formulei. Taip pat gali būti naudinga turėti tokias nepriklausomas sumas, nes tai padeda patikrinti rezultatų tikslumą.

  • Masyvo formulės taip pat užtikrina šiuos pranašumus:

    • Nuoseklumas    Jei spustelėsite bet kurį langelį žemyn nuo H10, visuose bus rodoma ta pati formulė. Toks nuoseklumas padeda užtikrinti didesnį tikslumą.

    • Saugumas    Kelių langelių masyvo formulės komponento perrašyti negalima. Pavyzdžiui, spustelėkite langelį H11 ir paspauskite klavišą „Delete“. „Excel“ nepakeis masyvo išvesties. Norėdami ją pakeisti, turite pažymėti viršutinį kairįjį masyvo langelį arba langelį H10.

    • Mažesnio dydžio failai.    Dažnu atveju galite naudoti vieną masyvo formulę vietoj kelių tarpinių formulių. Pavyzdžiui, automobilių pardavimo pavyzdyje naudojama viena masyvo formulė rezultatams stulpelyje E apskaičiuoti. Jei būtumėte naudoję standartines formules, pvz., =F10*G10, F11*G11, F12*G12 ir t. t., būtumėte naudoję 11 skirtingų formulių tam pačiam rezultatui apskaičiuoti. Tai nedidelė problema, bet ką daryti, jei turėtumėte tūkstančius eilučių sumai apskaičiuoti? Tuomet skirtumas gali būti labai didelis.

    • Veiksmingumas    Masyvo funkcijos gali būti efektyvus sudėtingų formulių kūrimo būdas. Masyvo formulė =SUM(F10:F19*G10:G19) yra tokia pati kaip ir ši: =SUM(F10*G10,F11*G11,F12*G12,F13*G13,F14*G14,F15*G15,F16*G16,F17*G17,F18*G18,F19*G19).

    • Išplėtimas    Dinaminės masyvo formulės automatiškai išsiplės į išvesties diapazoną. Jei jūsų šaltinio duomenys yra „Excel“ lentelėje, tuomet dinaminio masyvo formulės dydis automatiškai pasikeičia, jei į masyvo diapazoną įtraukiate duomenis arba juos pašalinate.

    • #SPILL! klaida    Dinaminiuose masyvuose pradėta naudoti #SPILL! klaida, nurodanti, kad dėl kažkokios priežasties numatytasis išplėtimo diapazonas yra užblokuotas. Kai pašalinsite šią blokavimo problemą, formulė automatiškai išsiplės.

Masyvo konstantos yra masyvo formulių komponentas. Masyvo konstantos kuriamos įvedant elementų sąrašą ir rankiniu būdu įtraukiant sąrašą į riestinius skliaustus ({ }), štai taip:

={1\2\3\4\5} arba ={"Sausis"\"Vasaris"\"Kovas"}

Jei atskirsite elementus naudodami kablelius, sukursite horizontalųjį masyvą (eilutę). Jei atskirsite elementus naudodami kabliataškius, sukursite vertikalųjį masyvą (stulpelį). Norėdami sukurti dvimatį masyvą, atskirkite kiekvienos eilutės elementus kableliais, o kiekvieną eilutę – kabliataškiais.

Šios procedūros padės išmokti kurti horizontaliąsias, vertikaliąsias ir dvimates konstantas. Parodysime pavyzdžius, kaip naudojant funkciją SEQUENCE automatiškai generuoti masyvo konstantas, taip pat rankiniu būdu įvedamas masyvo konstantas.

  • Horizontaliosios konstantos kūrimas

    Naudokite ankstesnių pavyzdžių darbaknygę arba sukurkite naują. Pažymėkite bet kurį tuščią langelį ir įveskite =SEQUENCE(1,5). Funkcija SEQUENCE sukuria 1 eilutės ir 5 stulpelių masyvą taip pat, kaip ={1\2\3\4\5}. Rodomas toks rezultatas.

    Sukurkite horizontaliojo masyvo konstantą naudodami =SEQUENCE(1,5) arba ={1,2,3,4,5}

  • Vertikaliosios konstantos kūrimas

    Pažymėkite bet kurį tuščią langelį, po kuriuo yra tuščios vietos, ir įveskite =SEQUENCE(5) arba ={1;2;3;4;5}. Rodomas toks rezultatas.

    Sukurkite vertikaliojo masyvo konstantą naudodami =SEQUENCE(5) arba ={1;2;3;4;5}

  • Dvimatės konstantos kūrimas

    Pažymėkite bet kurį tuščią langelį, kurio dešinėje ir apačioje yra tuščios vietos, ir įveskite =SEQUENCE(3,4). Rodomas toks rezultatas:

    Sukurkite 3 eilučių ir 4 stulpelių masyvo konstantą naudodami =SEQUENCE(3,4)

    Taip pat galite įvesti: arba ={1\2\3\4;5\6\7\8;9\10\11\12}, tačiau turite atkreipti dėmesį į tai, kur dedami kabliataškiai, o kur – kableliai.

    Kaip matote, parinktis SEQUENCE turi daug pranašumų lyginant su rankiniu būdu įvedamomis masyvo konstantų reikšmėmis. Pirmiausia, tai sutaupo laiko, tačiau tai taip pat gali padėti sumažinti klaidų, atsirandančių įvedant rankiniu būdu. Taip pat lengviau skaityti, ypač todėl, kad kabliataškius gali būti sunku atskirti nuo kablelių skyriklių.

Štai pavyzdys, kuriame masyvo konstantos naudojamos kaip didesnės formulės dalis. Pavyzdyje pateikiamoje darbaknygėje eikite į darbalapį Konstanta formulėje arba sukurkite naują darbalapį.

Langelyje D9 įvedėme =SEQUENCE(1,5,3,1), bet langeliuose A9:H9 taip pat galite įvesti 3, 4, 5, 6 ir 7. Nėra nieko ypatingo dėl konkretaus numerių pasirinkimo, tiesiog pasirinkome ne 1–5, kad būtų diferencijavimas.

Langelyje E11 įveskite =SUM(D9:H9*SEQUENCE(1,5)) arba =SUM(D9:H9*{1\2\3\4\5}). Formulės grąžina 85.

Formulėse naudokite masyvo konstantas. Šiame pavyzdyje naudojome =SUM(D9:H(*SEQUENCE(1,5))

Funkcija SEQUENCE sukuria masyvo konstantos {1\2\3\4\5} atitikmenį. Programa „Excel“ pirmiausia atlieka apskliaustų išraiškų operacijas, todėl paskesni du svarbūs elementai yra langelio reikšmės D9:H9 ir daugybos operatorius (*). Šioje vietoje formulė padaugina reikšmes, esančias saugomajame masyve, iš atitinkamų konstantos reikšmių. Ji atitinka:

=SUM(D9*1,E9*2,F9*3,G9*4,H9*5) arba =SUM(3*1,4*2,5*3,6*4,7*5)

Galiausiai, funkcija SUM sudeda reikšmes ir grąžina 85.

Jei norite nenaudoti saugomojo masyvo ir palikti operaciją tik atmintyje, galite jį pakeisti kita masyvo konstanta:

=SUM(SEQUENCE(1,5,3,1)*SEQUENCE(1,5)) arba =SUM({3\4\5\6\7}*{1\2\3\4\5})

Elementai, kuriuos galite naudoti masyvo konstantose

  • Masyvo konstantose gali būti skaičių, teksto, loginių reikšmių (pvz., TRUE arba FALSE) ir klaidos reikšmių, pvz., #N/A. Galite naudoti sveikųjų skaičių, dešimtainės ir mokslinės išraiškos formatus. Jeigu įtraukiate tekstą, turite išskirti jį kabutėmis ("tekstas").

  • Masyvų konstantose negali būti papildomų masyvų, formulių, arba funkcijų. Kitaip sakant, jose gali būti tik tekstas arba skaičiai, atskirti kableliais arba kabliataškiais. „Excel“ rodo įspėjimo pranešimą, kai įvedate tokią formulę, pvz. {1\2\A1:D4} arba {1\2\SUM(Q2:Z8)}. Be to, skaitinėse reikšmėse negali būti procentų ženklų, dolerio ženklų, kablelių ar kabučių.

Vienas iš geriausių būdų naudoti masyvo konstantas yra suteikti joms pavadinimą. Pavadintas konstantas galima daug lengviau naudoti, jos gali iš dalies paslėpti nuo kitų jūsų masyvo formulių sudėtingumą. Norėdami pavadinti masyvo konstantą ir naudoti ją formulėje, atlikite šiuos veiksmus:

Eikite į Formulės > Apibrėžti pavadinimai > Apibrėžti pavadinimą. Lauke Pavadinimas įveskite Ketvirtis1. Lauke Susijęs su įveskite šią konstantą (nepamirškite rankiniu būdu įvesti riestinių skliaustų):

={"Sausis"\"Vasaris"\"Kovas"}

Dialogo lango turinys turėtų atrodyti taip:

Įtraukite pavadinto masyvo konstantą iš Formulės > Apibrėžti pavadinimai > Pavadinimų tvarkytuvas > Naujas

Spustelėkite Gerai, tada pažymėkite bet kurią eilutę su trimis tuščiais langeliais ir įveskite =Ketvirtis1.

Rodomas toks rezultatas.

Formulėje naudokite pavadinto masyvo konstantą, pvz., =Quarter1, kur „Quarter1“ buvo apibrėžtas kaip ={"January","February","March"}

Jei norite, kad rezultatai būtų išplečiami vertikaliai, o ne horizontaliai, galite naudoti =TRANSPOSE(Ketvirtis1).

Jei norite parodyti 12 mėnesių sąrašą, pvz., kurį galite naudoti kurdami finansinę ataskaitą, galite ją pagrįsti dabartiniais metais kartu naudodami funkciją SEQUENCE. Ši funkcija paranki tuo, kad nors rodomas tik mėnuo, už jo yra galiojanti data, kurią galite naudoti kituose skaičiavimuose. Šiuos pavyzdžius rasite darbaknygės pavyzdžio darbalapiuose Pavadinto masyvo konstanta ir Trumpas pavyzdinis duomenų rinkinys.

=TEXT(DATE(YEAR(TODAY()),SEQUENCE(1,12),1),"mmm")

Naudokite funkcijų TEXT, DATE, YEAR, TODAY ir SEQUENCE derinį, kad galėtumėte sukurti dinaminį 12 mėnesių sąrašą

Jame naudojama funkcija DATE datai pagal dabartinius metus sukurti, SEQUENCE sukuria masyvo konstantą nuo 1 iki 12, skirtą mėnesiams nuo sausio iki gruodžio, tada funkcija TEXT konvertuoja rodymo formatą į "mmm" (sau, vas, kov ir t. t.). Jei norite rodyti visą mėnesio pavadinimą, pvz., sausis, turėtumėte naudoti "mmmm".

Kai naudojate pavadintąją konstantą kaip masyvo formulę, nepamirškite įvesti lygybės ženklo, kaip šiame pavyzdyje: =Ketvirtis1, ne tik Ketvirtis1. Jei to nepadarysite, programa „Excel“ laikys masyvą tekstine eilute ir jūsų formulė tinkamai neveiks. Galiausiai nepamirškite, kad galite naudoti funkcijų, teksto ir skaičių derinius. Viskas priklauso nuo jūsų kūrybiškumo.

Toliau pavaizduoti keli būdai, kaip galima naudoti masyvo konstantas masyvo formulėse. Kai kuriuose iš pavyzdžių naudojama funkcija TRANSPOSE eilutėms konvertuoti į stulpelius ir atvirkščiai.

  • Kiekvieno masyvo elemento dauginimas

    Įveskite =SEQUENCE(1,12)*2 arba ={1\2\3\4;5\6\7\8;9\10\11\12}*2

    Taip pat galite dalyti naudodami (/), sudėti naudodami (+) ir atimti naudodami (-).

  • Masyvo elementų kėlimas kvadratu

    Įveskite =SEQUENCE(1,12)^2 arba ={1\2\3\4;5\6\7\8;9\10\11\12}^2

  • Kvadratu pakeltų elementų kvadratinės šaknies radimas masyve

    Įveskite =SQRT(SEQUENCE(1,12)^2) arba =SQRT({1\2\3\4;5\6\7\8;9\10\11\12}^2)

  • Vienmatės eilutės transponavimas

    Įveskite =TRANSPOSE(SEQUENCE(1,5)) arba =TRANSPOSE({1\2\3\4\5})

    Nors įvedėte horizontaliojo masyvo konstantą, funkcija TRANSPOSE konvertuoja masyvo konstantą į stulpelį.

  • Vienmačio stulpelio transponavimas

    Įveskite =TRANSPOSE(SEQUENCE(5,1)) arba =TRANSPOSE({1;2;3;4;5})

    Nors įvedėte vertikaliojo masyvo konstantą, funkcija TRANSPOSE konvertuoja masyvo konstantą į eilutę.

  • Dvimatės konstantos transponavimas

    Įveskite =TRANSPOSE(SEQUENCE(3,4)) arba =TRANSPOSE({1\2\3\4;5\6\7\8;9\10\11\12})

    Funkcija TRANSPOSE konvertuos kiekvieną eilutę į stulpelių seką.

Šiame skyriuje pateikiami pagrindinių masyvo formulių pavyzdžiai.

  • Masyvo kūrimas pagal esamas reikšmes

    Šiame pavyzdyje paaiškinama, kaip naudoti masyvo formules norint sukurti naują masyvą iš esamo masyvo.

    Įveskite =SEQUENCE(3,6,10,10) arba ={10\20\30\40\50\60;70\80\90\100\110\120;130\140\150\160\170\180}

    Nepamirškite įvesti { (atidarantįjį riestinį skliaustą) prieš įvesdami 10 ir } (uždarantįjį riestinį skliaustą) įvedę 180, nes kuriate skaičių masyvą.

    Tada tuščiame langelyje įveskite =D9# arba =D9:I11. Rodomas 3 x 6 langelių masyvas su tomis pačiomis reikšmėmis, kurias matote D9:D11. Ženklas # vadinamas išplėsto diapazono operatoriumi ir jis „Excel“ nurodo visą masyvų diapazoną, nereikia jo viso įvesti.

    Naudokite sulietą diapazono operatorių (#), kad nurodote esamą masyvą

  • Masyvo konstantos kūrimas pagal esamas reikšmes

    Galite paimti išplėsto masyvo formulės rezultatus ir konvertuoti juos į komponentų dalis. Pažymėkite langelį D9, tada paspauskite klavišą F2, kad įjungtumėte redagavimo režimą. Po to paspauskite F9, kad konvertuotumėte langelių nuorodas į reikšmes, kurias „Excel“ konvertuos į masyvo konstantą. Kai paspausite klavišą Enter, formulė, =D9#, dabar turėtų būti ={10\20\30;40\50\60;70\80\90}.

  • Langelių diapazono simbolių skaičiavimas

    Toliau pateiktame pavyzdyje parodyta, kaip apskaičiuoti langelių diapazono simbolių skaičių. Šis skaičius apima ir tarpus.

    Bendro simbolių skaičiaus skaičiavimas diapazone ir kituose masyvuose dirbant su teksto eilutėmis

    =SUM(LEN(C9:C13))

    Šiuo atveju funkcija LEN grąžins kiekvienos kiekvieno diapazono langelio teksto eilutės ilgį. Funkcija SUM sudės šias reikšmes ir parodys rezultatą (66). Jei norite gauti simbolių skaičiaus vidurkį, galite naudoti:

    =AVERAGE(LEN(C9:C13))

  • Ilgiausio langelio diapazone C9:C13 turinys

    =INDEX(C9:C13,MATCH(MAX(LEN(C9:C13)),LEN(C9:C13),0),1)

    Ši formulė veikia tik tada, kai duomenų diapazoną sudaro vienas langelių stulpelis.

    Paanalizuokite formulę pradėdami nuo vidinių elementų. Funkcija LEN grąžina kiekvieno langelių diapazono D2:D6 elemento ilgį. Funkcija MAX apskaičiuoja didžiausią šių elementų reikšmę, kuri atitinka ilgiausią teksto eilutę, kuri yra langelyje D3.

    Štai čia viskas tampa sudėtingiau. Funkcija MATCH apskaičiuoja langelio, kuriame yra ilgiausia teksto eilutė, poslinkį (santykinę padėtį). Norint tai padaryti, reikalingi trys argumentai: peržvalgos reikšmė, peržvalgos masyvas ir atitikimo tipas. Funkcija MATCH peržvalgos masyve ieško nurodytos peržvalgos reikšmės. Šiuo atveju peržvalgos reikšmė yra ilgiausia teksto eilutė:

    MAX(LEN(C9:C13)

    Ši eilutė yra šiame masyve:

    LEN(C9:C13)

    Šiuo atveju atitikimo tipo argumentas yra 0. Atitikimo tipą gali sudaryti reikšmė 1, 0 arba -1.

    • 1 – grąžina didžiausią reikšmę, kuri yra mažesnė nei peržvalgos reikšmė arba jai lygi.

    • 0 – grąžina pirmą reikšmę, kuri visiškai lygi peržvalgos reikšmei.

    • -1 V grąžina mažiausią reikšmę, kuri yra didesnė už nurodytą peržvalgos reikšmę arba jai lygi.

    • Jei praleisite atitikimo tipą, programa „Excel“ laikys, kad ji yra 1.

    Ir galiausiai, funkcija INDEX naudoja šiuos argumentus: masyvą ir jame esantį eilutės bei stulpelio numerį. Langelių diapazonas C9:C13 pateikia masyvą, funkcija MATCH – langelio vietą, o galutinis argumentas (1) nurodo, kad reikšmė yra iš pirmojo masyvo stulpelio.

    Jei norite gauti mažiausios teksto eilutės turinį, anksčiau pateiktame pavyzdyje MAX pakeiskite MIN.

  • n mažiausių reikšmių radimas diapazone

    Šiame pavyzdyje parodyta, kaip rasti tris mažiausias langelių diapazono reikšmes, kai duomenų rinkinio pavyzdžio masyvas langeliuose B9:B18 buvo sukurtas naudojant: =INT(RANDARRAY(10,1)*100). Atkreipkite dėmesį, kad RANDARRAY yra kintama funkcija, todėl kiekvieną kartą, kai programa „Excel“ suskaičiuos, gausite naują atsitiktinių skaičių rinkinį.

    „Excel“ masyvo formulė, skirta rasti N-ąją mažiausią reikšmę: =SMALL(B9#,SEQUENCE(D9))

    Įveskite =SMALL(B9#,SEQUENCE(D9), =SMALL(B9:B18,{1;2;3})

    Šioje formulėje naudojama masyvo konstanta, norint įvertinti funkciją SMALL tris kartus ir grąžinti mažiausius 3 narius masyve, kuris yra langeliuose B9:B18, kur 3 yra kintamoji reikšmė langelyje D9. Norėdami rasti daugiau reikšmių, galite padidinti funkcijos SEQUENCE reikšmę arba į konstantą įtraukti daugiau argumentų. Taip pat su šia formule galite naudoti papildomas funkcijas, pvz., SUM arba AVERAGE. Pavyzdžiui:

    =SUM(SMALL(B9#,SEQUENCE(D9))

    =AVERAGE(SMALL(B9#,SEQUENCE(D9))

  • n didžiausių reikšmių radimas diapazone

    Norėdami rasti didžiausias diapazono reikšmes, galite pakeisti funkciją SMALL funkcija LARGE. Be to, šiuose pavyzdžiuose naudojamos funkcijos ROW ir INDIRECT.

    Įveskite =LARGE(B9#,ROW(INDIRECT("1:3"))) arba =LARGE(B9:B18,ROW(INDIRECT("1:3")))

    Čia būtų naudinga žinoti šiek tiek apie funkcijas ROW ir INDIRECT. Galite naudoti funkciją ROW, kad sukurtumėte iš eilės einančių sveikųjų skaičių masyvą. Pavyzdžiui, pažymėkite tuščią ir įveskite:

    =ROW(1:10)

    Formulė sukurs 10 iš eilės einančių sveikųjų skaičių stulpelį. Norėdami peržiūrėti galimą problemą, įterpkite eilutę virš diapazono, kuriame yra masyvo formulė (t. y. virš 1 eilutės). „Excel“ koreguos eilutės nuorodas, o formulės sugeneruos sveikuosius skaičius nuo 2 iki 11. Norėdami pašalinti šią problemą, į formulę įtraukite funkciją INDIRECT:

    =ROW(INDIRECT("1:10"))

    Funkcija INDIRECT kaip argumentus naudoja skirtingas teksto eilutes (todėl diapazonas 1:10 įtrauktas į kabutes). „Excel“ nekoreguoja tekstinių reikšmių, kai įterpiate eilutes arba kitaip perkeliate masyvo formulę. Todėl funkcija ROW visada sugeneruoja jūsų norimų sveikųjų skaičių masyvą. Taip pat lengvai galite naudoti funkciją SEQUENCE:

    =SEQUENCE(10)

    Išnagrinėkime formulę, kurią naudojome anksčiau – =LARGE(B9#,ROW(INDIRECT("1:3"))) – pradėdami nuo vidinių skliaustų ir eidami į išorę: funkcija INDIRECT grąžina tekstinių reikšmių rinkinį, šiuo atveju reikšmes nuo 1 iki 3. Savo ruožtu, funkcija ROW sugeneruoja trijų langelių stulpelių masyvą. Funkcija LARGE naudoja reikšmes langelių diapazone B9:B18 ir ji įvertinama tris kartus, po vieną kartą kiekvienai nuorodai, kurią grąžina funkcija ROW. Jei norite rasti daugiau reikšmių, į funkciją INDIRECT įtraukite didesnį langelių diapazoną. Ir galiausiai, kaip ir funkcijos SMALL pavyzdžių atveju, šią formulę galite naudoti su kitomis funkcijomis, pvz., SUM ir AVERAGE.

  • Diapazono, kuriame yra klaidos reikšmių, sumavimas

    Programos „Excel“ funkcija SUM neveikia, jei bandote sumuoti diapazoną, kuriame yra klaidos reikšmė, pvz., #VALUE! arba #N/ A. Šiame pavyzdyje parodyta, kaip sumuoti reikšmes, esančias diapazone Duomenys, kuriame yra klaidų.

    Naudokite masyvus klaidoms pašalinti. Pavyzdžiui, =SUM(IF(ISERROR(Data),"",Data) susumuos diapazoną, pavadintą „Data“, net jei jame yra klaidų, pvz., #VALUE! arba #NA!.

  • =SUM(IF(ISERROR(Duomenys),"",Duomenys))

    Formulė sukuria naują masyvą, kuriame yra pradinės reikšmės atėmus klaidos reikšmes. Pradedant nuo vidinių funkcijų ir einant į išorę, funkcija ISERROR ieško klaidų langelių diapazone (Duomenys). Funkcija IF pateikia konkrečią reikšmę, jei jūsų nurodyta sąlyga įvertinama kaip TRUE, bei kitą reikšmę, jei sąlyga įvertinama kaip FALSE. Šiuo atveju ji grąžina tuščias eilutes (""") visų klaidų reikšmių atveju, nes jos įvertinamos kaip TRUE ir grąžina likusias reikšmes iš diapazono (Duomenys), nes jos įvertinamos kaip FALSE, tai reiškia, kad jose nėra klaidų reikšmių. Tada funkcija SUM apskaičiuoja sumą filtruotame masyve.

  • Diapazono klaidos reikšmių skaičiaus apskaičiavimas

    Šis pavyzdys yra panašus į ankstesnę formulę, bet grąžina diapazone Duomenys esančias klaidos reikšmes užuot jas atfiltravęs:

    =SUM(IF(ISERROR(Duomenys),1,0))

    Ši formulė sukuria masyvą, kuriame yra langelių su klaidomis reikšmė 1 ir langelių be klaidų reikšmė 0. Galite supaprastinti formulę ir gauti tą patį rezultatą pašalindami trečiąjį funkcijos IF argumentą, kaip pvz.:

    =SUM(IF(ISERROR(Duomeny),1))

    Jei nenurodysite argumento, funkcija IF grąžins reikšmę FALSE, kai langelyje nebus klaidos reikšmės. Galite supaprastinti formulę dar labiau:

    =SUM(IF(ISERROR(Duomenys)*1))

    Ši versija veikia, nes TRUE*1=1 ir FALSE*1=0.

Kartais reikia sumuoti reikšmes pagal sąlygas.

Galite naudoti masyvus norėdami atlikti skaičiavimus, paremtus tam tikromis sąlygomis. =SUM(IF(Sales>0,Sales)) sumuos visas reikšmes, didesnes nei 0 diapazone, pavadintame „Sales“.

Pavyzdžiui, ši masyvo formulė sumuoja tik teigiamus sveikuosius diapazono Pardavimas skaičius, kuris atspindi langelius E9:E24 aukščiau pateiktame pavyzdyje:

=SUM(IF(Pardavimas>0,Pardavimas))

Funkcija IF sukuria teigiamų ir klaidingų reikšmių masyvą. Funkcija SUM nepaiso klaidingų reikšmių, nes 0+0=0. Langelių diapazonas, kurį naudojate šioje formulėje, gali būti sudarytas iš bet kokio eilučių ir stulpelių skaičiaus.

Taip pat galite sumuoti reikšmes, kurios atitinka daugiau nei vieną sąlygą. Pavyzdžiui, ši masyvo formulė apskaičiuoja reikšmes, didesnes nei 0 AND mažesnes nei 2500:

=SUM((Pardavimas>0)*(Pardavimas<2500)*(Sales))

Turėkite omenyje, kad ši formulė grąžina klaidą, jei diapazone yra vienas arba keli ne skaitiniai langeliai.

Taip pat galite kurti masyvo formules, kurios naudoja sąlygos OR tipą. Pavyzdžiui, galite sumuoti reikšmes, didesnes už 0 ARBA mažesnes nei 2500:

=SUM(IF((Pardavimas>0)+(Pardavimas<2500),Pardavimas))

Negalite naudoti funkcijų AND ir OR tiesiogiai masyvo formulėse, nes šios funkcijos grąžina vieną rezultatą, TRUE arba FALSE, o masyvo funkcijoms būtini rezultatų masyvai. Galite išvengti problemos naudodami logiką, pavaizduotą ankstesnėje formulėje. Kitaip tariant, galite atlikti reikšmių, atitinkančių sąlygą OR arba AND, matematines operacijas (pvz., sudėtį arba daugybą).

Šiame pavyzdyje pavaizduota, kaip pašalinti nulius iš diapazono, kai norite apskaičiuoti to diapazono reikšmių vidurkį. Formulė naudoja duomenų intervalą, pavadintą Pardavimas:

=AVERAGE(IF(Pardavimas<>0,Pardavimas))

Funkcija IF sukuria reikšmių, kurios nėra lygios 0, masyvą ir perduoda tas reikšmes funkcijai AVERAGE.

Ši masyvo formulė palygina dviejų langelių diapazonų, pavadintų ManoDuomenys ir TavoDuomenys, reikšmes ir grąžina jų skirtumų skaičių. Jei dviejų diapazonų turinys yra identiškas, formulė grąžina reikšmę 0. Norint naudoti šią formulę, langelių diapazonai turi būti to paties dydžio ir matmens. Pvz., jei ManoDuomenys yra diapazonas iš 3 eilučių ir 5 stulpelių, Tavoduomenys taip pat turi būti iš 3 eilučių ir 5 stulpelių:

=SUM(IF(ManoDuomenys=TavoDuomenys,0,1))

Formulė sukuria naują masyvą, kurio dydis yra toks pat kaip diapazonai, kuriuos lyginate. Funkcija IF užpildo masyvą reikšme 0 ir 1 (0 – neatitikimai, 1 – identiški langeliai). Funkcija SUM grąžina masyvo reikšmių sumą.

Galite supaprastinti formulę:

=SUM(1*(ManoDuomenys<>TavoDuomenys))

Kaip formulė, skaičiuojanti klaidos reikšmes diapazone, ši formulė veikia todėl, kad TRUE*1=1, o FALSE*1=0.

Ši masyvo formulė grąžina vieno stulpelio diapazono Duomenys maksimalios reikšmės eilutės numerį:

=MIN(IF(Duomenys=MAX(Duomenys),ROW(Duomenys),""))

Funkcija IF sukuria naują masyvą, kuris atitinka diapazoną, pavadintą Duomenys. Jei atitinkamame langelyje yra maksimali diapazono reikšmė, masyve yra eilutės numeris. Kitu atveju masyve yra tuščia eilutė (""). Funkcija MIN naudoja naująjį masyvą kaip savo antrąjį argumentą ir grąžina mažiausią reikšmę, kuri atitinka maksimalios diapazono Duomenys reikšmės eilutės numerį. Jei diapazone Duomenys yra identiškos maksimalios reikšmės, formulės grąžina pirmosios reikšmės eilutę.

Jei norite grąžinti faktinę maksimalios reikšmės langelio vietą, naudokite šią formulę:

=ADDRESS(MIN(IF(Duomenys=MAX(Duomenys),ROW(Duomenys),"")),COLUMN(Duomenys))

Panašius pavyzdžius rasite darbaknygės pavyzdyje darbalapyje Duomenų rinkinių skirtumai.

Patvirtinimas

Šio straipsnio dalys pagrįstas „Excel“ patyrusio vartotojo skiltimis, parašytomis Colin Wilcox ir adaptuotomis iš John Walkenbach, ėjusio „Excel“ MVP pareigas, parašytos knygos „Excel 2002“ formulės“ 14 ir 15 skyrių.

Reikia daugiau pagalbos?

Visada galite paklausti „Excel“ technologijų bendruomenės specialisto arba gauti palaikymo bendruomenėse.

Taip pat žr.

Dinaminiai masyvai ir išplėsto masyvo elgesys

Dinaminės masyvo formulės ir senstelėjusios CSE masyvo formulės

Funkcija FILTER

Funkcija RANDARRAY

Funkcija SEQUENCE

Funkcija SORT

Funkcija SORTBY

Funkcija UNIQUE

#IŠPLĖTIMAS! klaidos programoje „Excel“

Netiesioginis sankirtos operatorius: @

Formulių apžvalga

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.