Minsta värde utan nollor. Beräkna lägsta, högsta och medelvärde i Microsoft Excel Hur man beräknar lägsta värde i excel

Excel har en funktion för att bestämma minimivärdet. Hitta dock lägsta värde villkorligt problematisk. En funktion från tillägget kan klara av denna uppgift. =MINCESLI

(liknande standardfunktion Excel SUMIF).

I Excel-version 2016 och ovanför finns en inbyggd funktion MINESLI du kan använda det. Om din Excel är en äldre version kan den här funktionen användas genom att installera tillägget VBA-Excel.

Funktionen har följande argument =MINESLI( RANGE;CRITERIA;[SEARCH_RANGE])

    RÄCKVIDD- Utbud av kontrollerade celler.

  • KRITERIUM- Ett villkor i formatet av ett tal, uttryck eller text som anger minimivärdeskontrollen.
  • [ SEARCH_RANGE ]- Faktiskt område för att fastställa minimivärdet. Om denna parameter inte anges kommer cellerna som anges av parametern att användas. RÄCKVIDD.

Exempel 1

Som ett kriterium kan du ange värden och logiska uttryck:

  1. Betrakta följande exempel, som bestämmer lägsta poäng i litteraturen. För detta, i parametern KRITERIUM värdet "Litterature" anges och parametern RÄCKVIDD- Lista av föremål.
  2. Om du anger ett logiskt uttryck som ett kriterium «<>ryska", då kommer minimibetyget att fastställas i alla ämnen utom för det ryska språket.

Exempel 2

I följande exempel, parametern SEARCH_RANGEär inte inställt, så minimivärdet bestäms bland de celler som anges i parametern RÄCKVIDD.

Att hitta max/minvärde är en enkel uppgift, men det blir något mer komplicerat om MAX/MIN inte finns bland alla värden i intervallet, utan bara bland de som uppfyller ett visst villkor.

Låt det finnas en tabell med två kolumner: text och nummer.

För att underlätta förståelsen av formlerna kommer vi att skapa två för var och en av kolumnerna: Text (A 6: A 30 ) Och Tal (B6:B30 ). (se exempelfil).

Låt oss överväga några uppgifter:

MEN. Hitta det maximala värdet bland de siffror som motsvarar värdet Text1(kriteriet kommer att anges i cellen E6 ).
De där. vi kommer att leta efter det maximala värdet inte bland alla värden i kolumnen Numeriska värden, men bara bland dem som har på samma rad i kolumnen MEN textvärdet är Text1. Låt oss skriva (glöm inte att trycka när du anger formeln CTRL+SKIFT+ENTER):
=STORT(OM(A6:A30=E6,B6:B30,"");1)

eller med namngivna intervall:

=LARGE(OM(Text=E6,Siffror,"");1)

Text=E6-delen av formeln kommer att returnera (TRUE:FALSE:FALSE:FALSE:TRUE:FALSE:FALSE:FALSE:TRUE:FALSE:FALSE:FALSE: TRUE:FALSE:FALSE:FALSE:TRUE:FALSE:FALSE: FALSE:TRUE: FALSE:FALSE:FALSE:FALSE) (för att se resultatet, markera denna del av formeln och tryck på knappen). TRUE matchar rader som har en kolumn Textvärden innehåller ett värde Text1.

En del av formeln OM(Text=E6;Siffror;""), kommer att returnera (10:"":"":"":-66:"":"":"": -37:"":"":"":-5:"": "":"" : 4:"":"":"":8:"":"":"":""), där värdet från den numeriska kolumnen ersätts med TRUE och värdet för FALSE är . Istället för "" kan man använda vilket texttecken som helst (bokstav) eller utelämna det helt (i det här fallet skulle arrayen se ut så här (10:FALSE:FALSK:FALSK:-66: FALSK:FALSK:FALSK:-37:FALSK: FALSKT: FALSKT :-5:FALSKT:FALSKT:FALSKT:FALSKT:4: FALSKT:FALSKT:FALSKT:8: FALSKT:FALSKT:FALSKT:FALSKT)).

