У меня есть случайный набор данных, как видно на рисунке ниже. Я хотел бы собрать и разместить их в порядке групп (группа1, группа2 и т.д.). В приведенном ниже примере, если значение "1" присутствует в любом из столбцов A:R, то все "1" должны быть выровнены в group1. если нет 1, то оно должно появиться пустым. Есть ли способ сделать это в Excel с помощью формулы или макроса? Я предпочитаю формулу, хотя. Благодарю.

Вот ссылка на пример рабочей книги (редактируемый): https://1drv.ms/x/s!AgVGRfBWRysXgWJTuf-ILJ0BTxyQ

1 ответ1

1

Прежде всего, группы должны иметь одинаковый размер данных (на тот случай, если в строке только одно число). Таким образом, группа 1 должна быть от T до AK. В ячейку Т2 введите формулу:

= ЕСЛИОШИБКА (ИНДЕКС ($ A $ 2:$ R $ 2, МАЛЫЙ (ЕСЛИ ($ A $ 2:$ R $ 2 = 1, колонка ($ A $ 2:$ R $ 2)), Column (А:А)))"")

Введите формулу и нажмите Ctrl+Shift+Enter, чтобы ввести формулу массива. Затем при копировании и вставке в столбцы U в AK в Group1 будут отображаться все вхождения 1.

Несколько советов по его улучшению:

  • Если вы поместите в ячейку T1 только число 1, а затем в произвольном формате отобразите "Group " 0 , то вы можете изменить 1 в формуле на адрес T1. Затем, при копировании в другие группы, формула должна соответствовать другим числам (вы должны поставить 1 в каждый столбец от T до AK, но показать только один из них, и, от столбцов AM до BD, должно быть число 2 и тд).
  • Если ваш Excel 2010 или старше, то у вас нет функции IFERROR() . Обходной путь должен использовать IF() и ISERROR(): IF(ISERROR(...),"",(...)) . (...) - это формула первого аргумента IFERROR() .
  • Чтобы скопировать формулу в другие строки, вы можете изменить функцию INDEX, чтобы она возвращала строку и столбец. Единственное отличие состоит в том, что возвращаемая строка - это строка ячейки, а столбец - формула (...) .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .