Tìm giá trị nhỏ nhất liên tục trong Google Sheets

Bạn đã bao giờ muốn tìm giá trị nhỏ nhất liên tục, còn được gọi là giá trị tối thiểu tích lũy, trong Google Sheets không? Hãy cùng tìm hiểu cách sử dụng các công thức dạng mảng hoặc không dạng mảng để tính toán giá trị tối thiểu tích lũy trong Google Sheets.

Chúng ta có thể sử dụng các công thức không dạng mảng như MIN và DMIN hoặc công thức mảng SCAN mới để tính toán giá trị tối thiểu tích lũy trong Google Sheets. Các công thức này rất hữu ích đối với những người đầu tư chứng khoán.

Ví dụ: Tôi có giá cổ phiếu của một công ty sản xuất ô tô trong suốt cả ngày trong một mảng (B2:B11) trong Google Sheets. Các giá trị tối thiểu tích lũy nằm trong C2:C11 và khoảng cách giữa giá trị tối thiểu tích lũy và giá cổ phiếu tại mỗi điểm nằm trong D2:D11.

Công thức sử dụng trong ô C2 và D2 là gì?

Tìm giá trị nhỏ nhất liên tục trong Google Sheets

Hãy cùng khám phá nhé!

Tìm giá trị nhỏ nhất liên tục bằng công thức không dạng mảng MIN

Trong ô C2, bạn có thể sử dụng công thức MIN sau đây và kéo để điền xuống:

=min($B$2:B2)

Dưới đây là mã cho ô D2:

=B2-C2

Đây cũng là một công thức kéo xuống.

Công thức mảng DMIN để tìm giá trị nhỏ nhất liên tục trong Google Sheets – Cũ

Chúng ta có một vector 1×10 chứa giá cổ phiếu suốt cả ngày trong khoảng từ B2 đến B11.

Bạn có thể dễ dàng tìm giá cổ phiếu nhỏ nhất bằng công thức DMIN sau đây:

=dmin(B1:B11,1,{if(,,);if(,,)})

Điều này tương đương với việc sử dụng =min(B2:B11).

Lưu ý: Để biết cách sử dụng {if(,,);if(,,)}, hãy đọc bài viết Hai cách chỉ định ô trống trong Công thức Google Sheets.

Vậy làm thế nào chúng ta sử dụng DMIN để tìm giá trị nhỏ nhất liên tục trong Google Sheets?

Hãy theo dõi công thức DMIN từng bước để tìm hiểu nhanh chóng.

Cách tìm giá trị nhỏ nhất tích lũy trong Google Sheets

Chúng ta có dữ liệu trong một dải cột duy nhất (Matrix 10×1) từ B2:B11 (10 dòng và 1 cột).

Chúng ta sẽ chuyển đổi nó thành một ma trận 10×10 (10 dòng x 10 cột) để tìm giá trị nhỏ nhất của mỗi cột và xuất nó theo chiều dọc.

Do đó, có hai bước:

  1. Chuyển đổi dữ liệu 10×1 thành dữ liệu 10×10.
  2. Áp dụng DMIN cho mỗi cột.

Bước 1: Chuyển đổi dữ liệu

Bạn có thể sử dụng công thức mẫu 1-12-123-1234 của tôi để chuyển đổi dữ liệu.

Công thức trong ô E2:

=ArrayFormula(TRANSPOSE(if(sequence(10,10)/sequence(10,10)+sequence(1,10,row(A2)-1)<=row(A2:A11),transpose(B2:B11),)))

Chúng ta có thể cần sửa đổi ma trận 10×10 này.

Chúng ta cần thêm một hàng nữa ở đầu, nó sẽ hoạt động như nhãn trường trong DMIN.

Điều này rất cần thiết vì DMIN là một chức năng cơ sở dữ liệu. Bất kỳ giá trị nào cũng OK để sử dụng làm nhãn trường.

Vì vậy, chúng ta sẽ chuyển đổi giá cổ phiếu trong B2:B11 và sử dụng chúng làm nhãn trường.