Funktionen GREAT() med den andra parametern =1 används istället för funktionen MAX() eftersom om ingen av raderna uppfyller kriteriet, då är formeln = MAX(("":"":"":"":"":"":"": "":"":"":"": "":"":"":"":"" :"":"": "":"":"":"":"":"":"")) kommer att returnera 0!, vilket kan vara missvisande. Funktionen GREAT() i detta fall returnerar felet #NUMBER!

B. Låt oss bara hitta det maximala värdet bland siffror som tillhör ett visst värdeintervall, till exempel från 5 till 50. Kanter kan anges i celler jag 14 Och J14 . Lösningen är:
=STOR(OM((Siffror>=I14)*(Siffror<=J14);Числа);1)

I. Hitta med hjälp matrisformler minimivärdet bland de som matchar värdet Text3:
=MIN(OM((Text=E7),Siffror,"");1)

De där. om i kolumn MEN värde = Text3, då beaktas värdet i kolumnen B om värde<> Text3, då beaktas maxvärdet +1, dvs. uppenbarligen INTE minimum. Vidare returnerar funktionen MIN() minimivärdet från den resulterande matrisen, och det är tydligt att inget av värdena, där<> Text3, förvränger inte resultatet (se problem A).

En annan lösning som använder DMIN()-formeln, vilket inte är det matrisformel.
=DMIN(A5:B30;B5;I8:I9)

G. Låt oss hitta minimivärdet, bland de som är större än:
=DMIN(A5:B30;B5;I10:I11)
var i intervallet I10:I11 innehåller kriterier =B6>MEDEL(tal)

D. Låt oss hitta det maximala värdet modulo. Du kan se från figuren ovan att detta är -99. För att göra detta, använd matrisformel:

OM(MAX(ABS(tal))=MAX(tal),MAX(tal),-MAX(ABS(tal)))

E. Låt oss hitta det minsta positiva antalet:

=SMALL(Siffror;ANTALOM(Siffror;"<=0")+1) - den vanliga formeln!

=LITEN(OM(Siffror>0, Tal),1) - matrisformel.

RÅD:

Alla ovanstående uppgifter kan lösas utan att använda DMIN()-funktionen. För att göra detta måste du skapa en extra kolumn där endast de värden som uppfyller kriterierna kommer att visas. Sedan, bland de valda värdena, med hjälp av funktionerna MAX() eller MIN() bestämmer du maximi- respektive minimivärdet (se exempelfilen Lista utan matrisformler).

Flera förhållanden

Ovanstående tillvägagångssätt kan utvidgas till fall där det är nödvändigt att hitta maximum eller minimum för flera textvillkor.

I det här fallet måste du skriva en mer komplex matrisformel:

=SMALL(OM(($A$6:$A$16=E6)*($B$6:$B$16=F6),$C$6:$C$16,"");1)

I exempelfilen, för tydlighetens skull, . Dessutom används kriterier för urval (se gula celler).

På samma sätt kan du ställa in formler för att hitta minimivärdet för rader vars värden faller inom ett visst intervall.

SPECIELLA FALL

I speciella fall kan lösningen erhållas genom uppräkning av alla möjliga kombinationer.

