2013-08-19 6 views
1

У меня есть данные, как это в Excel:Создать матрицу из нескольких значений в одной ячейке

SO18318488 question example

, что я хочу, чтобы преобразовать в (5 * 7) матрицы, как это:

 
      sara jone shery jack joe peter beti 
    book1 1  0  0  0  0  0  0 
    book2 1  0  0  1  0  0  1 
    book3 0  0  0  0  0  1  0 
    book4 0  1  1  1  0  0  0 
    book5 0  0  1  0  1  0  0

Что мне делать?

+0

Если данные были нормализованы вы могли бы очень легко сделать это в сводной таблице. Наличие разделов вашей книги в столбце «принадлежать» делает это труднее – Brad

ответ

1

Мой выбор был бы переставить данные в соответствии с сводной таблицы. Поэтому скопируйте ColumnC и вставьте специальные значения в ColumnD. Затем замените пробелы в столбце D ничем (чтобы удалить пробел с book1, book2). Выберите ColumnD, Data> Data Tools - Text to Columns, Delimited, Comma, затем отфильтруйте ColumnE, чтобы выбрать непустые строки, и скопируйте видимую часть столбца B (исключая заголовок) на B9 (или чтобы соответствовать) и видимую часть ColumnE (исключая заголовок) до D9 (или для удовлетворения). Затем создайте сводную таблицу с B1: D11 (или в соответствии с), как показано на рисунке (с использованием ColumnD для belong - т.е. belong2):

SO18318488 example

+0

спасибо всем. но @pnuts Я делаю эту работу, но могу ли вы. Возможно ли это объяснить шаг за шагом с помощью фотографий? потому что когда я делаю шаг «Данные»> «Инструменты данных» - «Текст в столбцы», «Разграничено», «Запятая», то я фильтрую столбец «Е», но я не могу выбрать непустые строки. и дайте мне ошибку. – sima412

+0

Боюсь, я не объяснил правильно :-(Для фильтрации выберите A: E Data> Sort & Filter - Filter и нажмите стрелку вниз в ColumnE. Выберите все, кроме пробелов (например, снимите флажок '(Бланки) ') – pnuts

+1

ОК @pnuts очень благодарю вас. Я эту работу и получаю истинный результат. – sima412

1

Начиная с ячейки A2, вставьте свой список книг, чтобы создать левую часть сетки. Скопируйте свой список идентификаторов, а затем запустите в ячейке B2, вставьте свой список идентификаторов, выбирая специальные, транспонировать. Это создаст верх и сторону вашей матрицы.

Вставить эту формулу в ячейке B2

=IF(ISERROR(FIND($A2,VLOOKUP(B$1,$K:$L,2,FALSE))),0,1) 

(где $ K:. $ L представляет собой список идентификаторов, принадлежат т.е. второй и третий столбцы данных выборки Они могут быть где угодно, пока. вы обновляете ссылку $ K: $ L для ссылки на новое местоположение)

Теперь скопируйте ячейку B2 и вставьте ее в остальную часть матрицы.

+0

Большое спасибо @McSenstrum – sima412

1

На всякий случай, если название книги можно найти в названии другой книги (например, «Кольцо» и «Братство кольца»), вы можете использовать эту формулу в ячейке F2 и скопировать ее в ячейку L6:

=--ISNUMBER(SEARCH(","&$E2&",",","&SUBSTITUTE(VLOOKUP(F$1,$B$2:$C$8,2,FALSE),", ",",")&",")) 

Где F1: L1 список имен и E2: E6 список названий книг

+0

большое вам спасибо. – sima412

Смежные вопросы