Chọn giá trị nhỏ nhất theo điều kiện trong excel. Giá trị nhỏ nhất không bao gồm số không

Nếu bạn phải làm việc với các bảng lớn, bạn chắc chắn sẽ tìm thấy số lượng trùng lặp trong chúng nằm rải rác dọc theo toàn bộ một cột. Đồng thời, bạn có thể cần chọn dữ liệu từ bảng có giá trị số nhỏ nhất đầu tiên, có giá trị trùng lặp của chính nó. Chúng tôi cần lựa chọn dữ liệu tự động theo điều kiện. Trong Excel, bạn có thể sử dụng thành công công thức mảng cho mục đích này.

Cách thực hiện lựa chọn trong Excel theo điều kiện

Để xác định giá trị tương ứng, số nhỏ nhất đầu tiên cần được lựa chọn từ bảng theo điều kiện. Giả sử chúng tôi muốn biết sản phẩm rẻ nhất đầu tiên trên thị trường từ bảng giá này:

Lựa chọn tự động được thực hiện bởi một công thức sẽ có cấu trúc sau:

INDEX (data_range_for_sample; MIN (IF (range = MIN (range); ROW (range) -ROW (column_header); ””)))

Ở vị trí "data_range_for_fetch", bạn nên chỉ định phạm vi giá trị A6: A18 cho một lựa chọn từ một bảng (ví dụ: văn bản), từ đó hàm INDEX sẽ chọn một giá trị kết quả. Phạm vi đề cập đến phạm vi ô số để chọn số thấp nhất đầu tiên. Trong đối số column_heading cho hàm ROW thứ hai, bạn phải chỉ định một tham chiếu ô có tiêu đề cột chứa một phạm vi giá trị số.

Đương nhiên, công thức này phải được thực hiện trong một mảng. Do đó, để xác nhận mục nhập của nó, bạn không chỉ nên nhấn phím Enter mà phải nhấn toàn bộ tổ hợp phím CTRL + SHIFT + Enter. Nếu mọi thứ được thực hiện đúng, dấu ngoặc nhọn sẽ xuất hiện trong thanh công thức.

Hãy chú ý đến hình bên dưới, nơi công thức này được nhập trong một mảng vào ô B3:

Lấy mẫu giá trị tương ứng với số nhỏ nhất đầu tiên:


Với công thức này, chúng tôi đã quản lý để chọn giá trị nhỏ nhất liên quan đến các con số. Tiếp theo, chúng ta sẽ phân tích nguyên tắc của công thức và từng bước phân tích toàn bộ thứ tự của tất cả các phép tính.



Cách hoạt động của tính năng tìm nạp có điều kiện

Hàm INDEX đóng một vai trò quan trọng ở đây. Nhiệm vụ danh nghĩa của nó là chọn từ bảng nguồn (được chỉ ra trong đối số đầu tiên - A6: A18) các giá trị tương ứng với các số nhất định. INDEX hoạt động có tính đến các tiêu chí được xác định trong đối số thứ hai (số hàng bên trong bảng) và thứ ba (số cột trong bảng). Vì bảng A6: A18 ban đầu của chúng tôi chỉ có 1 cột, chúng tôi không chỉ định đối số thứ ba trong hàm INDEX.

Một số hàm tính toán được sử dụng để tính toán số hàng của bảng so với số nhỏ nhất trong phạm vi liền kề B6: B18 và sử dụng nó làm giá trị cho đối số thứ hai.

Hàm IF cho phép bạn chọn một giá trị từ danh sách một cách có điều kiện. Đối số đầu tiên của nó chỉ định nơi mỗi ô trong phạm vi B6: B18 được kiểm tra giá trị số nhỏ nhất: IF B6: B18 = MIN B6: B18. Bằng cách này, một mảng các giá trị logic TRUE và FALSE được tạo trong bộ nhớ chương trình. Trong trường hợp của chúng ta, 3 phần tử của mảng sẽ chứa giá trị TRUE, vì giá trị nhỏ nhất của 8 chứa thêm 2 phần tử trùng lặp trong cột B6: B18.

Bước tiếp theo là xác định các dòng của phạm vi mà mỗi giá trị nhỏ nhất nằm ở vị trí nào. Chúng ta cần điều này vì việc xác định giá trị nhỏ nhất đầu tiên. Tác vụ này được thực hiện bằng cách sử dụng hàm LINE, nó điền vào các phần tử mảng trong bộ nhớ chương trình bằng số dòng trang tính. Nhưng trước tiên, số trên hàng đầu tiên của bảng bị trừ khỏi tất cả các số này - B5, tức là số 5. ​​Điều này được thực hiện bởi vì hàm INDEX hoạt động với các số bên trong bảng chứ không phải với các số trong Excel bảng tính. Đồng thời, hàm LINE chỉ có thể trả về số hàng của một trang tính. Để không bị chênh lệch, cần phải so sánh thứ tự các số dòng của trang tính và bảng bằng phép trừ hiệu số. Ví dụ: nếu bảng nằm trên hàng thứ 5 của trang tính, thì mỗi hàng của bảng sẽ ít hơn 5 hàng tương ứng của trang tính.

Sau khi tất cả các giá trị nhỏ nhất được chọn và tất cả các số hàng của bảng được so sánh, hàm MIN sẽ chọn số hàng nhỏ nhất. Cũng dòng này sẽ chứa số nhỏ nhất đầu tiên xuất hiện trong cột B6: B18. Dựa trên số dòng này, hàm INDEX sẽ chọn giá trị thích hợp từ bảng A6: A18. Do đó, công thức trả về giá trị này trong ô B3 là kết quả của phép tính.

