В вашем примере Stackblitz код, расширяющий строку, задается в определении строки:
...
<tr mat-row *matRowDef="let element; columns: columnsToDisplay;"
class="example-element-row"
[class.example-expanded-row]="expandedElement === element"
(click)="expandedElement = expandedElement === element ? null : element">
</tr>
...
Чтобы строка расширялась, только если пользователь нажимает на определенный столбец (или в вашем случаене раскрывать при щелчке по определенному столбцу) необходимо переместить функцию onClick и необходимые CSS в те столбцы, которые должны развернуться, например,
...
<!-- Weight Column -->
<ng-container matColumnDef="weight">
<th mat-header-cell mat-sort-header *matHeaderCellDef> Weight </th>
<td mat-cell *matCellDef="let element" class="example-element-row" [class.example-expanded-row]="expandedElement === element"
(click)="expandedElement = expandedElement === element ? null : element"> {{element.weight}} </td>
</ng-container>
...
Я изменил ваш пример, чтобы не расширять / сворачивать, еслищелчок по столбцу позиции: Stackblitz
PS: для лучшей ремонтопригодности вы должны настроить имена классов CSS и т. д.