У меня есть два столбца: Days и Value. Попытка создать формулу Excel для заполнения третьего столбца с идентификатором, в котором будет находиться эта строка, если бы каскадно отсортировать два столбца. Сначала по значению (от меньшего к большему), а затем по дням (от большего к меньшему)
Демонстрационные данные в значительной степени уже отсортированы по мере необходимости, но в реальном файле значения находятся повсюду. Позиция идентификатора по существу должна быть столбцом приоритета. Хотя таблица на самом деле не может быть отсортирована на этом конкретном листе.
Это казалось близким, но не могло изменить его соответствующим образом. https://answers.microsoft.com/en-us/msoffice/forum/all/excel-formula-to-track-a-sort-position/b8efbfa5-7ed9-4272-8f3c-ddfe04c00cb7
Обновлено: у меня были желаемые значения идентификатора сортировки в обратном порядке.
с Office 365 мы можем использовать sort для сортировки массива, а затем сопоставлять, чтобы найти, где он находится:
=MATCH(A2&"|"&B2,BYROW(SORT(FILTER($A$2:$B$10000,$A$2:$A$10000<>""),{2,1},{-1,1}),LAMBDA(a,TEXTJOIN("|",,a))),0)
И просто чтобы пофантазировать, мы можем расплескать результаты вместо того, чтобы копировать формулу:
=LET(
rng,FILTER($A$2:$B$10000,$A$2:$A$10000<>""),
srt,SORT(rng,{2,1},{-1,1}),
rng_brw,BYROW(rng,LAMBDA(a,TEXTJOIN("|",,a))),
srt_brw,BYROW(srt,LAMBDA(a,TEXTJOIN("|",,a))),
MATCH(rng_brw,srt_brw,0))
Спасибо @ScottCraner!! Ваш ответ потрясающий!! У меня была ошибка в моем вопросе, и я просто отредактировал таблицу. Можно ли использовать ваше решение, но изменить порядок идентификаторов? (Поэтому при сортировке столбца идентификаторов строка с 2500 – 0,01 находится вверху, а строка 1–9300 — внизу.)
@Ben.Name не следует редактировать свой вопрос после получения ответов. Это делает ответы недействительными и открывает ответы для отрицательных голосов, потому что теперь их ответ не соответствует вопросу. Обычно кто-то пытался решить проблему самостоятельно, а если не мог, то задавал другой вопрос. Так что в будущем имейте это в виду. Я отредактирую сообщение через минуту, чтобы внести изменения, так как это простая настройка.
Понял. Я понял это и принял ответ. -Спасибо. Изменено {2,1},{1,-1} на {2,1},{-1,1}
Альтернативное решение без использования LAMBDA, но также требующее Office 365:
=LET(range, A2:B8,
seq, SEQUENCE(ROWS(range)),
srt, TAKE(SORT(HSTACK(seq,range),{3,2},{-1,1}),,1),
XMATCH(seq,srt))
srt
сортирует строки по значениям от наименьшего к наибольшему и по дням от наибольшего к наименьшему.
Тогда он соответствует позиции строки в srt
.
элегантное решение!
Каким должен быть результат, если две или более записей имеют одинаковые значения в столбцах «Дни» и «Значение»?