Розклад таблиць частот в Excel у єдину колонку

Я читав в іншому місці на переповненні стека, що питання Excel є прийнятними тут, так що, будь ласка, не роздратуйте :) Якщо вони повинні бути в іншому місці, просто дайте мені знати ...

Я розчарований, тому що я впевнений, що знаю, як це зробити.

Уявіть таку таблицю:

Frequency       Object
3               A
2               B
4               C

У третій колонці я хочу Excel написати:

A
A  
A
B
B
C
C
C
C

(3 А, тому що частота А = 3)

Я впевнений, що це можна зробити за допомогою єдиної формули, скопійованої в третьому стовпчику, але я не пам'ятаю, як це зробити. Будь-які пропозиції?

5
# 1 Оскільки ваше запитання включає формулу, я думаю, що тут прийнятно. Будь-які питання, більш узагальнені (наприклад, як зробити графік), повинні надходити на superuser.com. Але це тільки моя думка. # 2 Чому у вас є теки openoffice, позначені в цьому питанні? Це зовсім інше програмне забезпечення.
додано Автор PowerUser, джерело
У вас є невелике кінцеве число об'єктів? Тобто чи це просто A-C, чи це більше схожий на A-J або незнайоме число?
додано Автор PowerUser, джерело

3 Відповіді

Мені сподобалася елегантність формули (1), але вона працюватиме, тільки якщо у вас немає повторних об'єктів (даних).

Це завжди буде працювати, оскільки у вас немає цифр, відмінний від нуля, значення в E2 Freq значення в E3: E6 та Obj в D3: D6 , формула, починаючи з P3

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

або (і в цьому випадку ви можете мати щось у Е2)

=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 in P3 and copy down

CR

2
додано

У першій комірці бажаного стовпця виводу (E1 в цьому прикладі) введіть

=B1

Де B1 - адреса першого об'єкта. У клітинці нижче (E2, тут) введіть

=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)

А заповнюйте, наскільки вам потрібно.

1
додано
Ой, вибачте. Колонка E - це місце, де я увійшов у формулу. Я буду редагувати, щоб додати цю інформацію.
додано Автор Excellll, джерело
@Excellll, Це одна вражаюча формула. Я думаю, що я б вдавався до макросу, перш ніж спробувати зрозуміти це. Приємно!
додано Автор Stewbob, джерело
Привіт, дякую за вашу відповідь. Мені цікаво, чому колонка E бере участь у цій формулі. Я припускаю, що A та B є стовпцями з даними, а C - колонка, де буде додано третій стовпець.
додано Автор Andrew, джерело

Якщо ви мали обмежене число об'єктів, як у вашому прикладі, спробуйте це:

  1. In a blank sheet, put your example table in the top left. So Cell A2=3, B2="A", A3=2, etc.
  2. In D2, enter "A" (this is just to get the formula started)
  3. In D3, enter this formula:

    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. Fill this formula down (i.e. copy&paste) about 10 rows and you'll see everything fill in accordingly.

Що це робить, ти питаєш? По-перше, він підраховує кількість входжень "A" у попередні клітинки стовпця D і порівнює його з частотою. Якщо менше, він входить в інший A. Тоді цей процес повторюється для B і C.

1
додано
Дякую. Я полагодив це. Оскільки ця формула вимагає введення окремої рядка для кожного об'єкта, вона може не працювати у вашому випадку.
додано Автор PowerUser, джерело
Дякуємо за Ваш відповідь. У мене є потенційно велика кількість кінцевих об'єктів. Чи вилучена ваша формула? Там, здається, недостатньо закриваючих дужок.
додано Автор Andrew, джерело