Kompüterlər və müasir qurğular

XÜSUSİ HALLAR

Xüsusi hallarda, həll bütün mümkün birləşmələri axtararaq əldə edilə bilər.

Proqram (C#):

İctimai statik int FactGen(int n) ( int fakt = yeni int; fakt = 1; üçün (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--) nəticə[j] = nəticə; nəticə[i] = yenival; ) nəticəni qaytarmaq; ) ictimai statik int SumAbs(int arr) ( int sum = 0, prev = arr; foreach (int dəyər arr) ( cəmi += Math.Abs(value - əvvəlki); əvvəlki = dəyər; ) qaytarılan cəmi; ) ictimai statik int MaxArr(int arr, bool detprn) ( int i, j, cəm, smax = -1, ölçü = arr.Length; int perm, nəticə = yeni int, fakt = FactGen(ölçü), çeşidlənmiş = yeni int, imperiya = new int; Array.Copy(arr, sorted, size); Array.Sort(sorted); for (i = 0; i)< fact; i++) { if ((sum = SumAbs(perm = PermsGenerator(sorted, i, fact))) >smax) ( smax = cəmi; nəticə = perm; ) if (detprn) ( Console.Write("\nPermutasiya: "); foreach (permdə int dəyəri) Console.Write(value + " "); Console.Write(" Cəm: (0) Maksimum cəm: (1)", cəmi, smax); ) ) Console.Write("\nİlkin seçim: "); foreach (arrda int dəyər) Console.Write(dəyər + " "); Console.Write("\nSeçilmiş seçim: "); foreach (çeşidlənmiş int dəyər) Console.Write(dəyər + " "); Console.Write("\nƏn yaxşı dəyişdirmə: "); foreach (nəticədə int dəyər) Console.Write(dəyər + " "); Console.WriteLine("\nMaksimum məbləğ: (0)", smax); imperiya = sıralanmış; imperiya = sıralanmış; imperiya = sıralanmış; üçün (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); } }

Nəticələr:

Orijinal nümunə: 1 2 3 4 Çeşidlənmiş nümunə: 1 2 3 4 Ən yaxşı permutasiya: 2 4 1 3 Maksimum cəmi: 7 Evristik alqoritm: 2 4 1 3 Cəmi: 7 Orijinal nümunə: 1 2 3 4 5 Çeşidlənmiş nümunə: 1 2 3 4 5 Ən yaxşı permutasiya: 2 4 1 5 3 Maksimum cəmi: 11 Evristik alqoritm: 2 4 1 5 3 Cəm: 11 Orijinal nümunə: 26 10 21 4 27 5 Çeşidlənmiş nümunə: 4 5 10 21 26 27 Ən yaxşı permutasiya: 62 5 21 Maksimum cəm: 99 Evristik alqoritm: 10 26 4 27 5 21 Cəm: 99 Orijinal nümunə: 34 3 32 16 28 27 26 Çeşidlənmiş nümunə: 3 16 26 27 28 32 34 Ən yaxşı dəyişmə: 28 32 34 Maksimum cəm: 82 97 Evristik alqoritm: 26 28 3 34 16 32 27 Cəm: 97 İlkin nümunə: 27 3 34 38 18 29 31 39 Çeşidlənmiş nümunə: 3 18 27 29 31 34 38 39 Ən yaxşı permutasiya: 331 732 məbləğ: 128 Evristik alqoritm: 29 34 3 39 18 38 27 31 Cəm: 128 İlkin nümunə: 40 27 4 9 32 35 41 39 2 Çeşidlənmiş nümunə: 2 4 9 27 32 35 39 4041 üzrə ən yaxşı mutasiya 42 491 27 35 Maksimum cəm: 223 Evristik alqoritm: 27 35 2 41 4 40 9 39 32 Cəm: 221 Orijinal nümunə: 41 35 45 27 34 33 18 24 16 25 Çeşidlənmiş nümunə: 16 18 3 7 3 4 7 mutasiya: 27 34 16 35 18 41 24 45 25 33 Maksimum məbləğ: 150 Evristik alqoritm: 27 34 16 45 18 41 24 35 25 33 Məbləğ: 150

