2011-10-28 20 views
5

Tôi đã đọc ở đâu đó trên Stack Overflow mà các câu hỏi Excel được chấp nhận ở đây, vì vậy xin đừng bực mình :) Nếu chúng ở nơi khác, hãy cho tôi biết ..Mở rộng một bảng tần số trong Excel thành một cột đơn

Tôi thất vọng vì tôi khá chắc chắn rằng tôi đã từng biết cách thực hiện việc này.

Imagine bảng sau:

Frequency  Object 
3    A 
2    B 
4    C 

Trong một cột thứ ba, tôi muốn Excel để viết:

A 
A 
A 
B 
B 
C 
C 
C 
C 

(3 Một vì tần số của A = 3)

tôi m khá chắc chắn rằng điều này có thể được thực hiện bởi một công thức duy nhất sao chép xuống cột thứ ba, nhưng tôi không thể nhớ làm thế nào. Bất kỳ đề xuất?

+0

# 1 Vì câu hỏi của bạn liên quan đến công thức, tôi nghĩ điều đó có thể chấp nhận ở đây. Bất kỳ câu hỏi nào tổng quát hơn (tức là cách tạo biểu đồ) nên truy cập superuser.com. Nhưng đó chỉ là ý kiến ​​của tôi. # 2 Tại sao bạn có openoffice được gắn thẻ trong câu hỏi này? Đó là một phần mềm hoàn toàn khác. – PowerUser

+0

Bạn có một số lượng nhỏ các đối tượng không? tức là nó chỉ là A-C hay nó giống A-J hay một số không rõ? – PowerUser

Trả lời

1

Trong ô đầu tiên của cột đầu ra mong muốn của bạn (E1 trong ví dụ này), nhập

=B1 

Trường B1 là địa chỉ của đối tượng đầu tiên. Trong ô bên dưới (E2, tại đây), nhập

=IF(COUNTIF(E$1:E1,E1)=INDEX($A$1:$A$3,MATCH(E1,$B$1:$B$3,0)), 
INDEX($B$1:$B$3,MATCH(E1,$B$1:$B$3,0)+1), 
E1) 

Và điền vào theo yêu cầu của bạn.

+0

Xin chào, cảm ơn bạn đã trả lời. Tôi tự hỏi tại sao cột E lại tham gia vào công thức này. Tôi giả định rằng A và B là các cột có dữ liệu, và C là cột nơi cột thứ ba sẽ được thêm vào. – Andrew

+0

Xin lỗi. Cột E là nơi tôi đã nhập công thức. Tôi sẽ chỉnh sửa để thêm thông tin đó. – Excellll

+0

@Excellll, Đó là một công thức ấn tượng. Tôi nghĩ rằng tôi sẽ phải dùng đến một vĩ mô trước khi cố gắng tìm ra cái đó. Tốt đẹp! – Stewbob

1

Giả sử bạn có một số hữu hạn nhỏ của các đối tượng như trong ví dụ của bạn, hãy thử này:

  1. Trong một tờ giấy trắng, đặt bảng ví dụ của bạn ở phía trên bên trái. Vì vậy, ô A2 = 3, B2 = "A", A3 = 2, vv
  2. Trong D2, nhập "A" (điều này chỉ là để có được công thức bắt đầu)
  3. Trong D3, nhập công thức này:

    IF(COUNTIF($D$2:D6,$B$2)<$A$2,$B$2, 
    IF(COUNTIF($D$2:D6,$B$3)<$A$3,$B$3, 
    IF(COUNTIF($D$2:D6,$B$4)<$A$4,$B$4))) 
    
  4. Điền công thức này xuống (khoảng & dán) khoảng 10 hàng và bạn sẽ thấy mọi thứ được điền theo đó.

Bạn làm gì? Đầu tiên, nó đếm số lần xuất hiện của "A" trong các ô trước của cột D và so sánh nó với tần số. Nếu ít hơn, nó đi vào một A. Sau đó, quá trình đó được lặp lại cho B và C.

+0

Cảm ơn bạn đã trả lời. Tôi có một số lượng lớn các đối tượng hữu hạn. Công thức bạn cung cấp có bị cắt không? Dường như không đủ dấu ngoặc đóng. – Andrew

+0

Cảm ơn. Tôi sửa nó rồi. Vì công thức này yêu cầu bạn nhập một dòng riêng cho từng đối tượng, nó có thể không hoạt động trong trường hợp của bạn. – PowerUser

2

Tôi thích sự thanh lịch của (1) công thức, nhưng nó sẽ chỉ hoạt động nếu bạn không có đối tượng lặp đi lặp lại (dữ liệu).

này sẽ luôn luôn làm việc, miễn là bạn không có một số, khác nhau từ số không, giá trị trong E2 giá trị Freq trong E3:E6 và obj trong D3:D6, công thức bắt đầu từ năm P3

=LOOKUP(ROWS(P$3:P3)-1;SUMIF(INDIRECT("E2:E"&ROW($E$2:$E$6));">0");$D$3:$D$6) 

hoặc (và trong trường hợp này, bạn có thể có bất cứ điều gì trong E2)

=INDEX($D$3:$D$6;IF(ROWS(L$3:L3)<=$E$3;1;1+MATCH(ROWS(L$3:L3)-1;SUMIF(INDIRECT("E3:E"&ROW($E$3:$E$6));">0")))) 

Ctrl + Shift + Enter trong P3 và sao chép xuống

01.235.

CR

Các vấn đề liên quan