Cách chọn giá trị có số lớn nhất trong Excel

Sau khi hiểu nguyên tắc của công thức, bây giờ bạn có thể dễ dàng sửa đổi và tùy chỉnh nó cho các điều kiện khác. Ví dụ: có thể thay đổi công thức để chọn giá trị lớn nhất đầu tiên trong Excel:


Nếu bạn cần thay đổi các điều kiện của công thức để bạn có thể chọn giá trị tối đa đầu tiên trong Excel, nhưng nhỏ hơn 70:

!}

Cách chọn giá trị nhỏ nhất đầu tiên khác 0 trong Excel:


Dễ dàng nhận thấy rằng các công thức này chỉ khác nhau bởi hàm MIN và MAX và các đối số của chúng.

Bây giờ không có gì giới hạn bạn. Khi bạn hiểu nguyên tắc hoạt động của các công thức trong một mảng, bạn có thể dễ dàng sửa đổi chúng cho nhiều điều kiện và nhanh chóng giải quyết nhiều vấn đề tính toán.

Bộ xử lý bảng tính này sẽ xử lý hầu hết tất cả các phép tính. Nó là lý tưởng cho việc ghi sổ kế toán. Có các công cụ đặc biệt để tính toán - công thức. Chúng có thể được áp dụng cho một phạm vi hoặc cho các ô riêng lẻ. Để tìm ra số lượng tối thiểu hoặc tối đa trong một nhóm ô, bạn không cần phải tự tìm kiếm chúng. Tốt hơn nên sử dụng các tùy chọn được cung cấp cho việc này. Nó cũng sẽ hữu ích để tìm ra cách tính giá trị trung bình trong Excel.

Điều này đặc biệt đúng trong các bảng có lượng dữ liệu lớn. Ví dụ: nếu trong một cột, giá cho các sản phẩm của trung tâm mua sắm được chỉ định. Và bạn cần tìm hiểu sản phẩm nào là rẻ nhất. Nếu bạn tìm kiếm nó một cách "thủ công", bạn sẽ mất rất nhiều thời gian. Nhưng trong Excel, nó có thể được thực hiện chỉ trong một vài cú nhấp chuột. Tiện ích này cũng tính toán trung bình cộng. Xét cho cùng, đây là hai phép toán đơn giản: cộng và chia.

Tối đa và tối thiểu

Đây là cách tìm giá trị lớn nhất trong Excel:

  1. Đặt con trỏ ô ở bất kỳ đâu.
  2. Chuyển đến menu Công thức.
  3. Nhấp vào Chèn chức năng.
  4. Chọn "MAX" từ danh sách. Hoặc viết từ này vào hộp Tìm kiếm và nhấp vào Tìm.
  5. Trong cửa sổ "Đối số", hãy nhập địa chỉ của dải ô, giá trị lớn nhất mà bạn muốn biết. Trong Excel, tên ô bao gồm một chữ cái và một số ("B1", "F15", "W34"). Và tên của phạm vi là ô đầu tiên và ô cuối cùng mà nó bao gồm.
  6. Thay vì một địa chỉ, bạn có thể viết một số số. Sau đó, hệ thống sẽ hiển thị hầu hết chúng.
  7. Bấm OK. Kết quả sẽ xuất hiện trong ô có con trỏ.

Bước tiếp theo là chỉ định phạm vi giá trị

Bây giờ sẽ dễ dàng hơn để tìm ra giá trị nhỏ nhất trong Excel. Thuật toán của các hành động là hoàn toàn giống nhau. Chỉ cần chọn MIN thay vì MAX.

Trung bình

Trung bình cộng được tính như sau: cộng tất cả các số từ tập hợp và chia cho số của chúng. Trong Excel, bạn có thể tính toán số tiền, tìm xem có bao nhiêu ô trên một dòng, v.v. Nhưng việc này quá phức tạp và tốn nhiều thời gian. Bạn sẽ phải sử dụng nhiều chức năng khác nhau. Hãy ghi nhớ thông tin. Hoặc thậm chí viết một cái gì đó ra một mảnh giấy. Nhưng thuật toán có thể được đơn giản hóa.

Đây là cách tìm giá trị trung bình trong Excel:

  1. Đặt con trỏ ô ở bất kỳ đâu trong bảng.
  2. Chuyển đến tab Công thức.
  3. Nhấp vào "Chèn chức năng".
  4. Chọn "AVERAGE".
  5. Nếu mục này không có trong danh sách, hãy mở mục này bằng tùy chọn "Tìm".
  6. Trong vùng Number1, hãy nhập địa chỉ của dải ô. Hoặc viết một số số trong các trường khác nhau "Number2", "Number3".
  7. Bấm OK. Giá trị mong muốn xuất hiện trong ô.

Vì vậy, bạn có thể thực hiện các phép tính không chỉ với các vị trí trong bảng mà còn với các tập hợp tùy ý. Về cơ bản, Excel là một máy tính tiên tiến.

Các phương pháp khác

Giá trị tối đa, tối thiểu và trung bình có thể được tìm thấy theo những cách khác.

  1. Tìm thanh chức năng có nhãn "Fx". Nó nằm phía trên khu vực làm việc chính của bàn.
  2. Đặt con trỏ vào bất kỳ ô nào.
  3. Nhập một đối số vào trường "Fx". Nó bắt đầu bằng một dấu bằng. Sau đó đến công thức và địa chỉ của phạm vi / ô.
  4. Bạn sẽ nhận được một cái gì đó như “= MAX (B8: B11)” (tối đa), “= MIN (F7: V11)” (tối thiểu), “= AVERAGE (D14: W15)” (trung bình).
  5. Bấm vào dấu kiểm bên cạnh trường chức năng. Hoặc chỉ cần nhấn Enter. Giá trị mong muốn xuất hiện trong ô đã chọn.
  6. Công thức có thể được sao chép trực tiếp vào chính ô đó. Hiệu quả sẽ giống nhau.