Beləliklə:

  1. Orijinal massiv üçün daha uğurlu kombinasiya tapıldı.
  2. Hevristik alqoritm üçün əks nümunə dərhal tapılmadı.

ÜMUMİ HƏLL (02/10/2018)

Qoy
a = (a 0 = M 1, a 1 = M 2, ..., a n-2 = M n-1, a n-1 = M n) - orijinal ardıcıllıq,
b = (b 0 , b 1 , …, b n-2 , b n-1 ) - artan ardıcıllıqla eyni ardıcıllıq,
с = (c 0 , c 1 , …, c n-2 , c n-1 ) tələb olunan ardıcıllıqdır.

Cüt və tək n hallarını ayrıca nəzərdən keçirək.

Case n = 2k

S(a) = S c (a) - |a n-1 - a 0 |, burada
S c a) = |a 0 - a 1 | + |a 1 - a 2 | + … + |a n-3 - a n-2 | + |a n-2 - a n-1 | + |a n-1 - a 0 |.

S c (a) hər bir orijinal element a i iki dəfə ehtiva edən cəbri cəmidir və onun maksimum dəyəri

S c_max = 2∑ i = 0, …, k-1 (h i - b i), burada h i = b i+k, i = 0…k-1.

Bu dəyər iki permütasyonda əldə edilir:
1) c 2i h (bütün ən böyük elementlərin cüt indeksləri var);
2) c 2i + 1 h (bütün ən böyük elementlərin tək indeksləri var).

Eyni zamanda minimum |a n-1 - a 0 | = b k - b k-1 c ardıcıllığının kənarlarında bir cüt median elementi yerləşdirməklə əldə edilir.

S cəminin maksimumu S max = 2∑ i = 0, …, k-2 (b i+k - b i) + b k-1 - b k-a bərabərdir, yaxud

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

və c ardıcıllığının dama taxtası qaydasında ən böyük elementləri ehtiva etdiyi hallarda əldə edilir, b k-1 və b k median elementləri ardıcıllığın kənarlarındadır.
Cüt şəkildə fərqli a i üçün belə dəyişmələrin sayı 2(k-1)-dir! 2.

Case n = 2k+1

Bənzər bir mülahizə maksimum S-nin bərabər olduğunu göstərir

S max = 2∑ i=0…k-2 (b k+2+i - b k) + b k+1 - b k-1 + maks (b k+1 - b k , b k - b k-1), və ya

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

və indeksləri k-dən böyük olan elementlərin dama taxtası qaydasında olduğu, medianın və ona ən yaxın elementin isə ardıcıllığın kənarlarında olduğu hallarda əldə edilir.
Cüt şəkildə fərqli a i üçün belə dəyişdirmələrin sayı (k-1)!k!-dən az deyil! (əgər median ən yaxın qonşularından eyni qiymətlə fərqlənirsə, onda iki dəfə çox permutasiya var).

