Tổng các ô được gọi bằng số hàng & cột được lấy từ các ô khác nhau mà không sử dụng VBA


2

Vấn đề của tôi khá đơn giản nhưng mô tả nó hơi phức tạp.

Tôi có bốn ô chứa bốn số nguyên, biểu thị số hàng và số cột của hai ô. Ví dụ

     A    B
1    54   23
2    154  123

Vì vậy, chúng tôi có hai tế bào:

  • Ô số 1: hàng 54, cột 23 và
  • Ô số 2 hàng 154, cột 123.

Tôi muốn tổng hợp nội dung của tất cả các ô giữa Ô số 1 và Ô số 2. Tất nhiên, tôi muốn tham chiếu đến các ô A1, A2, B1, B2 chứa các giá trị liên quan, không phải các giá trị thực tế. Nói, tôi muốn đặt số tiền này trong ô C3.

Trong VBA, nó sẽ đơn giản (mặc dù dài):

Range("C3").Cells = WorksheetFunction.Sum( _
    Range(Cells(Cells(1,1),Cells(1,2)), _
        Cells(Cells(2,1),Cells(2,2))))

Làm thế nào để làm điều đó mà không có VBA?

Tôi đã thử một cái gì đó như =SUM(ADDRESS(A1,B1),ADDRESS(A2,B2)). Vấn đề của tôi là, sử dụng ADDRESS () trả về văn bản. Nếu tôi đặt văn bản này trong SUM (), nó sẽ trả về lỗi.

Câu trả lời:


2

[Đã chỉnh sửa - Ban đầu tôi đọc sai câu hỏi]

Một cách để làm điều này là sử dụng OFFSETchức năng để xác định phạm vi bạn muốn.

=SUM(OFFSET(A1,A1-1,B1-1,A2-A1+1,B2-B1+1))

OFFSET(A1,A1-1,B1-1)đại diện cho một phạm vi ô có số hàng và số cột là các giá trị trong A1 và A2. Hai tham số cuối cùng ( A2-A1+1B2-B1+1) là số lượng hàng và cột trong phạm vi mới.


Đơn giản hơn nhiều so với của tôi. - Sử dụng cái này
B540Glenn

Hoàn hảo và đơn giản! Tôi cần xem lại hàm OFFSET. Xin lỗi các bạn, tôi không thể nâng cấp bài viết của bạn (danh tiếng quá thấp) Blackwood & @ B540Glenn
vpprof

2

Gián tiếp và Địa chỉ rất dễ sử dụng INDEX:

=SUM(INDEX(A:AAA,A1,B1):INDEX(A:AAA,A2,B2))

0

Nó không đẹp mua nó dường như để làm việc.

=SUM(INDIRECT(ADDRESS(ROW(INDIRECT("R"&A1&"C"&B1,FALSE)),COLUMN(INDIRECT("R"&A1&"C"&B1,FALSE)))):INDIRECT(ADDRESS(ROW(INDIRECT("R"&A2&"C"&B2,FALSE)),COLUMN(INDIRECT("R"&A2&"C"&B2,FALSE)))))

Nó chuyển đổi nội dung ô thành tham chiếu kiểu R1C1 (nghĩa là R54C23). Từ đó, nó chuyển đổi nó thành một tham chiếu cố định (nghĩa là $W$54). Sau đó, nó sử dụng như là gián tiếp để cắm vào SUM()chức năng.

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.