Công cụ Excel AutoFunctions sẽ giúp bạn tìm và tính toán.

  1. Đặt con trỏ vào một ô.
  2. Tìm nút có tên bắt đầu bằng "Tự động". Nó phụ thuộc vào tùy chọn mặc định được chọn trong Excel ("AutoSum", "Autonumber", "AutoShift", "Autoindex").
  3. Nhấp vào mũi tên màu đen bên dưới nó.
  4. Chọn MIN (tối thiểu), MAX (tối đa) hoặc AVERAGE (trung bình).
  5. Một công thức xuất hiện trong ô được đánh dấu. Nhấp vào bất kỳ ô nào khác - ô đó sẽ được thêm vào chức năng. Kéo một hộp xung quanh nó để bao phủ phạm vi. Hoặc nhấp vào lưới trong khi giữ phím Ctrl để chọn một phần tử tại một thời điểm.
  6. Nhấn Enter khi hoàn tất. Kết quả sẽ được hiển thị trong ô.

Trong Excel, việc tính giá trị trung bình rất dễ dàng. Không cần thêm và sau đó chia số tiền. Có một chức năng riêng cho việc này. Bạn cũng có thể tìm thấy giá trị tối thiểu và tối đa trong một tập hợp. Điều này dễ dàng hơn nhiều so với việc đếm bằng tay hoặc tìm kiếm các con số trong một bảng tính khổng lồ. Vì vậy, Excel được sử dụng phổ biến trong nhiều lĩnh vực hoạt động đòi hỏi độ chính xác: kinh doanh, kiểm toán, quản trị nhân sự, tài chính, thương mại, toán học, vật lý, thiên văn học, kinh tế, khoa học.

CÁC TRƯỜNG HỢP ĐẶC BIỆT

Trong những trường hợp đặc biệt, giải pháp có thể nhận được bằng cách liệt kê tất cả các kết hợp có thể có.

Chương trình (C #):

Công khai tĩnh int FactGen (int n) (int fact = new int; fact = 1; for (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 >tôi; j--) result [j] = kết quả; result [i] = newval; ) trả về kết quả; ) public static int SumAbs (int arr) (int sum = 0, pres = arr; foreach (giá trị int trong arr) (sum + = Math.Abs ​​(giá trị - trước); trước = giá trị;) return sum;) public static int MaxArr (int arr, bool detprn) (int i, j, sum, smax = -1, size = arr.Length; int perm, result = new int, fact = FactGen (size), sorted = new int, Empire = new int; Array.Copy (arr, đã sắp xếp, kích thước); Array.Sort (đã sắp xếp); for (i = 0; i< fact; i++) { if ((sum = SumAbs(perm = PermsGenerator(sorted, i, fact))) >smax) (smax = sum; result = perm;) if (detprn) (Console.Write ("\ nPermutation:"); foreach (int value in perm) Console.Write (value + ""); Console.Write (" Số tiền: (0) Số tiền tối đa: (1) ", sum, smax);)) Console.Write (" \ nLựa chọn nguồn: "); foreach (giá trị int trong arr) Console.Write (value + ""); Console.Write ("\ nLựa chọn đã sắp xếp:"); foreach (giá trị int trong đã sắp xếp) Console.Write (value + ""); Console.Write ("\ n Hoán vị tốt nhất:"); foreach (giá trị int trong kết quả) Console.Write (value + ""); Console.WriteLine ("\ nSố lượng tối đa: (0)", smax); Empire = đã sắp xếp; Empire = đã sắp xếp; Empire = đã sắp xếp; cho (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); } }

Các kết quả:

Mẫu ban đầu: 1 2 3 4 Mẫu đã sắp xếp: 1 2 3 4 Hoán vị tốt nhất: 2 4 1 3 Tổng lớn nhất: 7 Thuật toán heuristic: 2 4 1 3 Tính tổng: 7 Mẫu ban đầu: 1 2 3 4 5 Mẫu đã sắp xếp: 1 2 3 4 5 Hoán vị tốt nhất: 2 4 1 5 3 Tổng lớn nhất: 11 Thuật toán Heuristic: 2 4 1 5 3 Tính tổng: 11 Mẫu ban đầu: 26 10 21 4 27 5 Mẫu đã sắp xếp: 4 5 10 21 26 27 Hoán vị tốt nhất: 10 26 4 27 5 21 Tổng lớn nhất: 99 Thuật toán Heuristic: 10 26 4 27 5 21 Tổng: 99 Mẫu ban đầu: 34 3 32 16 28 27 26 Mẫu đã sắp xếp: 3 16 26 27 28 32 34 Hoán vị tốt nhất: 26 28 3 32 16 34 27 Tổng lớn nhất: 97 Thuật toán Heuristic: 26 28 3 34 16 32 27 Tính tổng: 97 Mẫu ban đầu: 27 3 34 38 18 29 31 39 Mẫu đã sắp xếp: 3 18 27 29 31 34 38 39 Hoán vị tốt nhất: 29 34 3 38 18 39 27 31 Tổng lớn nhất: 128 Thuật toán Heuristic: 29 34 3 39 18 38 27 31 Tính tổng: 128 Mẫu ban đầu: 40 27 4 9 32 35 41 39 2 Mẫu đã sắp xếp: 2 4 9 27 32 35 39 40 41 Hoán vị tốt nhất: 32 2 39 4 40 9 41 27 35 Tổng lớn nhất: 223 Thuật toán Heuristic: 27 35 2 41 4 40 9 39 32 Tính tổng: 221 Mẫu ban đầu: 41 35 45 27 34 33 18 24 16 25 Mẫu đã sắp xếp: 16 18 24 25 27 33 34 35 41 45 Hoán vị tốt nhất: 27 34 16 35 18 41 24 45 25 33 Tổng lớn nhất: 150 Thuật toán Heuristic: 27 34 16 45 18 41 24 35 25 33 Tính tổng: 150

Theo cách này:

  1. Đã tìm thấy sự kết hợp tốt hơn cho mảng ban đầu.
  2. Một ví dụ phản chứng cho thuật toán heuristic không được tìm thấy ngay lập tức.

QUYẾT ĐỊNH CHUNG (10.02.2018)

Cho phép
a = (a 0 = M 1, a 1 = M 2, ..., a n-2 = M n-1, a n-1 = M n) - dãy ban đầu,
b = (b 0, b 1, ..., b n-2, b n-1) - dãy giống nhau theo thứ tự tăng dần,
c = (c 0, c 1, ..., c n-2, c n-1) là dãy bắt buộc.

Chúng ta hãy xét riêng các trường hợp của n chẵn và lẻ.

Trường hợp n = 2k

S (a) = S q (a) - | a n-1 - a 0 |, trong đó
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 q (a) là một tổng đại số chứa mỗi phần tử gốc a i hai lần, và giá trị lớn nhất của nó là

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

Giá trị này đạt được trong hai biến thể của hoán vị:
1) c 2i h (tất cả các phần tử lớn nhất có chỉ số chẵn);
2) c 2i + 1 h (tất cả các phần tử lớn nhất đều có chỉ số lẻ).

Đồng thời, cực tiểu | a n-1 - a 0 | = b k - b k-1 đạt được bằng cách đặt một cặp phần tử trung vị vào các cạnh của dãy c.

Giá trị lớn nhất của tổng S là S max = 2∑ i = 0, ..., k-2 (b i + k - b i) + b k-1 - b k, hoặc

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

và đạt được trong trường hợp dãy c chứa các phần tử lớn nhất theo thứ tự bàn cờ và các phần tử trung vị b k-1 và b k nằm trên các cạnh của dãy.
Số các hoán vị như vậy để phân biệt từng cặp a i là 2 (k-1)! 2.

Trường hợp n = 2k + 1

Xét tương tự cho thấy giá trị lớn nhất của S bằng

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), hoặc

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

và đạt được trong trường hợp các phần tử có chỉ số lớn hơn k được so sánh với nhau, và trung vị và phần tử gần nó nhất nằm ở các cạnh của dãy.
Số lượng các hoán vị như vậy để phân biệt từng cặp a i không nhỏ hơn (k-1)! K! (nếu trung vị khác các lân cận gần nhất bằng cùng một giá trị thì số hoán vị nhiều hơn gấp đôi).

CHƯƠNG TRÌNH (C #):

Công khai tĩnh void T (văn bản chuỗi, đồng hồ bấm giờ) (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; for (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 = kết quả; for (j = newind; j> i; j--) result [j] = result; result [i] = newval; ) trả về kết quả; ) public static int SumAbs (int arr) (int sum = 0, pres = arr; foreach (int value in arr) (sum + = Math.Abs ​​(value - pres); pres = value;) return sum;) public static int CalcOptQuant (int n) (int k = (n - 1) / 2, k2 = Math.Max ​​(k-2, 0); int fact = 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) sum + = Math.Max ​​(brr - brr [k], brr [k] - brr); trả về tổng; ) public static int MaxArr (int arr, bool detprn) (int i, j, sum, smax = -1, size = arr.Length; int perm, result = new int, fact = FactGen (size), sorted = new int , Empire = new int; Bấm giờ sw = new Đồng hồ bấm giờ (); Console.WriteLine ("\ nSource fetch:"); foreach (int value in arr) Console.Write (value + ""); sw.Restart (); cho (i = 0; i< fact; i++) { perm = PermsGenerator(arr, i, fact); sum = SumAbs(perm); if (sum >smax) (smax = sum; result = perm;)) if (detprn) Console.Write ("\ nBảng hoán vị tốt nhất"); cho (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); } }

CÁC KẾT QUẢ:

Mẫu ban đầu: 0 1 2 3 4 5 Các hoán vị tốt nhất # 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 Mẫu đã sắp xếp: 0 1 2 3 4 5 Tính tổng cao nhất: 17 Hoán vị tốt nhất: 8 Phép tính Tổng lớn nhất: 17 Hoán vị tốt nhất, không nhỏ hơn: 8 Thời gian lặp = 00: 00: 00.01 Mẫu ban đầu: 5 1 3 5 7 9 Hoán vị tốt nhất # 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 Mẫu đã sắp xếp: 1 3 5 5 7 9 Dữ kiện Tổng cao nhất: 24 Hoán vị tốt nhất: 16 Tính tổng cao nhất: 24 Tốt nhất hoán vị, ít nhất: 8 Runtime = 00: 00: 00.01 Mẫu ban đầu: 0 1 2 3 4 Hoán vị tốt nhất # 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 Sắp xếp Mẫu này: 0 1 2 3 4 Dữ kiện Số lượng lớn nhất: 11 Hoán vị tốt nhất: 8 Phép tính Số tiền lớn nhất: 11 Hoán vị tốt nhất, không nhỏ hơn: 4 Thời gian thực hiện = 00: 00: 00.01 Mẫu ban đầu: 0 1 2 3 Hoán vị tốt nhất # 1 : 1 3 0 2 # 2: 2 0 3 1 Mẫu đã sắp xếp: 0 1 2 3 Dữ kiện Tổng cao nhất: 7 Hoán vị tốt nhất: 2 Phép tính Tổng cao nhất: 7 Hoán vị tốt nhất, không nhỏ hơn: 2 Thời gian chạy = 00: 00: 00.00 Mẫu ban đầu: 0 1 2 Các hoán vị tốt nhất # 1: 0 2 1 # 2: 1 0 2 # 3: 1 2 0 # 4: 2 0 1 Mẫu đã sắp xếp: 0 1 2 Dữ kiện Tổng cao nhất: 3 Hoán vị tốt nhất: 4 Tính tổng cao nhất: 3 Tốt nhất hoán vị, không nhỏ hơn: 2 Thời gian chạy = 00: 00: 00.01 Mẫu ban đầu: 25 51 87 Mẫu đã sắp xếp: 25 51 87 Dữ kiện Số tiền tối đa: 98 Hoán vị tốt nhất: 2 Tính toán Số lượng lớn nhất: 98 Hoán vị tốt nhất, không ít hơn: 2 Thời gian chạy = 00: 00: 00.00 Mẫu ban đầu: 78 10 34 64 Mẫu đã sắp xếp: 10 34 64 78 Dữ kiện Tổng lớn nhất: 166 Hoán vị tốt nhất: 2 Phép tính Tổng lớn nhất: 166 Hoán vị tốt nhất, không nhỏ hơn it: 2 Runtime = 00: 00: 00.00 Mẫu ban đầu: 23 26 93 16 45 Mẫu đã sắp xếp: 16 23 26 45 93 Dữ kiện Tổng lớn nhất: 195 Hoán vị tốt nhất: 4 Phép tính Tổng lớn nhất: 195 Hoán vị tốt nhất, không ít hơn: 4 Thời gian thực hiện = 00: 00: 00.00 Mẫu ban đầu: 85 12 11 13 90 88 Mẫu đã sắp xếp: 11 12 13 85 88 90 Dữ kiện Số tiền tối đa: 382 Hoán vị tốt nhất: 8 Tính toán Số tiền lớn nhất: 382 Hoán vị tốt nhất, không ít hơn: 8 Thời gian chạy = 00: 00 : 00,00 Mẫu ban đầu: 82 43 28 55 29 39 18 Mẫu đã sắp xếp: 18 28 29 39 43 55 82 Dữ kiện Số lượng lớn nhất: 206 Hoán vị tốt nhất: 24 Tính toán Số tiền lớn nhất: 206 Hoán vị tốt nhất, không nhỏ hơn: 24 Thời gian chạy = 00: 00:00. 00 Mẫu ban đầu: 64 20 43 89 47 94 52 71 Mẫu đã sắp xếp: 20 43 47 52 64 71 89 94 Dữ kiện Số lượng lớn nhất: 300 Hoán vị tốt nhất: 72 Phép tính Số tiền lớn nhất: 300 Hoán vị tốt nhất, không nhỏ hơn 72 Thời gian chạy = 00: 00: 00.02 Mẫu ban đầu: 45 53 81 17 76 97 26 50 51 Mẫu đã sắp xếp: 17 26 45 50 51 53 76 81 97 Dữ kiện Tổng cao nhất: 337 Hoán vị tốt nhất: 288 Phép tính Tổng cao nhất: 337 Hoán vị tốt nhất, không ít hơn: 288 Thời gian chạy = 00: 00: 00.23 Mẫu ban đầu: 55 51 36 12 82 63 89 58 14 22 Mẫu đã sắp xếp: 12 14 22 36 51 55 58 63 82 89 Dữ kiện Số lớn nhất: 420 Hoán vị tốt nhất: 1152 Tính tổng lớn nhất: 420 Hoán vị tốt nhất, không ít hơn: 1152 Thời gian chạy = 00: 00: 02.46 Mẫu ban đầu: 96 95 67 49 65 69 53 78 35 55 94 Mẫu đã sắp xếp: 35 49 53 55 65 67 69 78 94 95 96 Thực tế Tổng cao nhất: 348 Hoán vị tốt nhất: 11520 Tính cao nhất tổng: 348 Hoán vị tốt nhất, không ít hơn: 5760 Thời gian chạy = 00: 00: 29,21 Mẫu ban đầu: 50 43 39 64 59 18 81 16 44 12 15 77 Mẫu đã sắp xếp: 12 15 16 18 39 43 44 50 59 64 77 81 Dữ kiện Số tiền tối đa: 463 Hoán vị tốt nhất: 28800 Phép tính Số tiền lớn nhất: 463 Hoán vị tốt nhất, không nhỏ hơn: 28800 Thời gian chạy = 00: 06: 26,81

PHÂN TÍCH KẾT QUẢ

Trong tất cả các trường hợp được xem xét, thử nghiệm hoàn toàn xác nhận giải pháp chung được đề xuất.

Tạo tệp mới bằng cách nhấp vào nút Mới trên Thanh công cụ truy nhập nhanh. Đổi tên Trang tính 1 thành Phân tích Chi phí. Chúng tôi sẽ phát triển một bảng để phân tích Chi phí đầu tư.

Hình 23. Phân tích chi phí đầu tư

Bài tập: Tính chi phí cột bằng công thức. Đối với cột "Đơn giá" và "Chi phí", hãy sử dụng định dạng đơn vị tiền tệ.

Trong ô F12, tính tổng chi phí đầu tư. Điều này có thể được thực hiện theo 2 cách:

Phương pháp 1:

Kích hoạt ô F12;

Nhập công thức vào đó: = F5 + F6 + F7 + F8 + F9 + F10 + F11 và nhấn Enter.

2 Phương pháp sử dụng hàm:

Hàm trong MS Excel là một công thức trong đó các phép toán nhất định được thay thế bằng tên của các hàm. Ví dụ: để thêm nhiều giá trị, hãy sử dụng hàm SUM.

Hãy thay thế công thức thông thường trong ô F12 bằng công thức sử dụng SUM:

Bài tập: Xác định giá trị tối đa của chi phí đầu tư của bạn. Đối với điều này:

Kích hoạt ô mà bạn muốn lấy kết quả (F13);

Ở bên phải của nút Số lượng trong nhóm Chỉnh sửa trên tab Trang Chủ nhấp vào mũi tên với danh sách chức năng thả xuống và chọn chức năng Tối đa(chọn giá trị lớn nhất từ ​​phạm vi đã chọn);

Công thức = MAX (F5: F11) xuất hiện trong ô F13, nhưng F12 phải được loại trừ khỏi phạm vi này. Đặt con trỏ chuột dưới dạng dấu thập đậm màu trắng ở giữa ô đầu tiên của phạm vi (F5), mở rộng vùng chọn đến ô F11;

Nhấn Enter.

Bài tập: Xác định giá trị nhỏ nhất và trung bình của chi phí đầu tư.

Chức năng Tối thiểu (= MIN)- tiết lộ giá trị nhỏ nhất của phạm vi;

Chức năng Trung bình (= AVERAGE)- tính giá trị trung bình của phạm vi, tức là cộng tất cả các phần tử và chia cho số phần tử trong phạm vi cộng.

Chức năng "Nếu như"

Ban lãnh đạo của công ty, sau khi xem xét phân tích chi phí đầu tư, đã quyết định trong tháng này chỉ trả những vị trí đó, chi phí thấp hơn 45.000 rúp.

Hãy thêm cột "Thanh toán" trong bảng, trong đó cần phải chỉ ra:

Nếu chi phí là hơn 45.000 rúp. - "Hoãn";

Nếu chi phí ít hơn 45.000 rúp. - "Đang thanh toán".

Kích hoạt ô G5, mở tab Công thức, Nhấn nút Chèn chức năng.

Trong hộp thoại, chọn một danh mục trêu ghẹo não, trong danh sách các chức năng - NẾU NHƯ.

Hình 24. Hàm IF

Kéo giá trị trong ô G5 xuống cuối bảng (đến G11).

Sử dụng nhiều điều kiện khi áp dụng hàm "IF"

Chuyển đến trang thứ hai của cuốn sách của bạn và đổi tên nó là Lương. Nhập các chi tiết sau:

Hình 25. Một ví dụ về cách tính phí bảo hiểm cho doanh số bán hàng

Hàm IF bao gồm các phần tử sau: tên hàm, điều kiện, các giá trị nếu điều kiện là đúng, các giá trị nếu điều kiện là sai. Mục nhập hàm trong ô trông giống như sau:

If (điều kiện; giá trị nếu điều kiện đúng; giá trị nếu điều kiện sai)

Hãy xem xét một ví dụ khi có hai điều kiện: nếu doanh số bán hàng của một nhân viên lớn hơn 50.000 rúp, thì tiền thưởng sẽ là 10% doanh số bán hàng, nếu không là 5%.

Bản ghi này sẽ giống như thế này cho ví dụ của chúng tôi:

Hình 26: Ví dụ về cách tính phí bảo hiểm cho doanh số bán hàng với một điều kiện

Hãy xem xét một ví dụ thứ hai, trong đó tiền thưởng của nhân viên cho doanh số bán hàng sẽ được tính như sau:

Nếu một nhân viên bán được hàng hóa với số tiền lớn hơn hoặc bằng 90.000 rúp, tiền thưởng của anh ta sẽ là 10% doanh số bán hàng, nếu số lượng hàng hóa bán được nhiều hơn hoặc bằng 30.000 rúp, tiền thưởng sẽ là 5% khối lượng bán hàng, nếu số tiền dưới 30.000 rúp, tiền thưởng sẽ lên tới 3%.

Hình 27. Một ví dụ về cách tính phí bảo hiểm cho bán hàng có nhiều điều kiện

Trong trường hợp này, có một số điều kiện và bản ghi hàm sẽ giống như sau:

Định dạng có điều kiện

Định dạng có điều kiện cho phép bạn chỉ định các định dạng khác nhau cho một ô trong các điều kiện khác nhau. Ví dụ: lấp đầy các ô với doanh số hơn 30.000 rúp. nên có màu đỏ, ít hơn 30.000 rúp. - màu vàng.

Chọn dãy C2: C5;

Trong tab Trong nhà kiểu nhóm bấm vào nút Định dạng có điều kiện và chọn một đội Quy tắc chọn ô ... Quy tắc khác.

Đặt định dạng, nếu giá trị của các ô lớn hơn 30.000, bấm OK.

Hình 28. Định dạng có điều kiện

Thực hiện hành động tương tự và đặt định dạng cho các ô có giá trị nhỏ hơn 30.000 rúp.

Hãy thử các lệnh: Biểu đồ, Thanh màu và Bộ biểu tượng từ điểm "Định dạng có điều kiện".

Để loại bỏ định dạng đã được áp dụng trong định dạng có điều kiện, bạn phải nhấp vào nút Định dạng có điều kiện ... Xóa quy tắc.

Tính toán thanh toán khoản vay

Hãy tính số tiền thanh toán khoản vay bằng cách sử dụng hàm PMT.