PROQRAM (C#):

İctimai statik boşluq T(sətir mətni, Saniyəölçən taymer) ( Zaman Aralığı ts = timer.Elapsed; string elapsedTime = String.Format("(0:00):(1:00):(2:00).(3:00) ", ts.Hours, ts.Dəqiqələr, ts.Saniyələr, ts.Milliseconds / 10); Console.Write(mətn + keçənTime); ) ictimai statik int FactGen(int n) ( int fakt = yeni int; fakt = 1; üçün (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 = nəticə; üçün (j = newind; j > i; j--) nəticə[j] = nəticə; nəticə[i] = yenival; ) nəticəni qaytarmaq; ) ictimai statik int SumAbs(int arr) ( int sum = 0, prev = arr; foreach (int dəyər arr) ( cəmi += Math.Abs(value - əvvəlki); əvvəlki = dəyər; ) qaytarılan cəmi; ) ictimai statik int CalcOptQuant (int n) ( int k = (n - 1) / 2, k2 = Math.Max(k-2, 0); int fakt = FactGen(k + 2); return 2*fact[k] * ( (n - k - k< 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) cəmi += Math.Max(brr - brr[k], brr[k] - brr); qaytarılan məbləğ; ) ictimai statik int MaxArr(int arr, bool detprn) ( int i, j, cəm, smax = -1, ölçü = arr.Length; int perm, nəticə = yeni int, fakt = FactGen(ölçü), çeşidlənmiş = yeni int , imperiya = yeni int; Saniyəölçən sw = yeni Saniyəölçən(); Console.WriteLine("\nİlkin seçim: "); foreach (arrda int dəyəri) Console.Write(dəyər + " "); sw.Yenidən başladın(); üçün (i = 0; i< fact; i++) { perm = PermsGenerator(arr, i, fact); sum = SumAbs(perm); if (sum >smax) ( smax = cəmi; nəticə = perm; ) ) if (detprn) Console.Write("\nƏn yaxşı dəyişdirmə"); üçün (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); } }

NƏTİCƏLƏR:

Orijinal nümunə: 0 1 2 3 4 5 Ən yaxşı dəyişdirmə #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 Çeşidlənmiş nümunə: 0 1 2 3 4 5 Fakt Ən böyük cəmi: 17 Ən yaxşı dəyişdirmə: 8 Hesablama Ən böyük məbləğ: 17 Ən yaxşı permütasyonlar, az deyil: 8 İcra müddəti = 00:00:00.01 İlkin nümunə: 5 1 3 5 7 9 Ən yaxşı permütasyonlar #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 Çeşidlənmiş nümunə: 1 3 5 5 7 9 Fakt Ən böyük cəm: 24 Ən yaxşı dəyişdirmə: 16 Hesablama Ən böyük cəm: 24 Ən yaxşı dəyişdirmə , az deyil: 8 İcra müddəti = 00:00:00.01 İlkin nümunə: 0 1 2 3 4 Ən yaxşı dəyişdirmə #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 Çeşidlənmiş nümunə: 0 1 2 3 4 Fakt Ən yüksək cəmi: Yuxarı 11 permutasiya: 8 Hesablama Ən böyük cəm: 11 Ən yaxşı permütasyonlar, az deyil: 4 İcra müddəti = 00:00:00.01 İlkin nümunə: 0 1 2 3 Ən yaxşı dəyişdirmə #1: 1 3 0 2 #2: 2 0 3 1 Çeşidlənmiş nümunə: 0 1 2 3 Fakt Ən böyük cəm: 7 Ən yaxşı permutasiyalar: 2 Hesablama Ən böyük cəm: 7 Ən yaxşı permütasyonlar, az deyil: 2 İcra müddəti = 00:00:00.00 İlkin nümunə: 0 1 2 Ən yaxşı dəyişdirmə #1: 0 2 1 #2: 1 0 2 #3: 1 2 0 #4: 2 0 1 Çeşidlənmiş nümunə: 0 1 2 Fakt Ən böyük cəm: 3 Ən yaxşı dəyişdirmə: 4 Hesablama Ən böyük məbləğ: 3 Ən yaxşı dəyişdirmə, az deyil: 2 İcra müddəti = 00:00:00.01 İlkin nümunə: 25 51 87 Çeşidlənmiş nümunə: 25 51 87 Fakt Ən böyük cəm: 98 Ən yaxşı dəyişdirmə: 2 Hesablama Ən böyük məbləğ: 98 Ən yaxşı dəyişdirmə, az deyil: 2 İcra müddəti = 00:00:00.00 İlkin nümunə: 78 10 34 644 Çeşidlənmiş nümunə: 34 78 Fakt Ən böyük cəm: 166 Ən yaxşı dəyişdirmə: 2 Hesablama Ən böyük məbləğ: 166 Ən yaxşı dəyişdirmə, az deyil: 2 İcra müddəti = 00:00:00.00 Orijinal nümunə: 23 26 93 16 45 Çeşidlənmiş nümunə: 16 23 26 Fakt: 4593 Ən yaxşı permütasyonlar: 4 Hesablama Ən böyük cəm: 195 Ən yaxşı permütasyonlar, az deyil: 4 İcra müddəti = 00:00:00.00 İlkin nümunə: 85 12 11 13 90 88 Çeşidlənmiş nümunə: 11 12 13 85 88 90 Ən böyük fakt: Ən yaxşı mutasiyalar28 Hesablama Ən böyük məbləğ: 382 Ən yaxşı permütasyonlar, az deyil: 8 İş vaxtı = 00:00:00.00 Orijinal nümunə: 82 43 28 55 29 39 18 Çeşidlənmiş nümunə: 18 28 29 39 43 55 82 Ən böyük hesablama: 202-ci fakt cəm : 206 Ən yaxşı permütasyonlar, az deyil: 24 İş vaxtı = 00:00:00. 00 Orijinal nümunə: 64 20 43 89 47 94 52 71 Çeşidlənmiş nümunə: 20 43 47 52 64 71 89 94 Fakt Ən böyük cəm: 300 Ən yaxşı dəyişdirmə: 72 Hesablama Ən böyük cəm: 300 Ən yaxşı dəyişdirmə, yox: 0un az =7:00 00.02 Orijinal nümunə: 45 53 81 17 76 97 26 50 51 Çeşidlənmiş nümunə: 17 26 45 50 51 53 76 81 97 Fakt Ən böyük cəm: 337 Ən yaxşı dəyişdirmə: 288 Hesablama Ən yaxşı cəm: 73 dəfə az:08 00: 00.23 Original Nümunə: 55 51 36 12 89 58 58 58 58 58 58 58 58 58 58 51 51 55 55 55 58 63 89 63 82 89 63 82 89 51 89 ƏMƏLİYYATLARI: 1152 Ən yaxşı Permutations Ən yüksək: 420 İş vaxtı = 00:00:02.46 İlkin nümunə: 96 95 67 49 65 69 53 78 35 55 94 Çeşidlənmiş nümunə: 35 49 53 55 65 67 69 78 94 95 96 Fakt Ən böyük hesablamalar: Ən yaxşı cəm: 34 ən yaxşı cəm1: Ən yaxşı cəm1 : 348 Ən yaxşı permutasiyalar, az deyil: 5760 Runtime = 00:00:29.21 Orijinal nümunə: 50 43 39 64 59 18 81 16 44 12 15 77 Çeşidlənmiş nümunə: 12 15 16 18 39 43 44 16 18 39 43 44 504 F73 504 Ən yaxşı permütasyonlar : 28800 Hesablama Ən böyük məbləğ: 463 Ən yaxşı permütasyonlar, az deyil: 28800 İş vaxtı = 00:06:26.81

NƏTİCƏLƏRİN TƏHLİLİ

Bütün nəzərdən keçirilən hallarda sınaq təklif olunan ümumi həlli tamamilə təsdiqlədi.

Müxtəlif növ reytinqlərin hazırlanması və ya müvəffəqiyyət göstəricilərinin təhlili prosesində ən yaxşı və ya ən pis nəticəni rənglə vurğulamaq çox rahatdır. Excel-də maksimum dəyəri rənglə necə vurğulamaq olar? Şərti formatlaşdırmanın lazımlı olduğu yer budur. Bu yanaşmanın üstünlüyü ondan ibarətdir ki, ən yaxşı/ən pis göstəricilərin avtomatik işıqlandırılması hətta cədvələ məlumat əlavə edilərkən və ya silindikdə də işlək qalır.

Excel-də maksimum dəyəri necə vurğulamaq olar

Məsələn, xərc cədvəlini götürün:

Ən yüksək və ən aşağı xərcləri tez müəyyən etmək üçün aşağıdakıları edin:


Nəticədə, maksimum ədədi dəyəri olan xananı vurğuladıq.

Excel-də minimum dəyəri necə seçmək olar

Excel-də minimum dəyəri vurğulamaq üçün yuxarıda təsvir olunan bütün proseduru təkrarlayın. Yalnız MAX funksiyasının əvəzinə MIN funksiyası olmalıdır. Bu funksiya Excel cədvəlində ən kiçik dəyəri seçməyə imkan verir. Və yaşıl rəng əvəzinə qırmızı rəng seçin.


Eyni diapazona tətbiq olunan 2 şərti formatlaşdırma qaydası olmalıdır. Yoxlamaq üçün aləti seçin: "HOME" - "Üslublar" - "Şərti Formatlaşdırma" - "Qaydaları İdarə et"


B sütununda (Xərclər) ən böyük və ən kiçik dəyərləri vurğulamaq üçün iki şərti formatlaşdırma qaydasının tətbiqinin yekun təsiri:

Hər iki qaydanın iş prinsipi eynidir. Onlar yalnız =MAX() və =MIN() funksiyalarında fərqlənirlər. Üstəlik, funksiya arqumentləri eynidir. Birinci funksiya =MAX() maksimum dəyər üçün $B$2:$B$10 mütləq istinadları ilə dəyişməz diapazonu axtarır. Funksiyadan sonra B2-dən başlayaraq nisbi istinadı olan, dəyişdirilən cari xana ilə müqayisə operatoru var. Şərti formatlaşdırma qaydası bu formulanı aşağıdakı kimi oxuyur: əgər rəqəm ən böyükdürsə, onu rənglə vurğulayın. Maksimum ədəd (MAX funksiyası ilə qaytarılır) cari xananın dəyərinə uyğun gələn kimi, düstur TRUE Boolean dəyərini qaytarır və müvafiq doldurma rəngi olan format dərhal tətbiq edilir. Sütun xanalarının ağıllı formatlaşdırılması qaydası MIN funksiyası ilə də işləyir.



Ardıcıl üç ən kiçik dəyəri vurğulayın

Müxtəlif vəziyyətlərdə, ən aşağı dəyərlərə malik üç hüceyrənin avtomatik vurğulanması faydalıdır. Müvafiq düsturlarla şərti formatlaşdırma bunun üçün əla iş görür. Nümunə məlumat cədvəli:

Tapşırığı bir az çətinləşdirək. Ən aşağı dəyəri olan xana avtomatik olaraq qırmızı rəngə sahib olmalıdır. İkinci ən aşağı dəyəri olan növbəti xana narıncı rəngə sahib olacaq. Üçüncü ən aşağı dəyər isə sarıdır.

Bu effekti əldə etmək üçün aşağıdakı addımları yerinə yetirin:


Üç ən kiçik dəyər avtomatik olaraq müxtəlif rənglərdə vurğulanır.

Diqqət! Baxılan diapazonda bir neçə eyni minimum dəyər varsa, onların hamısı rənglə vurğulanacaq.

Bənzər bir şəkildə, rəngdə ən böyük dəyərləri vurğulaya bilərsiniz. Sadəcə olaraq düsturda SMALL funksiyasını MAXIMUM-a dəyişdirin. Məsələn: =BÖYÜK($B$2:$B$9,3)=B2


Excel-də ən kiçik və ən böyük funksiya

=SMALL() funksiyası göstərilən diapazonda (birinci arqumentdə) növbəti ən kiçik dəyəri axtarır. Növbə funksiyanın ikinci arqumentində müəyyən edilir. Yəni, əgər biz ikinci arqumentdə 3 rəqəmini göstərmişiksə, onda funksiya verilmiş $B$2:$B$9 diapazonunda üçüncü ən kiçik dəyəri qaytarır. Əgər funksiya hesablamasının nəticəsi cari xanaya bərabərdirsə, ona uyğun format (doldurma rəngi) təyin edilir. Qeyd etmək lazımdır ki, diapazona baxmaq üçün düsturda biz mütləq istinad ünvanlarından istifadə edirik və =B2 müqayisə operatorundan sonra nisbi olanlardan istifadə edirik, çünki funksiyanın dəyəri seçilmiş diapazonun hər bir xanası ilə müqayisə edilir. Və BÖYÜK funksiyası tərs nisbətdə işləyir.

Faydalı məsləhət! 3 ən kiçik dəyəri müxtəlif rənglərə bölməyə ehtiyac yoxdursa, eyni diapazon üçün 3 şərti formatlaşdırma qaydası yaratmaq lazım deyil. Sadəcə bir operator simvolu əlavə etməklə düsturu bir az dəyişmək kifayətdir: =SMALL($B$2:$B$9;3)>=B2. Yəni ondan böyük və ya bərabərdir.


Təsvir edilən bütün üsullar yaxşıdır, çünki hüceyrələrdəki dəyərləri dəyişdirdiyiniz zaman onlar hələ də avtomatik işləyəcəklər.

Excel-də minimum dəyəri təyin etmək funksiyası var. Bununla belə, minimum dəyəri şərtlə tapmaq problemlidir. Əlavədən olan funksiya bu vəzifənin öhdəsindən gələ bilər =MİNÇƏLİ(standart Excel SUMIF funksiyasına bənzəyir).

Excel versiyasında 2016 və yuxarıda daxili funksiya var MİNESLİ istifadə edə bilərsiniz. Əgər Excel əvvəlki versiyadırsa, onda bu funksiya əlavəni quraşdırmaqla istifadə edilə bilər VBA-Excel.

Funksiya aşağıdakı arqumentlərə malikdir =MINESLI( RANGE;CRITERIA;[SEARCH_RANGE ])

    RANGE- Yoxlanmış hüceyrələrin diapazonu.

  • MEYAR- Minimum dəyər yoxlamasını təyin edən ədəd, ifadə və ya mətn formatında şərt.
  • [ SEARCH_RANGE ]- Minimum dəyəri müəyyən etmək üçün faktiki diapazon. Bu parametr göstərilməyibsə, parametr tərəfindən göstərilən xanalar istifadə olunacaq RANGE.

Misal 1

Dəyərləri və məntiqi ifadələri meyar kimi təyin edə bilərsiniz:

  1. Minimum ədəbiyyat qiymətini müəyyən edən aşağıdakı nümunəyə nəzər salın. Bunu etmək üçün parametrdə MEYAR"Ədəbiyyat" dəyəri müəyyən edilir və parametr RANGE- əşyaların siyahısı.
  2. Məntiqi ifadəni meyar kimi göstərsəniz "<>rusca", onda rus dili istisna olmaqla, bütün fənlər üzrə minimum qiymət müəyyən ediləcək.

Misal 2

Aşağıdakı nümunədə parametr SEARCH_RANGE göstərilmir, ona görə də minimum qiymət parametrdə göstərilən xanalar arasında müəyyən edilir RANGE.

Bu elektron cədvəl prosessoru demək olar ki, bütün hesablamaları idarə edə bilir. Mühasibat uçotu üçün idealdır. Hesablamalar üçün xüsusi vasitələr var - düsturlar. Onlar bir sıra və ya ayrı-ayrı hüceyrələrə tətbiq oluna bilər. Bir qrup hüceyrədəki minimum və ya maksimum sayını tapmaq üçün onları özünüz axtarmaq lazım deyil. Bunun üçün nəzərdə tutulmuş variantlardan istifadə etmək daha yaxşıdır. Excel-də ortalamanın necə hesablanacağını başa düşmək də faydalı olacaq.

Bu, xüsusilə böyük miqdarda məlumat olan cədvəllərdə doğrudur. Sütun, məsələn, ticarət mərkəzinin məhsullarının qiymətlərini göstərirsə. Və hansı məhsulun ən ucuz olduğunu öyrənməlisiniz. Onu əl ilə axtarsanız, çox vaxt aparacaq. Ancaq Excel-də bunu bir neçə kliklə etmək olar. Faydalı proqram həmçinin arifmetik ortanı hesablayır. Axı bunlar iki sadə əməliyyatdır: əlavə və bölmə.

Maksimum və minimum

Excel-də maksimum dəyəri necə tapmaq olar:

  1. Hüceyrə kursorunu istənilən yerə qoyun.
  2. "Formullar" menyusuna keçin.
  3. Funksiya daxil et klikləyin.
  4. Siyahıdan "MAX" seçin. Və ya bu sözü "Axtarış" sahəsinə yazın və "Tap" düyməsini basın.
  5. "Arqumentlər" pəncərəsində maksimum dəyərini bilməli olduğunuz diapazonun ünvanlarını daxil edin. Excel-də hüceyrə adları hərf və rəqəmdən ("B1", "F15", "W34") ibarətdir. Aralığın adı isə ona daxil olan ilk və son xanalardır.
  6. Ünvan əvəzinə bir neçə rəqəm yaza bilərsiniz. Sonra sistem onlardan ən böyüyünü göstərəcək.
  7. OK düyməsini basın. Nəticə kursorun olduğu xanada görünəcək.

Növbəti addım bir sıra dəyərləri təyin etməkdir

İndi Excel-də minimum dəyərin necə tapılacağını anlamaq daha asan olacaq. Hərəkətlərin alqoritmi tamamilə eynidır. Sadəcə olaraq "MAX" əvəzinə "MIN" seçin.

Orta

Arifmetik orta aşağıdakı kimi hesablanır: çoxluqdakı bütün ədədləri toplayın və onların sayına bölün. Excel-də siz məbləğləri hesablaya bilərsiniz, ard-arda neçə hüceyrə olduğunu öyrənə bilərsiniz və s. Amma çox çətin və vaxt aparır. Çox müxtəlif funksiyalardan istifadə etməli olacaqsınız. Məlumatı başınızda saxlayın. Və ya hətta bir kağız parçasına bir şey yazın. Ancaq alqoritmi sadələşdirmək olar.

Excel-də ortalamanı necə tapmaq olar:

  1. Hüceyrə kursorunu cədvəldə istənilən boş yerə qoyun.
  2. "Formullar" sekmesine keçin.
  3. "Funksiya daxil et" düyməsini basın.
  4. AVERAGE seçin.
  5. Bu element siyahıda yoxdursa, "Tap" seçimindən istifadə edərək onu açın.
  6. Number1 sahəsində diapazonun ünvanını daxil edin. Və ya müxtəlif sahələrə bir neçə rəqəm yazın “Nömrə2”, “Nömrə3”.
  7. OK düyməsini basın. Lazımi dəyər xanada görünəcək.

Beləliklə, yalnız cədvəldəki mövqelərlə deyil, həm də ixtiyari dəstlərlə hesablamalar apara bilərsiniz. Excel mahiyyətcə təkmil kalkulyator rolunu oynayır.

digər üsullar

Maksimum, minimum və orta başqa yollarla da tapıla bilər.

  1. "Fx" etiketli funksiya panelini tapın. Masanın əsas iş sahəsinin üstündədir.
  2. Kursoru istənilən xanaya qoyun.
  3. "Fx" sahəsinə arqument daxil edin. Bərabər işarə ilə başlayır. Sonra formula və diapazonun/xananın ünvanı gəlir.
  4. “=MAX(B8:B11)” (maksimum), “=MIN(F7:V11)” (minimum), “=ORTA(D14:W15)” (orta) kimi bir şey əldə etməlisiniz.
  5. Funksiyalar sahəsinin yanındakı onay işaretini vurun. Və ya sadəcə Enter düyməsini basın. İstədiyiniz dəyər seçilmiş xanada görünəcək.
  6. Düstur birbaşa hüceyrənin özünə kopyalana bilər. Təsiri eyni olacaq.

Excel AutoFunctions aləti tapmaq və hesablamaqda sizə kömək edəcək.

  1. Kursoru xanaya qoyun.
  2. Adı "Avto" ilə başlayan düyməni tapın. Bu, Excel-də seçilmiş standart seçimdən asılıdır (Autosum, AutoNumber, AutoOffset, AutoIndex).
  3. Bunun altındakı qara oxa klikləyin.
  4. MIN (minimum dəyər), MAX (maksimum) və ya AVERAGE (orta) seçin.
  5. Düstur işarələnmiş xanada görünəcək. İstənilən başqa hüceyrəyə klikləyin - o, funksiyaya əlavə olunacaq. Aralığı əhatə etmək üçün ətrafındakı qutunu "uzadın". Və ya bir anda bir element seçmək üçün Ctrl düyməsini basıb saxlayaraq şəbəkəyə klikləyin.
  6. Bitirdikdə Enter düyməsini basın. Nəticə xanada görünəcək.

Excel-də ortalamanın hesablanması olduqca asandır. Məbləği əlavə edib sonra bölməyə ehtiyac yoxdur. Bunun üçün ayrıca bir funksiya var. Siz həmçinin setdə minimum və maksimumu tapa bilərsiniz. Bu, əl ilə saymaqdan və ya nəhəng cədvəldə rəqəmlər axtarmaqdan daha asandır. Buna görə də Excel dəqiqliyin tələb olunduğu bir çox fəaliyyət sahələrində populyardır: biznes, audit, insan resursları, maliyyə, ticarət, riyaziyyat, fizika, astronomiya, iqtisadiyyat, elm.

İlkin məlumatlar
Mənbə məlumatları üfüqi və ya şaquli diapazon, iki ölçülü massiv və ya hətta bitişik olmayan diapazonlar və ya ayrı-ayrılıqda məskunlaşmış xanalar kimi istənilən rəqəmsal məlumat dəsti ola bilər. Rahatlıq üçün A1:A5 bir ölçülü şaquli massiv götürdüm

Bu problemi həll etmək üçün ya ara düsturlu əlavə sütundan, ya da bir massiv formulundan istifadə edə bilərsiniz

1. Əlavə sütunla həll

B1-də düsturu yazın

IF(A1<>0;A1;"")


və onu B2:B5 diapazonuna köçürün. Əlavə sütundakı bu ara düstur orijinal məlumatdan sıfırları "siləcək" və onları boş sətirlə əvəz edəcək. ""

C1-də düsturu yazın

İstədiyiniz nəticəni - bir nömrəni qaytaracaq 3

IF(A1<>0;A1;"")


düsturundan istifadə etmək lazımdır

IF(A1>0;A1;"")


2. Massiv düsturu ilə həlli
Bu problemi həll etmək üçün bu massiv düsturundan istifadə edin:

MIN(ƏGƏR(A1:A5<>0;A1:A5))



Bu necə işləyir: Bu formulun bir hissəsidir A1:A5<>0 massiv əmələ gətirir (DOĞRU:DOĞRU:YANLIŞ:YANLIŞ:DOĞRU), bundan sonra IF() funksiyasından istifadə edərək massivi aşağıdakılara çeviririk: (5:7:YALAN:YALAN:3). Funksiyadan bəri MIN() mətnə ​​və məntiqi dəyərlərə məhəl qoymur, sonra sonda istədiyimiz rəqəmi - nömrəni alırıq 3

Aralıqda mənfi ədədlər varsa, düstur yerinə

MIN(ƏGƏR(A1:A5<>0;A1:A5))


düsturundan istifadə etmək lazımdır

MIN(ƏGƏR(A1:A5>0,A1:A5))


3. Sadə düsturla həll
Bu düsturdan istifadə edin:

KİÇİ(A1:A5, COUNTIF(A1:A5,0)+1)



Necə işləyir: Funksiyadan istifadə etməklə COUNTIF diapazondakı sıfırların sayını hesablayırıq və bu ədədə bir əlavə etməklə funksiyadan istifadə edərək sıfırdan böyük olan ilk ən kiçik ədədi qaytarırıq. EN AZ

Aralıqda mənfi ədədlər varsa, düstur yerinə

Səhv görsəniz, mətn parçasını seçin və Ctrl+Enter düymələrini basın
PAYLAŞ:
Kompüterlər və müasir qurğular