web-dev-qa-db-ja.com

Googleスプレッドシート、クエリ結果を手動で並べ替える方法(クエリではない)

私のグーグルシートはソート目的のためだけに別のタブからデータをインポートしていますが、ソートが手動で行われた場合(Googleシートメニューを使用)、結果は予測できません。

シートは以下を介して入力されます。

=query(tabname!A4:G2000)
2
Riccardo

使用できませんデータ>シートの並べ替え...

列を選択してフィルタービューを作成し、シートを手動で並べ替える必要があります:Data>フィルタービュー...>新しいフィルタービューの作成>ソートA-Z

欠点はビューであるため、スプレッドシートを閉じた後もそのようにならないことです。
また、式はフィルタリングされた領域の外側または内側にある必要があることに注意してください(たとえば、式で直接フィルターを作成することはできません)

例:


別のアプローチは以下を使用することです。

  • =QUERY()in=SORT()like:=SORT(QUERY(tabname!A4:G2000); 1; 1)
  • =QUERY(tabname!A4:G2000; "select * order by A desc, B asc"; 1)

3
user0

この問題は、単一の値ではなく値の配列を返すクエリ、IMPORTRANGEなどの機能が機能するために発生します。異なるセルに各値が表示されていますが、実際にはそれらは互いに「結び付けられています」。

この問題を回避するには、式の結果を手動で並べ替えないでください。OPが既に見つかっているため、「結果は予測不能です」。

QUERYを使用している場合、ORDER BY句を使用して値をソートできます。ソース範囲への参照を保持する別の方法は、SORT関数内でネストQUERYを使用することです。

場合によっては、データのコピー/貼り付け/操作と繰り返しを行う方がより良い方法です。

0
Rubén