Chuyển đến Trang tính 2 và đổi tên thành "Tín dụng". Nhập dữ liệu ban đầu cho phép tính. Xin lưu ý rằng trong ô B2 - số tiền lãi hàng năm của khoản vay được hiển thị. Ô B5 chứa công thức.

Hình 29. Tính toán thanh toán khoản vay

Để tính khoản thanh toán khoản vay hàng tháng, bạn cần:

    Kích hoạt ô B6;

    Trong tab Công thứcấn nút Chèn chức năng... Chọn trong danh mục Toàn bộ danh sách theo thứ tự bảng chữ cái và bên dưới tìm chức năng PMT.

Hình 30. Chèn hàm PMT

Trong lĩnh vực Đấu thầu chỉ định tỷ lệ hàng tháng, tức là B2 / B4;

Trong lĩnh vực Nper- cần phải chỉ ra tổng số giai đoạn, tức là AT 5;

Trong lĩnh vực Ps (Giá trị hiện tại)- cần phải chỉ ra số tiền cho vay được yêu cầu;

Bs - số dư tiền mặt, cần phải đạt được sau lần thanh toán cuối cùng, trong trường hợp của chúng tôi, nó là 0;

Một loại- 0 - các khoản thanh toán cuối kỳ, 1 - các khoản thanh toán đầu kỳ.

Kết quả bạn nhận được phải có dấu trừ, bởi vì đây là các khoản thanh toán, không phải nhận tiền mặt.

Địa chỉ tuyệt đối và tương đối

Chuyển đến Trang 3 trong sách và đặt tên cho nó Sự tiêu thụ nước... Nhập dữ liệu đọc đồng hồ bằng cách xây dựng một bảng:

Hình 31. Ví dụ về bảng

Chú ý! Giá trị của m3 nước lạnh và nóng phải được đặt trong các ô tách biệt với văn bản, vì chúng sẽ được sử dụng trong các công thức để tính số tiền phải trả.

Sự tiêu thụ nướcđược tính bằng chênh lệch giữa chỉ số đồng hồ của tháng hiện tại và tháng trước đó:

Kích hoạt D9, nhập công thức: = B9-B8 và nhấn Enter.

Sử dụng điểm tự động làm đầy để tính lượng nước lạnh tiêu thụ cho các tháng còn lại.

Tính toán theo cách tương tự Tiêu thụ nước nóng.

Số tiền phải trảđối với nước lạnh trong tháng 1 được tính bằng tích của lượng nước tiêu thụ theo chi phí của m 3. Công thức cho ví dụ của chúng tôi:

    Kích hoạt ô F9;

    Nhập công thức: = D9 * E4 và nhấn Enter%

    Hãy thử kéo dài công thức bằng cách sử dụng điểm tự động hoàn thành:

Quay lại ô F9, đưa chuột lên góc dưới bên phải của ô, bắt con trỏ chuột có dạng chữ thập đen, nhấn giữ chuột trái, kéo công thức về cuối bảng.

Hình 32. Sự cần thiết phải sử dụng địa chỉ tuyệt đối

Đảm bảo tính năng tự động hoàn tất không hoạt động, hãy xem lý do:

Kích hoạt ô F9, công thức sẽ xuất hiện trên thanh công thức: = D9 * E4;

Kích hoạt ô F10. Excel, sử dụng tính năng tự động điền, đã thay đổi công thức và bây giờ tính giá trị của ô F10 là = D10 * E5. Có nghĩa là, tất cả các ô được sử dụng trong công thức khi công thức được sao chép bằng cách tự động điền xuống cũng được chuyển xuống. Trong trường hợp của chúng tôi, việc di chuyển xuống cột D là cần thiết, bởi vì Đối với mỗi tháng, có một giá trị tiêu thụ nước khác nhau, nhưng việc di chuyển dọc theo cột E là không cần thiết, bởi vì bạn cần nhân với E4.

Giải pháp:

    Quay lại ô F9, nhìn vào thanh công thức: = D9 * E4.

    Trong công thức, bạn cần tìm một ô không được thay đổi khi sao chép. Đây là E4.

    Trong thanh công thức, đặt con trỏ vào công thức giữa E và 4. Và sau đó nhấn phím F4 trên bàn phím, công thức sẽ có dạng = D * $ E $ 4. Các dấu $ cho Excel có nghĩa là cố định ô này hoặc địa chỉ tuyệt đối, khi bạn sao chép công thức này với một điểm tự động hoàn thành, ô này sẽ không thay đổi.

    Nhấn Enter, quay lại ô F9 và kéo điểm tự động hoàn thành xuống. Chọn ô F10 - thông báo công thức.

Bài tập: Điền vào cột Số tiền phải trả cho GW sử dụng địa chỉ tuyệt đối và cột Tổng số tiền phải trả- là tổng trên các cột F và G.

Lưu tệp trong thư mục của bạn dưới tên "Chức năng".

Tìm giá trị lớn nhất / nhỏ nhất là một nhiệm vụ đơn giản, nhưng nó sẽ trở nên phức tạp hơn một chút nếu không phải tìm MAX / MIN trong số tất cả các giá trị của phạm vi mà chỉ trong số những giá trị thỏa mãn một điều kiện nhất định.

Giả sử bạn có một bảng với hai cột: văn bản và số.

Để thuận tiện cho việc hiểu các công thức, hãy tạo hai cho mỗi cột: Chữ (MỘT 6: MỘT 30 ) và Con số (B6: B30 ). (xem tệp ví dụ).

Hãy xem xét một số nhiệm vụ:

