Электронная таблица: создать столбец на основе одного столбца, отсортированного по значениям другого

359
Mark Green

Я хочу создать новый столбец данных из одного столбца, отсортированного по другому столбцу.

Проще всего объяснить на примере. На самом деле это не то, чем я занимаюсь, но я думаю, что это хорошо объясняет. Допустим, в столбце А имена людей в алфавитном порядке:
Адам
Бетти
Колин
Дебби

и в столбце B указан год их рождения:
1985 г.
1973 г.
1954 г.
1973 г.

Я хотел бы создать столбец C, в котором перечислены имена людей по годам их рождения:
Колин
Бетти
Дебби
Адам

Это должно быть сделано способом без изменения или сортировки столбца A или B.
Это должно быть сделано способом, который автоматически обновит столбец C, если столбец A или B будет отредактирован.

Спасибо! (Я работаю в Excel на Windows 10, если это имеет какое-либо значение.)

1
Я не могу понять, чего именно вы пытаетесь достичь, так как имя и год рождения уже доступны, лучше поделитесь желаемым результатом !! Rajesh S 6 лет назад 0
Требуемые выходные данные - это те же данные, что и в столбце A, но в другом столбце и отсортированные (перечислены в другом порядке в соответствии с датами в столбце B). Mark Green 6 лет назад 0

3 ответа на вопрос

0
Akina
Cx=INDIRECT(ADDRESS(COUNTIF(B:B,">=" & Bx),1)) 

Значения года рождения должны быть уникальными.

Если данные начинаются со строки с номером больше 1 - добавьте правильное число к значению COUNTIF ().

Что такое Cx и Bx !! Rajesh S 6 лет назад 1
@RajeshS С ** 1 ** и B ** 1 **, C2 и B2, ... но не C ** 1 ** и B ** 2 **. Akina 6 лет назад 0
Извините, я не вернулся к своему вопросу пару дней. Я хотел, чтобы он справился с дублирующимися годами, если это возможно. Но я заинтригован этой функцией. Это работает (кроме проблемы дублирования). Но как происходит вытягивание текста из столбца A без ссылки на столбец A в формуле? Mark Green 6 лет назад 0
0
Gary's Student

Это было бы легко, если бы годы в столбце B были уникальными, но мы можем скорректировать дубликаты лет. В D1 введите:

=B1 

и в D2 введите:

=B2+COUNTIF(B$1:B1,B2)*0.001 

и скопировать вниз. Столбец D повторяет столбец B с дубликатами «не конфликтует». Это позволяет MATCH()функции получать все значения. Наконец, в С1 введите:

=INDEX(A:A,MATCH(SMALL(D:D,ROWS($1:1)),D:D,0)) 

и скопировать вниз:

enter image description here

0
Mark Green

Студент @ Гарри, по какой-то причине я не нашел формулы, которые мне были нужны раньше. Когда я не мог вернуться на эту страницу в течение нескольких дней, небольшое исследование нашло мне формулу RANK. (В новейшем Excel, RANK обесценивается, поэтому я использовал вместо него более новый RANK.EQ. А потом я подумал о VLOOKUP, но, немного углубившись в поиск, я нашел INDEX MATCH, который кажется лучше, и вы тоже это использовали.
Так вот что я пришел и как я справлялся с дублирующимися годами: таблица ранжирования имен по годам

(Мои формулы начинаются со строки № 2 из-за заголовков)
Формула столбца C:

=RANK.EQ(B2,B$2:B$15,1) 

Важно знать, как работает рейтинг. Если в позиции № 5 есть три предмета, все они получают ранг 5, и не будет предметов с рангом 6 или 7. Следующая позиция - ранг 8.

Формула столбца D:
в первой ячейке

=C2 

и в последующих клетках

=C3+COUNTIF(C$2:C2,C3) 

Это избавляет от дублирования рейтинга. Рейтинг увеличивается на 1, если в списке есть дублирующийся рейтинг выше. Таким образом, этим двойным

номерам 5 будет присвоено звание 6 и 7. Столбец E - это просто список последовательных чисел, который довольно легко автозаполнить.

Формула столбца F объединяет все это:

=INDEX($A$2:$A$15,MATCH(E2,$D$2:$D$15,0)) 

В любом случае я хотел бы поделиться тем, что у меня было, как оно работает, и немного по-другому. Но, вероятно, ответ от ученика Гарри лучше, так как он использует меньше столбцов, чтобы добраться туда. (Возможно, я мог бы объединить некоторые и использовать меньше столбцов с моим методом.)

Похожие вопросы