Công thức trong ô E1 (xóa công thức E2):

=ArrayFormula(transpose({B2:B11,if(sequence(10,10)/sequence(10,10)+sequence(1,10,row(A2)-1)<=row(A2:A11),transpose(B2:B11),)}))

Bây giờ, chúng ta có thể sử dụng công thức mảng DMIN trong ô C2 để tìm giá trị nhỏ nhất liên tục.

Bước 2: Giá trị nhỏ nhất liên tục sử dụng công thức mảng DMIN

Công thức mảng C2:

=ArrayFormula(DMIN(E1:N11,sequence(rows(B2:B11),1),{if(,,);if(,,)}))

Phần sequence trả về các số từ 1 đến 10, chính là các ID trường (có mười cột trong cơ sở dữ liệu của chúng ta).

Cuối cùng, hãy thay thế E1:N11 trong công thức trên bằng công thức mẫu 1-12-123-1234 tương ứng trong ô E1.

Đó là công thức tối thiểu tích lũy cuối cùng của chúng ta trong Google Sheets.

=ArrayFormula(DMIN(transpose({B2:B11,if(sequence(10,10)/sequence(10,10)+sequence(1,10,row(A2)-1)<=row(A2:A11),transpose(B2:B11))}),sequence(rows(B2:B11),1),{if(,,);if(,,)}))

Trong công thức trên, các khoảng là đóng (hữu hạn). Để biến chúng thành mở (vô hạn), hãy thực hiện các sửa đổi như sau.

Dải đóng Dải mở

Tôi đã chỉnh sửa công thức và đặt nó trong bảng mẫu của tôi ở dưới đây.

Công thức mảng SCAN để tìm giá trị nhỏ nhất liên tục trong Google Sheets – Mới!

Hàm SCAN mới là giải pháp mảng tốt nhất để lấy giá trị nhỏ nhất liên tục trong Google Sheets.

Thường chúng ta sử dụng nó cho tổng tích lũy khi nó có tham số tích lũy (giá trị ban đầu) và di chuyển từng dòng trong dải (mảng hoặc dải).

Cú pháp: SCAN(giá trị ban đầu, mảng hoặc dải, hàm lambda)

Trước khi sử dụng SCAN cho mục đích trên, chúng ta phải biết giá trị nhỏ nhất tích lũy (Cummin).

Cummin là sự so sánh giá trị hiện tại với giá trị trước đó. Nó trả về giá trị nhỏ hơn.

Công thức mảng Cummin (C2):

=scan(B2,B2:B,lambda(a,v,if(a<=v,a,v)))

Cách làm việc của công thức này:

Giá trị ban đầu trong bộ chứa (a) là giá trị đầu tiên trong chuỗi (mảng hoặc dải).

Ở dòng đầu tiên, công thức IF kiểm tra xem giá trị ban đầu (a) <= giá trị đầu tiên trong mảng hoặc dải (v) và trả về cùng một giá trị vì cả hai giá trị đều giống nhau.

Ở dòng thứ hai, công thức kiểm tra a <= giá trị thứ hai trong mảng hoặc dải (v) và trả về giá trị nhỏ nhất. Đó là giá trị mới trong bộ chứa.

Các kiểm tra logic a <= giá trị hàng thứ n tiếp tục trong mỗi hàng trong chuỗi (mảng hoặc dải).

Đó là công thức tối thiểu tích lũy cuối cùng của chúng ta trong Google Sheets.

Bạn cũng có thể sử dụng công thức mảng để tìm hiểu khoảng cách giữa giá trị tối thiểu tích lũy và giá cổ phiếu tại mỗi điểm.

Bạn có thể làm điều đó một cách dễ dàng bằng cách làm trống ô D2:D và nhập công thức =ArrayFormula(if(len(B2:B),B2:B-C2:C,)) vào ô D2.

Liên quan: Tìm giá trị nhỏ nhất theo hàng sử dụng DMIN trong Google Sheets.

Vậy là xong rồi. Cảm ơn bạn đã ở lại. Chúc bạn thật vui!

Related posts