Program (C#):

Public static int FactGen(int n) ( int fact = new int; fact = 1; för (int i = 1; i< n + 1; i++) fact[i] = i * fact; return fact; } public static int PermsGenerator(int arr, int num, int fact) { int i, j, f, newind, newnum, newval, size = arr.Length; int result = new int; Array.Copy(arr, result, size); for (i = 0, newnum = num; i < size - 1; i++) { newind = newnum / (f = fact); newnum = newnum - newind * f; newval = result; for (j = i + newind; j >i; j--) resultat[j] = resultat; resultat[i] = nyval; ) returnera resultat; ) public static int SumAbs(int arr) ( int summa = 0, prev = arr; foreach (int value in arr) ( summa += Math.Abs(value - prev); prev = värde; ) return summa; ) public static int MaxArr(int arr, bool detprn) ( int i, j, summa, smax = -1, storlek = arr.Length; int perm, result = new int, fact = FactGen(size), sortered = new int, empire = new int;Array.Copy(arr, sorterad, storlek);Array.Sort(sorted);for (i = 0; i< fact; i++) { if ((sum = SumAbs(perm = PermsGenerator(sorted, i, fact))) >smax) ( smax = summa; resultat = perm; ) if (detprn) ( Console.Write("\nPermutation: "); foreach (int-värde i perm) Console.Write(värde + " "); Console.Write(" Summa: (0) Max Summa: (1)", summa, smax); ) ) Console.Write("\nUrsprungligt val: "); foreach (int värde i arr) Console.Write(värde + " "); Console.Write("\nSorterat urval: "); foreach (int-värde i sorterad) Console.Write(värde + " "); Console.Write("\nBästa permutation: "); foreach (int värde i resultat) Console.Write(värde + " "); Console.WriteLine("\nMaximalt belopp: (0)", smax); imperium=sorterat; imperium=sorterat; imperium=sorterat; för (i = 2, j = 0; i< size - 1; i++, j = (size) - 1 + ((i + 1) & 1) - j) empire[i] = sorted[j]; Console.Write("Эвристический алгоритм: "); foreach (int value in empire) Console.Write(value + " "); Console.WriteLine("\nСумма: {0}", SumAbs(empire)); return result; } static void Main(string args) { bool binc; int i, j, n, nmax = 10; int arr; Random rand = new Random(); MaxArr(new int { 1, 2, 3, 4 }, false); MaxArr(new int { 1, 2, 3, 4, 5 }, false); for (n = 6; n < nmax + 1; n++) { arr = new int[n]; for (i = 0; i < n;) { arr[i] = rand.Next(1, 5 * n); binc = true; for (j = 0; j < i; j++) binc &= (arr[i] != arr[j]); if (binc) i++; } MaxArr(arr, false); } }

Resultat:

Initialt prov: 1 2 3 4 Sorterat prov: 1 2 3 4 Bästa permutation: 2 4 1 3 Max summa: 7 Heuristisk: 2 4 1 3 Summa: 7 Initialt prov: 1 2 3 4 5 Sorterat prov: 1 2 3 4 5 Bästa permutation: 2 4 1 5 3 Max summa: 11 Heuristisk algoritm: 2 4 1 5 3 Summa: 11 Ursprungligt prov: 26 10 21 4 27 5 Sorterat urval: 4 5 10 21 26 27 Bästa permutation: 10 26 5 4 Max summa: 99 Heuristik: 10 26 4 27 5 21 Summa: 99 Ursprungligt prov: 34 3 32 16 28 27 26 Sorterat prov: 3 16 26 27 28 32 34 Bästa permutation: 26 28 3 32 17 Max summa: 3 42 17 Max. : 26 28 3 34 16 32 27 Summa: 97 Ursprungligt prov: 27 3 34 38 18 29 31 39 Sorterat prov: 3 18 27 29 31 34 38 39 Bästa Permutation: 29 34 3 318 Max. Summa: 29 34 3 339 29 34 3 39 18 38 27 31 Summa: 128 Ursprung: 40 27 4 9 32 35 41 39 2 Sorterat prov: 2 4 9 27 32 35 39 40 41 Bästa permutation: 32 2 39 4 40 9 41 27 35 Maximumsumma: 223 Heuristisk algoritm: 27 35 2 41 4 40 9 39 32 Summa: 221 Initialt urval: 41 35 45 27 16 prov: 5 45 27 16 24 25 27 33 34 35 41 45 Bästa permutation: 27 34 16 35 18 41 24 45 25 33 Maxsumma: 150 Heuristik: 27 34 16 45 18 41 24 35 3 1 Summa: 25

På det här sättet:

  1. En bättre kombination hittades för den ursprungliga arrayen.
  2. Ett motexempel för den heuristiska algoritmen hittades inte omedelbart.

ALLMÄNT BESLUT (10.02.2018)

Låt vara
a = (a0 = M1, a1 = M2, …, a n-2 = Mn-1, a n-1 = Mn) - initial sekvens,
b = (b 0 , b 1 , …, b n-2 , b n-1 ) - samma sekvens i stigande ordning,
с = (co, c1, …, cn-2, cn-1) - erforderlig sekvens.

Betrakta fallen av jämna och udda n separat.

Fall n = 2k

S(a) = Sc(a) - |a n-1 - a O |, där
Sc a) = |aO - ai | + |a 1 - a 2 | + … + |a n-3 - a n-2 | + |a n-2 - a n-1 | + |a n-1 - a 0 |.

