Tạo một macro để trung bình phân đoạn dữ liệu trong một cột nhất định [đã đóng]


0

Tôi muốn tạo một macro tính trung bình các giá trị của mỗi 12 mục trong một cột trong bảng tính Excel, ví dụ: A1- A12sau đó A13- A24v.v. và đặt kết quả vào các ô C12, C24v.v.

Ảnh chụp màn hình của bảng tính

Tôi không chắc bắt đầu như thế nào; bạn có thể vui lòng tư vấn?


3
Superuser không phải là một dịch vụ viết mã. Nếu bạn có thể chỉnh sửa câu hỏi của bạn, thêm những gì bạn đã cố gắng cho đến nay, chúng tôi sẽ được hạnh phúc để cung cấp cho bạn một bàn tay với nó
cybernetic.nomad

3
Tại sao bạn cần một macro cho điều đó? Nhập công thức Trung bình vào ô C12, chọn A1-A12. Sau đó chọn C1 đến C12 và kéo xuống
núm

Bạn không cần sử dụng macro để giải quyết vấn đề này; nhưng nếu bạn thực sự muốn viết VBA cho Excel và bạn không biết bắt đầu từ đâu, hãy xem Làm cách nào để thêm VBA trong MS Office?
Scott

Câu trả lời:


5

Bạn không cần mã cho điều đó. Nhập công thức Trung bình vào ô C12 =AVERAGE(A1:A12). Sau đó chọn C1 đến C12 và kéo xuống núm điều khiển điền.

Chỉnh sửa để làm rõ

Tay cầm điền sẽ sao chép phạm vi đã chọn xuống và nó sẽ giữ lại mẫu của phạm vi đã chọn. Trong trường hợp này, 11 ô đầu tiên của phạm vi đã chọn trống và chỉ có ô thứ 12 chứa công thức. Nếu C1 đến C12 được chọn và tay cầm điền được kéo xuống, 11 ô tiếp theo sẽ để trống và ô C24 sẽ có công thức. Kéo xuống thêm và nó sẽ là 11 ô trống khác cho đến khi ô C36 có công thức.

Đó là mô hình.


#Teylyn ,, đối với tôi bước 2 Then select C1 to C12 and drag down the fill handletạo ra một ô trống.
Rajesh S

@RajeshS bạn đã kéo tay cầm điền xuống bao xa? Nếu bạn chọn C1 đến C12 và kéo núm điều khiển điền xuống, công thức từ C12 sẽ xuất hiện lại ở hàng 24, 38, 48, v.v., với các tham chiếu chính xác đến 12 ô trong các hàng ngay phía trên. Các ô trong hàng 13 đến 23, 25 đến 35, 37 đến 47, v.v., sẽ trống vì không có công thức nào được sao chép vào các ô này với thao tác kéo xuống xử lý điền .
teylyn

@RajeshS Tôi đã thêm một số làm rõ cho câu trả lời của tôi.
teylyn

Cảm ơn bạn đã chỉnh sửa và woah thực sự gọn gàng. Tôi không biết bạn có thể làm điều đó. Rất thông minh!!
BruceWayne

2

Sử dụng trang này làm điểm bắt đầu, bạn có thể sử dụng công thức MOD()để lấy trung bình của mình.

Bắt đầu từ C12, đặt công thức này và kéo xuống:

=IF(MOD(ROW(),12)=0,AVERAGE(OFFSET($A1,(ROW()-ROW($C12))*12,,12,)),"")

Chỉnh sửa: Holy cow ở trên là quá mức cần thiết. Sử dụng cái này thay thế:

=IF(MOD(ROW(),12)=0,AVERAGE(A1:A12),"")

Nếu bạn đặt công thức trong C12, thì hàm 'mod () `là không cần thiết, phải không? Xem câu trả lời của teylyn.
Zonker.in.Geneva

@ Zonker.in.Geneva cho hàng đó có không cần thiết. Nhưng nếu OP muốn mỗi hàng thứ 12, họ có thể kéo nó xuống. Sẽ không có trung bình trong mỗi ô từ C12 trở xuống, o ly mỗi hàng thứ 12. Câu trả lời của Teylyn sẽ điền trung bình vào C12, C13, ..., C24, C25, v.v.
BruceWayne

không, câu trả lời của cô ấy sẽ không làm điều đó Nếu bạn chọn 12 ô, chỉ có ô cuối cùng chứa công thức và kéo núm điều khiển điền xuống, Excel sẽ tiếp tục mẫu, tức là, 11 ô trống, 1 ô có công thức, 11 ô trống, v.v.
Zonker.in .Geneva

@ Zonker.in.Geneva - Ohhh, bây giờ tôi hiểu ý của cô ấy. Điều đó khá gọn gàng!
BruceWayne

-2

Một vài dòng này có thể giúp bạn tạo MACRO, để lấy trung bình cho mỗi 12 hàng.

Lưu ý, Để lấy Trung bình cho 12 Hàng đầu tiên, hãy chọn bất kỳ ô nào của Hàng 1 như B1, C1 hoặc D1 và Chạy MAcro này, sau đó chỉ cần điền vào Ô xuống để lấy Trung bình của 12 Hàng khác.

Sub Average()
ActiveCell.Formula = "=AVERAGE(OFFSET($A$1, (ROW() - ROW($A$1)) * 12, 0, 12, 1))"
End Sub

Hoặc, bạn cũng có thể sử dụng công thức này làm giải pháp Non VBA .

C2 =AVERAGE(OFFSET($A$2,(ROW()-ROW($C$2))*12,,12,))

Đã chỉnh sửa: Cả hai giải pháp đều có cách tiếp cận thông minh trong đó các hàng để lấy Trung bình có thể chỉnh sửa.

Ví dụ, nếu Average of every 16 rowsđược yêu cầu phải được tính toán sau đó cho giải pháp Non VBA*12,,12, nên được thay thế bằng*16,,16, Tương tự như vậy đối với giải pháp VBA *12,0,12,1 nên*16,0,16,1

Lưu ý

  • Điền công thức Non VBA xuống.
  • Điều chỉnh tham chiếu ô trong Công thức & Mã khi cần.

Tại sao cứ 16 hàng, OP lại yêu cầu 12 hàng?
BruceWayne

@BruceWayne ,, giải pháp của tôi có cách tiếp cận thông minh và các hàng để lấy Trung bình có thể chỉnh sửa. Do nhầm lẫn tôi đã sử dụng 16. Nhưng bây giờ tôi đã chỉnh sửa POST. ☺
Rajesh S

@BruceWayne, và về cơ bản OP đã yêu cầu MACRO ,, ngoài ra tôi cũng đã đề xuất một FORMULA cũng giống như những người khác đã làm !! ☺
Rajesh S

Bây giờ có gì sai với câu trả lời này ,,, Y xuống bình chọn !!
Rajesh S
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.