Поиск 2-го, 3-го, ..nth совпадения и возврат результатов сортировки от наименьшего к наибольшему значению? - PullRequest
0 голосов
/ 05 февраля 2020

Я попытался выполнить поиск в Google, но пока не нашел решения. Я хотел бы найти значение, соответствующее условиям, и вернуть результат при сортировке от малого к большому. Какую формулу я должен использовать, чтобы сделать это? Большое спасибо.

enter image description here

Ответы [ 4 ]

1 голос
/ 06 февраля 2020

Если у вас есть O365 с функцией UNIQUE, вы можете использовать:

D2: =UNIQUE(Name) 'to generate the list of names

E2: =IFERROR(SMALL(FILTER(Name:Time,(Name=$D2)*(Time>=TIME(7,,))*(Time <=TIME(10,,))),COLUMNS($A:A)),"")

Выберите E2 и копируйте по горизонтали и влево

enter image description here

1 голос
/ 05 февраля 2020

Чтобы получить несколько совпадающих значений из набора данных по формуле, вы можете использовать функции IF и SMALL, чтобы выяснить номер строки каждого совпадения и вернуть это значение обратно в INDEX.

{=INDEX(array,SMALL(IF(vals=val,ROW(vals)-ROW(INDEX(vals,1,1))+1),nth))}

Где:

  • массив: 1 диапазон столбцов, содержащий результаты -> Столбец: B: B
  • vals: 1 поиск столбцов массив -> столбец: A: A
  • val: значение поиска -> столбец: D: D
  • nth -> изменить значения строки 1 до 1,2,3,4 et c. вместо 1-го, 2-го и 3-го ...

Как всегда при работе с формулами массива, используйте ctrl + shift + enter вместо обычного enter

1 голос
/ 05 февраля 2020

Если в столбце Time есть повторяющиеся значения, может помочь следующая формула массива:

{=IFERROR(SMALL(IF(($D2=$A$2:$A$12)*($B$2:$B$12>=TIME(7,0,0))*($B$2:$B$12<=TIME(10,0,0)),IF(COUNTIF($D2:D2,$B$2:$B$12)=0,$B$2:$B$12)),1),"")}

Формула массива после редактирования подтверждается нажатием ctrl + shift + enter

enter image description here

1 голос
/ 05 февраля 2020

Я бы использовал МАЛЕНЬКУЮ функцию Агрегата:

=IFERROR(AGGREGATE(15,6,$B$2:$B$10/
(($A$2:$A$10=$D2)*($B$2:$B$10>=TIME(7,0,0))*($B$2:$B$10<=TIME(10,0,0))),COLUMN(A1)),"")

enter image description here

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