S c (a) är en algebraisk summa som innehåller varje originalelement a i två gånger, och dess maximala värde är lika med

Sc_max = 2∑i = 0, …, k-1 (hi - bi), där hi = bi+k, i = 0…k-1.

Detta värde uppnås i två varianter av permutationer:
1) c 2i h (alla största element har jämna index);
2) c 2i + 1 h (alla största element har udda index).

Samtidigt är minsta |a n-1 - a 0 | = b k - b k-1 uppnås genom att placera ett par medianelement vid kanterna av sekvensen c.

Den maximala summan S är lika med S max = 2∑ i = 0, …, k-2 (b i+k - bi) + b k-1 - b k , eller

Smax = 2∑i = 0, …, k-2 (b n-1-i - bi) + b n-k - b k-1 ,

och uppnås i de fall då sekvensen c innehåller de största elementen i ett schackbrädemönster, och medianelementen bk-1 och bk är vid kanterna av sekvensen.
Antalet sådana permutationer för parvis olika a i är 2(k-1)! 2.

Fall n = 2k+1

En liknande övervägande visar att maximum av S är lika med

S max = 2∑ i=0…k-2 (b k+2+i - bk) + b k+1 - b k-1 + max (b k+1 - bk , bk - b k-1), eller

S max = 2∑ i=0…k-2 (b n-1-i - bi) + b n-k - b k-1 + max (b k+1 - b k, b k - b k-1),

och uppnås i de fall då element med index större än k är förskjutna, och medianelementet och elementet närmast det är vid kanterna av sekvensen.
Antalet sådana permutationer för parvis distinkt a i är inte mindre än (k-1)!k! (om medianen skiljer sig från de närmaste grannarna med samma värde, så finns det dubbelt så många permutationer).

