web-dev-qa-db-ja.com

特定の値に基づいて行の内容を別のシートにコピーする

データのさまざまな行を含むGoogleシートを1つの列(列E)に持っています。各行の値は次のパターンに従います。

A1   
A2  
B1  
B2   
C1  
C2 
etc.

すべての "A"値を含む行を1つのシートにコピーし、 "B"値を別のシートに、 "C"を別のシートにコピーします(他のすべての値についても同様です(元のデータを「マスター」シートに残します)。

これはGoogleスプレッドシートで可能ですか?これまでのところ、私が最も近いのは:

=filter("Sheet1"!A:E,"Sheet1"!E1:E1000="A1")

残念ながらこれは私にはうまくいきません

1
2xtimes
  • _A1, A2, B1, etc._はセル参照ではなく値であり、構文を修正する必要があると仮定します。

    =FILTER(Sheet1!A:E, Sheet1!E1:E=REGEXEXTRACT(Sheet1!E1:E, "A.*"))
  • シート名にスペースが含まれている場合は、次のようになります。

    =FILTER('Sheet 1'!A:E, 'Sheet 1'!E1:E=REGEXEXTRACT('Sheet 1'!E1:E, "A.*"))
  • QUERYを使用することもできます:

    =QUERY(Sheet1!A:E, "where E contains 'A'", 0)
0
user0

あなたはもうほとんどそこにいます。最初に、フィルター入力の「範囲」サイズと「条件」サイズを一致させる必要があります。

FILTER( "Sheet1"!A1:E1000、 "Sheet1"!E1:E1000 = "A1")

次に、E列のコードの文字部分を何らかの方法で抽出する必要があります。これが常に単純な場合は、 [〜#〜] left [〜#〜] を使用して、左端の1つを取得しますキャラクター:

FILTER("Sheet1"!A1:E1000,LEFT("Sheet1"!E1:E1000,1)="A")

AC1、AC2のような複数文字のコードになる可能性がある場合は、代わりに [〜#〜] regexextract [〜#〜] を使用して先頭の文字を抽出できます。 =:

FILTER("Sheet1"!A1:E1000,REGEXEXTRACT("Sheet1"!E1:E1000,"^[A-Z]+")="AC")
0
Joel Reid