web-dev-qa-db-ja.com

テーブル/リストビューをフィルタリングする方法は?

これは非常に幅広い質問であり、考慮すべきコンテキストはたくさんありますが、大規模なデータセット(テーブル/リストビュー)をすばやくフィルタリングするにはどうすればよいでしょうか。

現在、当社のソフトウェア製品は2つの異なるパターンを採用しています。

  1. データの各列のテキストボックス(ヘッダーの下)。入力は、同じ列のデータと照合されます。
  2. テーブル全体の1つのテキストボックス。入力は任意の列と照合されます。

enter image description here

長期的には、これらのパターンを1つの一貫したパターンに統合して、フィルタリングを行いたいと思います。現在、私は#2を強く好みます:

  • #1は広く使用されていません(ただし、Excelはテーブルに対して同様のことを行います)
  • UIはほとんどのプラットフォームに簡単に翻訳できます
  • ユーザーは、データの文字列が発生する列を反映する必要はありません
  • テーブルが現在フィルターされているかどうかを判別するのは比較的簡単です(ボックスにテキストが含まれているため)。フィルターされた列が画面外にある場合、#1はそのような自然な手掛かりを提供しません
  • 列が非表示の場合、ユーザーは表示されていないデータを検索できます

ただし、#1にはいくつかの利点があります。

  • ユーザーが複数の列に対してより複雑なフィルターを定義することは比較的簡単です。 #2では、同じ柔軟性のために、ある種の人工クエリ言語を使用する必要があります。
  • 結果は少なくなります(特定の列が1つだけ一致するため)。#2は、望ましくない結果の一部(またはデータセットによっては非常に多くの場合)を表示する場合があります。
  • アイコンとして表される離散状態に対してデータ型固有のフィルターを提供する方が簡単です

繰り返しますが、これらのオプションを任意のデータセットだけに重み付けすることは難しいと思いますが、率直に言って、それをここで行う必要があります。お客様のデータは非常に多様であり、当社の管理外の外部ソースから取得される場合があります。

どちらか一方(またはまったく異なるもの)がこのような汎用的な設定でうまく機能する場合、私はあらゆる決定的な研究および/または事例証拠に非常に興味があります。

1
Chris

私にとって、単一の検索(2番目のオプション)を回避する唯一の理由は、類似した内容のいくつかの列を含めることであり、したがって非効率的な検索につながります。

それが当てはまらない場合、私は完全に単一の検索で行きます:

  • 検索のエントリポイントは1つしかないため、認知的負荷は少なくなります。ユーザーは、検索するにはwhatと考え、検索するにはwhereではないと考える必要があります。
  • 検索入力+状態が明確に表示されます。検索結果が実際のデータと調和するテーブル内に残っている場合は、入力と出力を視覚的に混合します。
  • 一部の列はフィルターを必要としないため、それらを無効にするか、テーブルにその列によるフィルタリングを無視させるか、または不整合につながる状況を発生させる必要があります。

あなたはすでに他の正当な理由を述べました。

2

検索ボックスの方が直感的に検索できると思います。ただし、テキストボックスは高度なフィルタリングの方法を提供します。したがって、問題は-ユーザーに検索またはフィルターさせますか?

両方が必要な場合、次の中間ソリューションを検討することができます。Amazonは同じものを使用しています。検索ボックスはデフォルトですべての列を検索しますが、ユーザーは単一の列を検索するオプションがあります。

mockup

download bmml sourceBalsamiq Mockups で作成されたワイヤーフレーム

2
Assimiz

テーブル内の情報のフィルタリングについて、UXMattersには非常に優れた article があります。古いですが、それでも多くの意味があります。テーブルの上のデータフィルターのようないくつかのオプションが検討されました: enter image description here

データの左側にフィルターします

enter image description here

または表形式フィルターの数が少ない場合

enter image description here

フィルターの一貫した可用性と可視性についての良い議論もあります。

2
Adit Gupta

実際には、最初のオプションはFilterですが、2番目のオプションはSearchです。それらは単なる異なるツールです。そして、どちらのツールも便利です。

しかし、大規模で複雑なデータセットを扱う場合、私は最初のオプションを選択します。

  1. フィールドごとのフィルターはより明確なメンタルモデルを提供します。テーブルは、ユーザーのメンタルモデルに影響を与える高度に構造化されたビューでデータを明示的に示します。彼らは、キーとテーブルのヘッダーであるキーと値のペアの観点からデータについて考えます。 Googleの単一行検索コントロールは、データの内部表現を表示しないため、ここでは当てはまりません。
  2. 詳細豊富で明確なセマンティクスフィルタリング。大きなデータセットを扱う場合、それを処理するための適切なツールを提供する必要があります。一般的なルールは次のとおりです。特定性が高いほど、より良い結果が得られます。単一の入力filetring(検索)は、ユーザーをコントロールから外します。
  3. 適切なコントロールにより、使いやすさが向上します。タスクの実行時間、エラー数などを簡単に測定して比較できます。

    また、フィルタリングは上記のオプションに限定されないことに注意してください。非表示の列などの問題を解決する、フィルタリング用の個別のコントロールを提供できます。

0