PROGRAM (C#):

Public static void T(strängtext, stoppurstimer) ( TimeSpan ts = timer.Elapsed; string elapsedTime = String.Format("(0:00):(1:00):(2:00).(3:00) ", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10); Console.Write(text + elapsedTime); ) public static int FactGen(int n) ( int fact = new int; fact = 1; för (int i = 1; i< n + 1; i++) fact[i] = i * fact; return fact; } public static int PermsGenerator(int arr, int num, int fact) { int i, j, f, newind, newnum, newval, size = arr.Length; int result = new int; Array.Copy(arr, result, size); for (i = 0, newnum = num; i < size - 1; i++) { f = fact; newind = i; while (newnum >= f) ( newind++; newnum -= f; ) newval = resultat; för (j = newind; j > i; j--) resultat[j] = resultat; resultat[i] = nyval; ) returnera resultat; ) public static int SumAbs(int arr) ( int summa = 0, prev = arr; foreach (int value in arr) ( summa += Math.Abs(value - prev); prev = värde; ) return summa; ) public static int CalcOptQuant (int n) ( int k = (n - 1) / 2, k2 = Math.Max(k-2, 0); int fact = FactGen(k + 2); return 2*faktum[k] * ( (nkk< 2) ? fact : fact[k]); } public static int CalcMaxSum(int brr) { int i, size = brr.Length, k = size / 2, sum = 0; for (i = 0; i < k - 1; i++) sum += brr - brr[i]; sum = 2 * sum + brr - brr; if (size - 2 * k >0) summa += Math.Max(brr - brr[k], brr[k] - brr); retursumma; ) public static int MaxArr(int arr, bool detprn) ( int i, j, summa, smax = -1, size = arr.Length; int perm, result = new int, fact = FactGen(size), sortered = new int , empire = new int; Stopwatch sw = new Stopwatch(); Console.WriteLine("\nUrsprungligt val: "); foreach (int värde i arr) Console.Write(värde + " "); sw.Restart(); för (i = 0; i< fact; i++) { perm = PermsGenerator(arr, i, fact); sum = SumAbs(perm); if (sum >smax) ( smax = summa; resultat = perm; ) ) if (detprn) Console.Write("\nBästa permutationer"); för (i = 0, j = 0; i< fact; i++) { perm = PermsGenerator(arr, i, fact); sum = SumAbs(perm); if (sum == smax) { j++; if (detprn) { Console.Write("\n#{0}: ", j); foreach (int value in perm) Console.Write(value + " "); } } } Array.Copy(arr, sorted, size); Array.Sort(sorted); Console.WriteLine("\nОтсортированная выборка: "); foreach (int value in sorted) Console.Write(value + " "); Console.Write("\nФакт Наибольшая сумма: {0} Лучших перестановок: {1}" + "\nРасчёт Наибольшая сумма: {2} Лучших перестановок, не менее: {3}", smax, j, CalcMaxSum(sorted), CalcOptQuant(size)); T("\nRuntime = ", sw); sw.Reset(); return result; } static void Main(string args) { bool binc; int i, j, n, nmax = 12; int arr = new int; Random rand = new Random(); MaxArr(new int { 0, 1, 2, 3, 4, 5 }, true); MaxArr(new int { 5, 1, 3, 5, 7, 9 }, true); MaxArr(new int { 0, 1, 2, 3, 4 }, true); MaxArr(new int { 0, 1, 2, 3 }, true); MaxArr(new int { 0, 1, 2 }, true); for (n = 3; n <= nmax; n++) { Array.Resize(ref arr, n); for (i = 0; i < n;) { arr[i] = rand.Next(10, 99); binc = true; for (j = 0; j < i; j++) binc &= (arr[i] != arr[j]); if (binc) i++; } MaxArr(arr, false); } }

RESULTAT:

Initialt prov: 0 1 2 3 4 5 Bästa permutationer #1: 2 4 0 5 1 3 #2: 2 4 1 5 0 3 #3: 2 5 0 4 1 3 #4: 2 5 1 4 0 3 #5: 3 0 4 1 5 2 #6: 3 0 5 1 4 2 #7: 3 1 4 0 5 2 #8: 3 1 5 0 4 2 Sorterat prov: 0 1 2 3 4 5 Fakta Högsta summa: 17 Bästa permutationer: 8 Beräkning Största summa: 17 Bästa permutationer, min: 8 Körtid = 00:00:00.01 Initialt prov: 5 1 3 5 7 9 Bästa permutationer #1: 5 1 7 3 9 5 #2: 5 1 9 3 7 5 # 3 : 5 3 7 1 9 5 #4: 5 3 9 1 7 5 #5: 5 7 1 9 3 5 #6: 5 7 3 9 1 5 #7: 5 9 1 7 3 5 #8: 5 9 3 7 1 5 #9: 5 1 7 3 9 5 #10: 5 1 9 3 7 5 #11: 5 3 7 1 9 5 #12: 5 3 9 1 7 5 #13: 5 7 1 9 3 5 #14 : 5 7 3 9 1 5 #15: 5 9 1 7 3 5 #16: 5 9 3 7 1 5 Sorterat prov: 1 3 5 5 7 9 Fakta Högsta summa: 24 Bästa permutationer: 16 Beräkning Högsta summa: 24 Bästa permutationer , minst: 8 Körtid = 00:00:00.01 Initialt prov: 0 1 2 3 4 Bästa permutationer #1: 1 3 0 4 2 #2: 1 4 0 3 2 #3: 2 0 4 1 3 #4: 2 1 4 0 3 #5: 2 3 0 4 1 #6: 2 4 0 3 1 #7: 3 0 4 1 2 #8: 3 1 4 0 2 sorterade Aktuellt urval: 0 1 2 3 4 Fakta Största summa: 11 Bästa permutationer: 8 Beräkning Största summa: 11 Bästa permutationer, minst: 4 Runtime = 00:00:00.01 Initialt urval: 0 1 2 3 Bästa permutationer #1: 1 3 0 2 #2: 2 0 3 1 Sorterat prov: 0 1 2 3 Fakta Högsta summa: 7 Bästa permutationer: 2 Beräkning Högsta summa: 7 Bästa permutationer, minst: 2 Körtid = 00:00:00.00 Initialt prov: 0 1 2 Bästa permutationer #1: 0 2 1 #2: 1 0 2 #3: 1 2 0 #4: 2 0 1 Sorterat prov: 0 1 2 mindre än: 2 Körtid = 00:00:00.01 Initialt prov: 25 51 87 Sorterat prov: 25 51 87 Fakta Högsta summa: 98 Bästa permutationer: 2 Beräkning Högsta summa: 98 Bästa permutationer, minst: 2 Runtime = 00:00:00.00 Originalexempel: 78 10 34 64 Sorterat prov: 10 34 64 78 Fakta Högsta summa : 166 Bästa permutationer: 2 Beräkning Högsta summa: 166 Bästa permutationer, inte mindre ee: 2 Körtid = 00:00:00.00 Ursprungligt prov: 23 26 93 16 45 Sorterat prov: 16 23 26 45 93 :00:00.00 Ursprungligt prov: 85 12 11 13 90 88 Sorterat prov: 8 Högst 13 0 aktuellt Summa: 382 Bästa permutationer: 8 Beräkning Högsta Summa: 382 Bästa permutationer, minst: 8 Körtid = 00:00:00.00 Initialt prov: 82 43 28 55 29 39 18 Sorterat prov: 18 28 29 39 823 F 55 206 Bästa permutationer: 24 Beräkning Högsta summa: 206 Bästa permutationer, minst: 24 Runtime = 00:00:00. 00 Originalprov: 64 20 43 89 47 94 52 71 Sorterat prov: 20 43 47 52 64 71 89 94 00,02 Originalprov: 45 53 81 17 76 97 26 50 51 Sorterat 50 51 50 51 7 5 00.23 Ursprungligt prov: 55 51 36 12 82 63 89 58 14 22 Sorterat prov: 12 14 22 36 51 55 58 63 82 89 Körtid = 00:00:02.46 Ursprungligt 5 prov: 5 7 6 9 5 prov: 5 7 9 : 35 49 53 55 65 67 69 78 94 95 96 permutationer, minst: 5760 Runtime = 00:00:29.21 Initialt prov: 50 43 39 64 59 18 81 16 44 12 15 77 Sorterat prov: 12 15 16 18 39 43 44 50 59 64 77 81

ANALYS AV RESULTATEN

I alla övervägda fall bekräftade testning helt den föreslagna allmänna lösningen.

Om du måste arbeta med stora tabeller, kommer du definitivt att hitta dubbla mängder utspridda längs hela kolumnen. Samtidigt kan du behöva välja data från tabellen med det första minsta numeriska värdet som har sina egna dubbletter. Vi behöver automatiskt urval av data efter villkor. I Excel kan du framgångsrikt använda en matrisformel för detta ändamål.

Hur man gör ett urval i Excel efter villkor

För att bestämma motsvarande värde för det första minsta talet behövs ett urval från tabellen efter villkor. Låt oss säga att vi vill ta reda på den första billigaste produkten på marknaden från en given prislista:

Automatisk provtagning implementeras av en formel som kommer att ha följande struktur:

INDEX(data_intervall_för_val, MIN(OM(intervall=MIN(intervall),RAD(intervall)-RAD(kolumnrubrik),"")))

På platsen "data_range_for_selection" bör du ange värdeintervallet A6:A18 för ett urval från en tabell (till exempel text), från vilken INDEX-funktionen kommer att välja ett resulterande värde. Argumentet "intervall" betyder området av celler med numeriska värden från vilket det första minsta talet ska väljas. I argumentet "column_header" för den andra ROW-funktionen måste du ange en cellreferens med en kolumnrubrik som innehåller ett intervall av numeriska värden.

Naturligtvis bör denna formel utföras i en array. Därför, för att bekräfta inmatningen, bör du inte bara trycka på Enter-tangenten, utan hela tangentkombinationen CTRL + SHIFT + Enter. Om allt är gjort på rätt sätt kommer lockiga hängslen att dyka upp i formelfältet.

Var uppmärksam på figuren nedan, där denna formel i arrayen skrevs in i cell B3:

Välj motsvarande värde med det första minsta talet:


Med den här formeln kunde vi välja minimivärdet i förhållande till siffror. Därefter kommer vi att analysera principen för formeln och analysera hela ordningen för alla beräkningar steg för steg.



Hur urval efter villkor fungerar

INDEX-funktionen spelar här en nyckelroll. Dess nominella uppgift är att välja värden från källtabellen (anges i det första argumentet - A6:A18) som motsvarar vissa siffror. INDEX fungerar enligt kriterierna som definieras i det andra (radnumret i tabellen) och det tredje (kolumnnumret i tabellen) argument. Eftersom vår källtabell A6:A18 bara har 1 kolumn, anger vi inte det tredje argumentet i INDEX-funktionen.

Flera beräkningsfunktioner används för att beräkna tabellradens nummer mitt emot det minsta talet i det intilliggande intervallet B6:B18 och använda det som värdet för det andra argumentet.

IF-funktionen låter dig välja ett värde från en lista efter villkor. Dess första argument anger var varje cell i området B6:B18 kontrolleras för det minsta numeriska värdet: IFB6:B18=MINB6:B18. På detta sätt skapas en array i programminnet från de logiska värdena TRUE och FALSE. I vårt fall kommer 3 arrayelement att innehålla TRUE, eftersom minimivärdet på 8 innehåller ytterligare 2 dubbletter i kolumn B6:B18.

Nästa steg är att bestämma vilka rader i intervallet som innehåller varje minimivärde. Vi behöver detta på grund av definitionen av det första minsta värdet. Denna uppgift implementeras med hjälp av LINE-funktionen, den fyller arrayelementen i programminnet med radnumren på arket. Men först, från alla dessa siffror, subtraheras talet mot den första raden i tabellen - B5, det vill säga talet 5. Detta görs eftersom INDEX-funktionen fungerar med siffror inuti tabellen, och inte med Excel-kalkylbladsnummer. Samtidigt kan ROW-funktionen endast returnera radnumren på arket. För att inte få en offset är det nödvändigt att jämföra ordningen på arkets och tabellens radnummer genom att subtrahera skillnaden. Till exempel, om tabellen är på den 5:e raden på arket, kommer varje rad i tabellen att vara 5 mindre än motsvarande rad på arket.

Efter att alla minimivärden har valts och alla radnummer i tabellen har matchats, kommer MIN-funktionen att välja det minsta radnumret. Samma rad kommer att innehålla det första minsta talet som förekommer i kolumn B6:B18. Baserat på detta radnummer kommer INDEX-funktionen att välja lämpligt värde från tabell A6:A18. Som ett resultat returnerar formeln detta värde i cell B3 som resultatet av beräkningen.

Hur man väljer värdet med det största antalet i Excel

Efter att ha förstått formelns princip kan du nu enkelt ändra den och anpassa den till andra förhållanden. Till exempel kan formeln ändras för att välja det första maxvärdet i Excel:


Om du behöver ändra villkoren för formeln så att du i Excel kan välja det första maximala, men mindre än 70:

!}

Så här väljer du det första minimivärdet annat än noll i Excel:


Som du lätt kan se skiljer sig dessa formler endast i MIN- och MAX-funktionerna och deras argument.

Nu är det inget som begränsar dig. När du väl förstår funktionsprinciperna för formler i en array kan du enkelt modifiera dem för många förhållanden och snabbt lösa många beräkningsproblem.

medelvärde(intervall1, intervall2,...)

Den aktuella cellen returnerar medelvärdet av talen i det angivna intervallet.

Exempel 5 I intervallet av celler A1:A5 från exempel 1 bestämma genomsnittet.

Resultatet ska finnas i cell A7. steg för steg Funktionsguider I cell A7 anger du formeln: =medelvärde(A1:A5).

Bestämning av maxvärdet

max(område1; område2;...)- grupp av statistiska funktioner.

Det maximala antalet från det givna intervallet returneras till den aktuella cellen.

Exempel 6 I intervallet av celler A1:A5 från exempel 1 bestämma maxvärdet.

Resultatet ska finnas i cell A8.

steg för steg Funktionsguider I cell A8 anger du formeln:

=max(A1:A5).

I cell A8 kommer numret 2000 att erhållas.

Bestämma minimivärdet

min(område1; område2;...)- grupp av statistiska funktioner.