MỘT. Tìm giá trị lớn nhất trong các số đó ứng với giá trị Văn bản 1(chúng tôi nhập tiêu chí vào ô E6 ).
Những thứ kia. chúng tôi sẽ tìm kiếm giá trị lớn nhất không nằm trong số tất cả các giá trị của cột Giá trị kiểu số, nhưng chỉ trong số những người trong cùng một hàng trong cột MỘT giá trị văn bản là Văn bản 1... Chúng tôi sẽ viết (đừng quên nhấn CTRL + SHIFT + ENTER):
= LARGE (IF (A6: A30 = E6, B6: B30, ""), 1)

Hoặc với Dải ô được đặt tên:

=LARGE (IF (Text = E6; Numbers; ""); 1)

Một phần của công thức Text = E6, sẽ trả về (TRUE: FALSE: FALSE: FALSE: TRUE: FALSE: FALSE: FALSE: TRUE: FALSE: FALSE: FALSE: TRUE: FALSE: FALSE: FALSE: TRUE: FALSE: FALSE: FALSE FALSE: FALSE: FALSE: FALSE) (để xem kết quả, đánh dấu phần này của công thức trong và nhấn phím). TRUE khớp với các hàng có Giá trị văn bản chứa đựng ý nghĩa Văn bản 1.

Một phần của công thức IF (Văn bản = E6; Số; ""), sẽ trả về (10: "": "": "": - 66: "": "": "": -37: "": "": "": - 5: "": "": "" : 4: "": "": "": 8: "": "": "": ""), trong đó TRUE được thay thế bằng một giá trị từ cột số và FALSE được thay bằng một giá trị. Thay vì "" người ta có thể sử dụng bất kỳ ký tự văn bản nào (chữ cái) hoặc bỏ qua hoàn toàn (trong trường hợp này, mảng sẽ trông như thế này (10: FALSE: FALSE: FALSE: -66: FALSE: FALSE: FALSE: -37: FALSE: FALSE: FALSE): -5: FALSE: FALSE: FALSE: 4: FALSE: FALSE: FALSE: 8: FALSE: FALSE: FALSE: FALSE)).

Hàm LARGE () với tham số thứ hai = 1 được sử dụng thay vì hàm MAX (), bởi vì nếu không có hàng nào thỏa mãn tiêu chí, thì công thức = MAX (("": "": "": "": "": "": "": "": "": "": "": "": "": "": "": "" : "": "": "": "": "": "": "": "": "")) sẽ trả về 0 !, có thể gây nhầm lẫn. Trong trường hợp này, hàm LARGE () sẽ trả về lỗi #NUM!

B. Chúng tôi sẽ chỉ tìm giá trị lớn nhất trong số các số thuộc một phạm vi giá trị nhất định, ví dụ: từ 5 đến 50. Các đường biên có thể được nhập vào các ô tôi 14 J14 ... Giải pháp là:
=LARGE (IF ((Số> = I14) * (Số<=J14);Числа);1)

V Tìm với công thức mảng giá trị tối thiểu trong số những giá trị phù hợp với giá trị Text3:
=MIN (IF ((Text = E7); Numbers; ""); 1)

Những thứ kia. nếu cột MỘT giá trị = Text3, thì giá trị trong cột được tính đến B nếu giá trị<> Text3, thì giá trị lớn nhất + 1 được tính đến, tức là rõ ràng là KHÔNG tối thiểu. Hơn nữa, hàm MIN () trả về giá trị nhỏ nhất từ ​​mảng kết quả và rõ ràng là không có giá trị nào, trong đó<> Văn bản 3, sẽ không làm sai lệch kết quả (xem vấn đề A).

Một giải pháp khác sử dụng công thức DMIN (), không công thức mảng.
= DMIN (A5: B30; B5; I8: I9)

G. Hãy tìm giá trị nhỏ nhất, trong số những giá trị lớn hơn:
= DMIN (A5: B30; B5; I10: I11)
ở đâu trong phạm vi I10: I11 chứa tiêu chí = B6> AVERAGE (Số)

D. Hãy tìm modulo giá trị lớn nhất. Từ hình trên, bạn có thể thấy rằng nó là -99. Để làm điều này, hãy sử dụng công thức mảng:

IF (MAX (ABS (Số)) = MAX (Số); MAX (Số); - MAX (ABS (Số)))

E. Tìm số dương nhỏ nhất:

=SMALL (Numbers; COUNTIF (Numbers; "<=0")+1) - công thức thông thường!

=NHỎ (IF (Numbers> 0; Numbers); 1) - công thức mảng.

KHUYÊN BẢO:

Tất cả các tác vụ trên có thể được giải quyết mà không cần sử dụng hàm DMIN (). Để thực hiện việc này, bạn sẽ cần tạo một cột bổ sung, cột này sẽ chỉ hiển thị những giá trị đáp ứng tiêu chí. Sau đó, trong số các giá trị đã chọn bằng cách sử dụng hàm MAX () hoặc MIN (), hãy xác định tương ứng, giá trị lớn nhất hoặc nhỏ nhất (xem tệp ví dụ Trang tính không có công thức mảng).

Nhiều điều kiện

Cách tiếp cận trên có thể được mở rộng cho các trường hợp cần tìm giá trị tối đa hoặc tối thiểu cho một số điều kiện văn bản.

Trong trường hợp này, bạn sẽ phải viết một công thức mảng:

=NHỎ (IF (($ A $ 6: $ A $ 16 = E6) * ($ B $ 6: $ B $ 16 = F6); $ C $ 6: $ C $ 16; ""); 1)

Tệp ví dụ được cấu hình để rõ ràng. Ngoài ra, được sử dụng để chọn tiêu chí (xem các ô màu vàng).

Tương tự, bạn có thể tùy chỉnh các công thức để tìm giá trị nhỏ nhất cho các hàng nằm trong một phạm vi cụ thể.