В Excel вы создаете новый столбец в файле file.xlsx с формулой:
=MATCH(A2,[\path\file1.xlsx]Sheet1!$A$2:$A$20,0)
, где $ A $ 2: $ A $ 20 - это диапазон с идентификаторами студентов в file1.xlsx.Последний 0
означает точное совпадение.Распределите эту формулу по всем строкам.Функция возвращает # N / A в строках, если ID отсутствует в file1.Вы можете отфильтровать эти строки, используя этот столбец.
Для упрощения фильтрации вы можете добавить функцию ISERROR:
=NOT(ISERROR(MATCH(A2,[\path\file1.xlsx]Sheet1!$A$2:$A$20,0)))
Тогда ИСТИНА будет соответствовать существующим идентификаторам, а ЛОЖЬ - отсутствующим идентификаторам.
Если у вас есть дополнительный столбец в file1.xlsx и вы хотите объединить его с данными в file2, вы можете использовать функцию INDEX:
=INDEX([\path\file1.xlsx]Sheet1!B$2:B$20,MATCH($A2,[\path\file1.xlsx]Sheet1!$A$2:$A$20,0),1)
Обратите внимание, что для комбинации MATCH / INDEX не требуются данные встолбец поиска для сортировки, как в случае VLOOKUP.
В MATLAB вы можете использовать функцию ISMEMBER.
Допустим, вы импортировали оба файла в MATLAB и у вас есть массивы ячеек file1и файл2.Затем вы можете сделать:
[~,~,file1] = xlsread('file1.xlsx');
[~,~,file2] = xlsread('file2.xlsx');
[idx2, idx1] = ismember(file2(:,1), file1(:,1));
filtered2 = file2(idx2,:);
Чтобы найти строки в file1.xlsx, существующие в file2.xlsx, и отсортировать их в том же порядке:
idx1(idx1==0) = [];
filtered1 = file1(idx1,:);
Если вы хотите сохранитьпорядок строк в file1.xlsx просто переключите file2 и file1 в операторе ismember.