Minsta antalet från det givna intervallet returneras till den aktuella cellen.

Exempel 7 I intervallet av celler B1:B5 från exempel 2 bestämma minimivärdet.

Resultatet ska finnas i cell B8.

steg för steg Funktionsguider I cell B8 anger du formeln:

=min(Bl:B5).

Cell B8 kommer att vara 800.

Bestämma rangen för ett nummer

rank (celladress; intervall)- grupp av statistiska funktioner.

Värdet som motsvarar positionen (rangen) för numret som anges av celladressen i det angivna intervallet returneras till den aktuella cellen.

Exempel 8 I cellerna D1, D2, D3, D4, D5 kopierar du informationen från motsvarande celler i kolumn A. För varje cell från intervallet D1: D5, bestäm rangeringen av numret.

Resultatet ska finnas i cellerna E1:E5. Rangeringsfunktionen skrivs först in i cell E1 och kopieras sedan till alla celler upp till E5.

steg för steg Funktionsguider I cell E1 anger du formeln:

=rank(D1; $ D$1:$ D$5) - $ tecken uppsättningar absoluta adresser så att cellområdet inte ändras vid kopiering.

Efter att ha kopierat ner formeln för alla celler upp till E5 får vi rangorden för varje värde i intervallet. Rangen för numret med det maximala värdet i intervallet D1:D5 kommer att vara lika med 1 och med minsta -5.

