1/0 Разреженная матрица в Excel

#excel #matrix #excel-formula

Вопрос:

У меня есть данные из 1000 строк и 2 колов. Я хочу преобразовать его в матрицу единиц и нулей таким образом, чтобы 1-й столбец был столбцом A, 1-я строка-столбцом B, и всякий раз, когда определенное значение A совпадает с B, оно возвращает 1 или 0. Я сделал это для столбца, но при попытке скопировать формула ломается.

Есть ли простое решение для этого?

Есть ли какой-либо другой простой способ сделать это в Excel или на любом другом языке, таком как Python или R.

Снимок экрана Excel:
введите описание изображения здесь

Ответ №1:

Ты почти на месте. Ваша формула почти верна, но первая ссылка должна быть C$1 . Чтобы заполнить остальную часть матрицы, выберите полный диапазон, начинающийся с C2, и введите формулу с помощью Ctrl Enter.

Ответ №2:

=(COUNTIF($C$1:INDEX($1:$1,MAX(($1:$1<>"")*(COLUMN($1:$1)))),$B2)>0)*1

Подсчитывается, если текст в B2 встречается в индексированной первой строке, начиная со столбца 3 до последнего непустого столбца. Если возможно только одно совпадение, вы можете сузить его до

=COUNTIF($C$1:INDEX($1:$1,MAX(($1:$1<>"")*(COLUMN($1:$1)))),$B2)

Комментарии:

1. Спасибо вам за ваш ответ. Он не работает, хотя по какой-то причине возвращает каждое значение как 1.

2.Если вы потянете его вниз $B2 , он превратится в $B3 etc. Возможно, формулу нужно ввести с ctrl shift enter помощью (чтобы она стала формулой массива). Если все сделано правильно, формула будет завернута { } .