У меня есть файл Excel с несколькими строками (около 1 Кб). В каждой строке описывается какое-то действие одного пользователя и (мой плохой) для разных действий есть разные строки. Что-то вроде этого

      action              user
      ===============     =====
r1    lore ipsum 1        user1
r2    lore ipsum 2        user1
r3    lore ipsum 3        user2
r4    lore ipsum 1        user2
r5    lore ipsum 2        user3
r6    lore ipsum 4        user1
r7    lore ipsum 5        user1

Как видите, у меня есть несколько действий для user1. Все, что мне нужно, - это поместить в одну строку все действия user1, а в другие строки другие действия для других пользователей (так же, как для user1) без дубликатов в столбце "user". Что-то вроде этого:

      action              user
      ===============     =====
r1    lore ipsum 1        user1
      lore ipsum 2        
      lore ipsum 4        
      lore ipsum 5        
r2    lore ipsum 3        user2
      lore ipsum 1        
r3    lore ipsum 2        user3

Как я могу это сделать? большое спасибо

2 ответа2

0

Создайте новую таблицу справа от существующей таблицы, поместите пользователей слева, а затем создайте столбец для каждого возможного действия. Это единственный надежный способ записи, кто и какие действия делал.

Затем создайте столбец слева от существующей таблицы, содержащий эту формулу:

=UserColumnCell&ActionColumnCell
i.e. =$C2&$B2

Это даст вам значение, которое вы можете использовать для создания VLOOKUP в вашей новой таблице, например User1Lore ipsum 1 .

Вернитесь к новой таблице и в первой ячейке левого столбца «Действие» добавьте следующую формулу:

=IF(ISERROR(VLOOKUP(UserColumnCell&ActionColumnTitle),FirstTableRange,2,FALSE)),0,1)
i.e. =IF(ISERROR(VLOOKUP(E2&F1,$A$2:$C$1000,2,FALSE),0,1)

Поскольку мы не исправили ссылки на ячейки в первой половине формулы, теперь вы можете перетаскивать формулу поперек для каждого действия и вниз для каждого пользователя, и она будет корректироваться соответствующим образом.

Наконец, скопируйте все данные, которые мы только что создали, и вставьте их обратно в себя, используя тип вставки как Значения. Вы можете знать, уничтожить свой оригинальный стол.



Очевидно, что если вы хотите установить другой флаг для выполняемого действия, измените 1 и 0. Например, если вы хотите небольшую галочку, вы можете оставить ее как есть и использовать условное форматирование для "ячеек на основе их значений", установленных на значке "Галочка", или вы можете просто установить шрифт каждого из столбцов "Действие" в Marelett. и заменить 0,1 с "","a" , как галочка в Марлетте.



Если вы используете таблицы, вы можете упростить это, используя ссылки на таблицы. Где ваша существующая таблица Table1, а новая Table2:

Формула в столбце 1 таблицы 1 будет иметь вид:

=[@User]&[@Action]

И тогда формула в каждом из столбцов действий в таблице 2 будет иметь вид:

=IF(ISERROR(VLOOKUP([@User]&Table2[[#Headers],[lore ipsum 1]],Table1,2,FALSE)),0,1)

Хотя, если вы сделаете это, вам придется сбросить ссылку [@User], как только вы перетащите формулу, поскольку она будет смещена.



Так что же это делает?
на тот случай, если вы не экспериментировали с VLOOKUP: оператор IF управляет возможностью диктовать то, что мы выводим, а не просто возвращать значение, найденное VLOOKUP.

ISERROR вернет true или false в зависимости от того, найдет ли VLOOKUP что-либо

VLOOKUP ищет эту составную формулу, которую мы создали, чтобы увидеть, сможет ли он найти в этом столбце результат, который соответствует комбинации пользователя и действия, подходящего для этой комбинации столбца и строки в Таблице 2, если он найдет его, он его вернет, что делает ISERROR возвращает значение false, и если он ничего не находит, он выдает ошибку, заставляя ISERROR возвращать значение true.

Выход ISERROR либо TRUE, либо FALSE, если он TRUE, тогда совпадения нет, поэтому мы оставляем 0 или пробел, если вы предпочитаете показывать, что этот пользователь не выполнил это действие. Если он возвращает FALSE, то пользователь выполнил это действие, поэтому он возвращает 1 или a для галочки или того, что вы предпочитаете.



РЕДАКТИРОВАТЬ
Этот ответ основан на том, что вы хотите изменить дизайн своей таблицы. Если вы хотите сохранить свою таблицу как есть, я бы указал на комментарий Матха о сводных таблицах, так как они будут лучшим способом сделать это, если вам нужно сохранить исходную структуру таблицы, но представить данные другим способом.

0

Вот пример того, как ваши данные могут храниться:

данные

Выберите одну из ячеек таблицы, как на картинке выше. Затем перейдите в меню «Вставка»> «Сводные таблицы». Он выберет все ваши данные и выведет диалог вроде этого:

новый сводный стол

Мне жаль! Мой Excel на португальском, но я верю, что вы можете следить за фотографиями.

Нажмите Ok. Это создаст новый Лист, как это:

новый лист создан

И меню будет показано справа:

поля сводной таблицы

Перетащите и user падение, перетащить action в строку Label, в поле слева-снизу.

Метка строки

Результат будет выглядеть так:

Конечный результат

Посмотрите, удовлетворительно ли это для вас или вы хотите что-то еще. Мы можем работать над чем-то в этот момент, но, может быть, это то, что понадобится, я не знаю.

Извините за задержку с ответом, я в рабочее время;)

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