Index: src/wp-admin/includes/class-wp-users-list-table.php
===================================================================
--- src/wp-admin/includes/class-wp-users-list-table.php	(revision 38789)
+++ src/wp-admin/includes/class-wp-users-list-table.php	(working copy)
@@ -98,7 +98,7 @@
 			$args = array(
 				'number' => $users_per_page,
 				'offset' => ( $paged-1 ) * $users_per_page,
-				'include' => wp_get_users_with_no_role(),
+				'include' => wp_get_users_with_no_role( $this->site_id ),
 				'search' => $usersearch,
 				'fields' => 'all_with_meta'
 			);
@@ -177,7 +177,7 @@
 		if ( $this->is_site_users ) {
 			$url = 'site-users.php?id=' . $this->site_id;
 			switch_to_blog( $this->site_id );
-			$users_of_blog = count_users();
+			$users_of_blog = count_users( 'time', $this->site_id );
 			restore_current_blog();
 		} else {
 			$url = 'users.php';
@@ -357,9 +357,6 @@
 			$post_counts = count_many_users_posts( array_keys( $this->items ) );
 
 		foreach ( $this->items as $userid => $user_object ) {
-			if ( is_multisite() && empty( $user_object->allcaps ) )
-				continue;
-
 			echo "\n\t" . $this->single_row( $user_object, '', '', isset( $post_counts ) ? $post_counts[ $userid ] : 0 );
 		}
 	}
Index: src/wp-includes/user.php
===================================================================
--- src/wp-includes/user.php	(revision 38789)
+++ src/wp-includes/user.php	(working copy)
@@ -831,18 +831,22 @@
  *
  * @since 3.0.0
  * @since 4.4.0 The number of users with no role is now included in the `none` element.
+ * @since 4.7.0 The `$site_id` parameter was added to support multisite.
  *
  * @global wpdb $wpdb WordPress database abstraction object.
  *
  * @param string $strategy 'time' or 'memory'
+ * @param int|null $site_id  Optional. The site ID to count users for. Defaults to the current site.
  * @return array Includes a grand total and an array of counts indexed by role strings.
  */
-function count_users($strategy = 'time') {
+function count_users( $strategy = 'time', $site_id = null ) {
 	global $wpdb;
 
 	// Initialize
-	$id = get_current_blog_id();
-	$blog_prefix = $wpdb->get_blog_prefix($id);
+	if ( ! $site_id ) {
+		$site_id = get_current_blog_id();
+	}
+	$blog_prefix = $wpdb->get_blog_prefix( $site_id );
 	$result = array();
 
 	if ( 'time' == $strategy ) {
@@ -903,10 +907,6 @@
 		$result['avail_roles'] =& $avail_roles;
 	}
 
-	if ( is_multisite() ) {
-		$result['avail_roles']['none'] = 0;
-	}
-
 	return $result;
 }
 
@@ -2426,20 +2426,20 @@
 /**
  * Get the user IDs of all users with no role on this site.
  *
- * This function returns an empty array when used on Multisite.
- *
  * @since 4.4.0
+ * @since 4.7.0 The `$site_id` parameter was added to support multisite.
  *
+ * @param int|null $site_id Optional. The site ID to get users with no role for. Defaults to the current site.
  * @return array Array of user IDs.
  */
-function wp_get_users_with_no_role() {
+function wp_get_users_with_no_role( $site_id = null ) {
 	global $wpdb;
 
-	if ( is_multisite() ) {
-		return array();
+	if ( ! $site_id ) {
+		$site_id = get_current_blog_id();
 	}
 
-	$prefix = $wpdb->get_blog_prefix();
+	$prefix = $wpdb->get_blog_prefix( $site_id );
 	$regex  = implode( '|', array_keys( wp_roles()->get_names() ) );
 	$regex  = preg_replace( '/[^a-zA-Z_\|-]/', '', $regex );
 	$users  = $wpdb->get_col( $wpdb->prepare( "
