Google スプレッドシート: query で concat を使用する方法
多くの場合、Google スプレッドシートのクエリの結果を 1 行あたり 1 つのセルに連結したい場合があります。
残念ながら、 CONCAT関数をQUERY関数と一緒に使用することはできませんが、次の式を使用してこの機能を再現できます。
=ARRAYFORMULA(
SUBSTITUTE(
trim(transpose(query(transpose( your_query ),,COLUMNS( your_query ))))," "," _ ")
)
この特定の数式では、 _ を区切り文字として使用してクエリ結果を連結しますが、この区切り文字は必要に応じて変更できます。
次の例は、この公式を実際に使用する方法を示しています。
例: Google スプレッドシートで CONCAT と QUERY を使用する
Google スプレッドシートに次のデータ セットがあるとします。
次の数式を使用して、名に「Andy」が含まれる行を検索し、行ごとに 1 つのセルで名、ミドル ネーム、姓を連結します。
=ARRAYFORMULA(
SUBSTITUTE(
trim(transpose(query(transpose(query( A:C , " select * where A contains 'Andy' ")),,COLUMNS(query( A:C , " select * where A contains 'Andy' ")))) ),," "," _ ")
)
次のスクリーンショットは、この式を実際に使用する方法を示しています。
このクエリでは、名に「Andy」が含まれ、名、ミドルネーム、姓がすべてアンダースコア_を区切り文字として使用して行ごとに 1 つのセルに連結されている行のみが返されることに注意してください。
別の区切り文字を使用するには、式の最後の「 _ 」を別の区切り文字に置き換えるだけです。
たとえば、次のスクリーンショットは、スペースを区切り文字として使用する方法を示しています。
この場合も、クエリは名に「Andy」が含まれ、名、ミドルネーム、姓がすべてスペースを区切り文字として使用して行ごとに 1 つのセルに連結されている行のみを返します。
追加リソース
次のチュートリアルでは、Google スプレッドシートで他の一般的なタスクを実行する方法を説明します。
Google スプレッドシートのクエリ: クエリで「等しくない」を使用する方法
Google スプレッドシートのクエリ: 一意の行のみを返す方法
Google スプレッドシートのクエリ: クエリで複数の条件を使用する方法