シート 1、2、3 の 3 つのシートがあります。シート 2 と 3 には、名前 (A)、姓 (B)、年齢 (C) の 3 つの列があります。シート 2 と 3 から年齢が 30 歳以上の男性を選択し、年齢順に並べ替えて、結果をシート 1 (これも 3 つの列) に表示するにはどうすればよいでしょうか。つまり、SELECT name,surname,age FROM sheet2,sheet3 WHERE age=>30 ORDER BY age
シート 1 に結果を表示するのと同等のことを意味します。
答え1
Excel は一部の SQL をサポートしますが、Calc はサポートしません。Calc 内でシート 1 に結果を取得するには、複数の手順を実行する必要があります。
シート 2 のヘッダー行を含むテーブル全体をハイライトします。データ → フィルター → 標準フィルターを選択し、ポップアップ ウィンドウでフィールド名Age
、条件>=
、値を選択します30
。フィルターされた結果のテーブル (必要に応じてヘッダー行を含む) をコピーしてシート 1 に貼り付けます。
シート 3 でも同じ手順を繰り返し、結果 (今回はヘッダー行を除く) をコピーして、最初のコピー アンド ペーストの下のシート 1 に貼り付けます。
次に、ヘッダー行を含むシート 1 のテーブル全体をハイライト表示し、[データ] → [並べ替え] を選択して、年齢で並べ替えます。
これを頻繁に行う必要がある場合は、スプレッドシートのデータをデータベース テーブルとして扱えるように、Base ファイルを Calc ファイルに接続する方法を検討する価値があるかもしれません。これはかなり複雑ですが、フィルター/コピー/フィルター/コピー/並べ替えの手順を実行するマクロ コードを考えるよりも手間がかからないと思います。