Förutsägelsefunktioner

trend(kända x_värden, kända_y-värden, nytt y_värde) - grupp av statistiska funktioner

Det nya värdet_X returneras till den aktuella cellen, beräknat baserat på de kända värdena. En linjär approximation utförs.

höjd(kända x_värden, kända_y-värden, nytt y_värde) - grupp av statistiska funktioner.

Det nya värdet_X returneras till den aktuella cellen, beräknat baserat på de kända värdena. En exponentiell approximation utförs Funktionens verkan liknar funktionen trend, endast beräkningen utförs enligt den exponentiella trenden.

Matrisfunktioner

mobr(array)- en grupp matematiska funktioner.

Returnerar i det valda intervallet inversen av matrisen som är lagrad i matrisen.

En matris är en numerisk matris med lika många rader och kolumner. En array kan specificeras som ett cellintervall, till exempel A1:C3, eller som ett intervall eller arraynamn. Om någon av cellerna i arrayen är tom eller innehåller text, eller om arrayen har ett ojämnt antal rader och kolumner, returnerar INTW felvärdet #VALUE!.

mopp(array) - grupp av matematiska funktioner.

Returnerar matrisdeterminanten (matrisen är lagrad i en array).

Determinanten för en matris är ett tal som beräknas baserat på värdena för arrayelementen. En matris är en numerisk matris med lika många rader och kolumner. Om någon cell i arrayen är tom eller innehåller text, returnerar MOPRED felvärdet #VALUE!. MPRED returnerar också #VALUE!-felvärdet om arrayen har ett ojämnt antal rader och kolumner.

1) 10 nyligen använda, 2) Fullständig alfabetisk lista, 3) Finansiell, 4) Datum och tid, 5) Matematisk, 6) Statistisk, 7) Logisk, 8) Text, 9) arbeta med databasen, 10) kontrollera värden

Dela med sig