Chỉ mục hàng nghịch đảo trong một phạm vi dưới dạng một biến trong công thức


0

Tôi có một bảng các mục cho mỗi ngày. Ô B (n) nên chứa tổng các phép tính trung gian cho các ngày trước (n1 - nn) trong đó một trong các đối số là một delta trong số ngày giữa n và nx.

Ví dụ, bảng đã cho

Day  A  B
1    3  0
2    5  3
3    7  11
4    8  26
5    9  49

các giá trị cho ngày n = 4 và n = 5 được tính như sau:

B4 = A1*3 + A2*2 + A3*1 + A4*0
B5 = A1*4 + A2*3 + A3*2 + A4*1 + A5*0

Trường hợp số nhân ở phía bên phải là đồng bằng trong những ngày giữa n và nx. Tôi tưởng tượng đây là một vị trí nghịch đảo trong một phạm vi.

ipos(A2,A1:A5)=3

Có lẽ một cái gì đó như

B(n) = SUM(A1:An * ipos())

Bất kỳ ý tưởng làm thế nào để viết một công thức cho điều này? Cảm ơn.

CHỈNH SỬA: Cảm ơn câu trả lời. Có lẽ tôi đã không mô tả vấn đề đầy đủ. Trên thực tế, tôi đang cố gắng tính toán nồng độ tối đa của thuốc được quản lý mỗi ngày, với liều lượng cho mỗi ngày và thời gian bán hủy của thuốc.

Day Dosage Peak
1   2,50   2,50
2   3,17   5,67
3   4,00   9,67
4   4,00   13,67
5   5,00   17,906

thời gian bán hủy (giờ):

hl = 80

số nửa đời đã trôi qua:

he(days_ago) = days_ago * 24 / 80

số lượng còn lại sau khi anh ta nửa sống:

q_n(dosage, he(days_ago)) = MIN(1; 1 / MAX(1; he(days_ago))^2) * dosage

Và cuối cùng, tổng nồng độ cao nhất cho ngày n:

q(n) = q_1(dosage_1, he(n-1)) + q_2(dosage_2, he(n-2)) + .. q_n(dosage_n, he(0))

Ví dụ: ngày n = 5:

q(5) = q_1(2,50, he(4)) + q_2(3,17, he(3)) + q_3(4,00, he(2)) + q_4(4,00, he(1)) + q_5(5,00, he(0))

q(5) = q_1(2,50, 1.2) + q_2(3,17, 0.9) + q_3(4,00, 0.6) + q_4(4,00, 0.3) + q_5(5,00, 0)

q(5) = MIN(1; 1 / MAX(1; 1.2)^2) * 2,50 + MIN(1; 1 / MAX(1; 0.9)^2) * 3,17 

    + MIN(1; 1 / MAX(1; 0.6)^2) * 4,00 + MIN(1; 1 / MAX(1; 0.3)^2) * 4,00 

    + MIN(1; 1 / MAX(1; 0)^2) * 5,00

q(5) = 0.6944 * 2,50 + 1 * 3,17 + 1 * 4,00 + 1 * 4,00 + 1 * 5,00
q(5) = 17.906

Câu trả lời:


4

Hãy thử sức mạnh của tài liệu tham khảo hỗn hợp.

= IF (ISNUMBER (C1), C1 + SUM ($ B $ 1: B1), 0)

Sao chép xuống.

enter image description here


.......... Cách tiếp cận đẹp! .................
Gary's Student

1

Đây là chức năng do người dùng Visual Basic xác định (UDF) ;

Public Function iSum(rng As Range) As Long
    Dim K As Long
    K = rng.Count - 1

    For Each r In rng
        iSum = iSum + K * r
        K = K - 1
    Next r
End Function

enter image description here

Có lẽ có thể làm điều này với TÓM TẮT () , nhưng tôi không thể tìm ra cách làm bội số.


0
  1. Làm nổi bật các ô của bạn bao gồm các tiêu đề cột
  2. Chèn bảng (kiểm tra xem bạn có một hàng tiêu đề)
  3. Thay đổi tên bảng của bạn thành "MyTable" hoặc một cái gì đó. (Trong khi lựa chọn của bạn nằm trong bảng, tên bảng phải ở phía bên trái của dải băng Thiết kế Công cụ Bảng.)
  4. Đối với mỗi ô trong B, thay đổi công thức thành =IF(ROW()-ROW(MyTable[#Headers])=1,0,OFFSET([@B],-1,0)+SUM(OFFSET(MyTable[[#Headers],[A]],1,0,ROW()-ROW(MyTable[#Headers])-1)))

Chỉnh sửa: Tôi nên giải thích công thức này. Dịch sang tiếng Anh nó nói ...

  • Nếu tôi là hàng dữ liệu đầu tiên trong bảng thì chỉ cần trả về 0
  • Nếu không, trả lại ô phía trên tôi cộng với tổng các giá trị trong A ở trên tôi.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.