diff --git a/src/pages/profile/UserFieldsDisplaySettings.js b/src/pages/profile/UserFieldsDisplaySettings.js
index 575ea84b405bd99bcc0fe489a3944552a540be5f..2984427619b8b2f00ea6c6664cfa872543663f32 100644
--- a/src/pages/profile/UserFieldsDisplaySettings.js
+++ b/src/pages/profile/UserFieldsDisplaySettings.js
@@ -74,7 +74,6 @@ const UserFieldsDisplaySettings = ({ userSettings, setUserSettings, publicFields
           id: field.id,
           label: buildFieldName(field.field_name),
           checked: isOptionChecked(field.id),
-          disabled: field.field_type === 'List',
           toolTipContent: field.definition_and_comment,
           toolTipProps: { position: 'bottom' },
         });
diff --git a/src/pages/results/ResultsTableMUI.js b/src/pages/results/ResultsTableMUI.js
index b34d07e23f0753c2056fef1ec2a0b9cec58df786..1a7b22b8d70ea9331a31eaa71a8c32210272873d 100644
--- a/src/pages/results/ResultsTableMUI.js
+++ b/src/pages/results/ResultsTableMUI.js
@@ -68,15 +68,38 @@ const ResultsTableMUI = ({
       dataColumns.push({
         name: publicField.field_name,
         label: buildFieldName(publicField.field_name),
-        options: { display: userFieldsIds.includes(publicField.id) },
+        options: {
+          display: userFieldsIds.includes(publicField.id),
+          customBodyRenderLite: (dataIndex, rowIndex) => {
+            let value = rows[rowIndex][publicField.field_name];
+            if (value && value.length >= 150) {
+              value = value.substring(0, 150) + ' ...';
+            }
+            return value;
+          },
+          setCellProps: () => ({
+            style: {
+              maxWidth: '350px',
+            },
+          }),
+        },
       });
     });
+    // sort columns alphabetically for clarity
+    dataColumns.sort((a, b) => (a.name > b.name ? 1 : -1));
     return dataColumns;
   }, [publicFields, userFieldsIds]);
 
   // Returns value from JSON obj associated to key string.
   const getValueByPath = (obj, path) => {
-    return path.split('.').reduce((acc, key) => acc && acc[key], obj);
+    return path.split('.').reduce((acc, key) => {
+      if (Array.isArray(acc)) {
+        // For objects with cardinality, defaults to the first element of the array
+        // TODO add a way to view other elements of the array when possible.
+        acc = acc[0];
+      }
+      return acc && acc[key];
+    }, obj);
   };
 
   const rows = useMemo(() => {
@@ -176,6 +199,10 @@ const ResultsTableMUI = ({
     filter: true,
     filterType: 'textField',
     responsive: 'standard',
+    draggableColumns: {
+      enabled: true,
+      transitionTime: 200,
+    },
     selectableRows: 'multiple',
     selectableRowsOnClick: false,
     rowsSelected: selectedRows,