Googleスプレッドシートの範囲を結合したいと思います。
例
Sheet1!A:A
{12, 131, 45}
Sheet2!A:A
{12, 131, 46}
未知の機能
=formula_for_union_range(Sheet1!A:A; Sheet2!:A:A)
戻る必要があります
{12, 131, 45, 12, 131, 46}
質問
どうしてそれは可能ですか?
Googleスプレッドシートの範囲を結合したいと思います。
Sheet1!A:A
{12, 131, 45}
Sheet2!A:A
{12, 131, 46}
未知の機能
=formula_for_union_range(Sheet1!A:A; Sheet2!:A:A)
戻る必要があります
{12, 131, 45, 12, 131, 46}
どうしてそれは可能ですか?
使用するだけです:
={sheet1!a:a; sheet2!a:a}
それらを1つの列にマージしてから、一意の値を取得できます。次の式を確認してください。
=UNIQUE({Sheet1!A:A;Sheet2!A:A})
それでも問題はスクリプトについてでした。私はまだ次のコードを正常に使用しています:
function unionRanges(e) {
var result = [];
var length = 0;
var i = 0;
try {
for (i = 0; i < arguments.length; i++)
length += arguments[i].length;
if (length > 3000) return '#BIGRANGE';
for (var i = 0; i < arguments.length; i++)
result = result.concat(arguments[i].filter(function (el) {
return el.join('').length > 0
}));
return result;
} catch (err) {
return JSON.stringify(err);
}
}
ただし、上記のように、{}
-notationを使用する方が簡単です。
={ Sheet1!A1:C10 ; Sheet2!A1:C34 }
垂直連結
={ Range(Cols=N) ; Range(Cols=N) }
水平連結
={ Range(Rows=M) , Range(Rows=M) }
組み合わせることが可能です
={ { , , } ; { , , } }
またはもっと難しい何か
={{{;;},{;;}};{{;;},{;;}};{{;;},{;;}}}
このようなものを試してください
={
{{ 1; 2; 3},{ 4; 5; 6}};
{{ 7; 8; 9},{10;11;12}};
{{13;14;15},{16;17;18}}
}
内部の水平連結は必要ありません
={
{ 1; 2; 3},{ 4; 5; 6};
{ 7; 8; 9},{10;11;12};
{13;14;15},{16;17;18}
}
現在のロケールが,
引数区切り文字としてサポートしている場合;
は、垂直方向の連結と,
水平方向の連結に使用する必要があります。
それ以外の場合、引数の区切り文字はであり、と(スペースなし)をそれぞれ;
使用する必要があります。;
\
'Data 1'!A1:C20
| Name | Date | Sum |
| Ethan | 3/4/2017 | 31 |
| Logan | 3/6/2017 | 62 |
| Brian | 3/26/2017 | 61 |
| ... | ... | ... |
'Data 2'!A1:C20
| Name | Date | Sum |
| Nathan | 3/30/2017 | 53 |
| Alyssa | 3/13/2017 | 72 |
| John | 3/24/2017 | 79 |
| Megan | 3/16/2017 | 10 |
| ... | ... | ... |
={'Data 1'!A1:C20;'Data 2'!A2:C20}
| Name | Date | Sum |
| Ethan | 3/4/2017 | 31 |
| Logan | 3/6/2017 | 62 |
| Brian | 3/26/2017 | 61 |
| ... | ... | ... |
| Nathan | 3/30/2017 | 53 |
| Alyssa | 3/13/2017 | 72 |
| John | 3/24/2017 | 79 |
| ... | ... | ... |
={TRANSPOSE('Data 1'!A1:C20),TRANSPOSE('Data 2'!A2:C20)}
| Name | Ethan | Logan | Brian | ... | Nathan | Alyssa | John |
| Date | 3/4/2017 | 3/6/2017 | 3/26/2017 | ... | 3/30/2017 | 3/13/2017 | 3/24/2017 |
| Sum | 31 | 62 | 61 | ... | 53 | 72 | 79 |
この詳細についてGoogleスプレッドシートで範囲を連結する方法
スクリプトはこれを簡単に行うことができますが、通常のスプレッドシートの数式を使用することをお勧めします。
=transpose(split(join(";";Sheet1!A:A)&";"&join(";";Sheet2!A:A);";"))
重複を削除するには、unique
数式でラップするだけです。
=unique(transpose(...))
そしてソートするには...=sort(...)
最初={Sheet1!A:A; Sheet2!A:A}
は、最初のシートの結果しか見えなかったので、うまくいかないと思いました。空白のセルもすべて含まれていることがわかりました。
重複を保持しながら(とは異なり)、=UNIQUE
自分自身を繰り返さずに(とは異なり)、空白のセルと空のセルを除外するには、次のように=FILTER()
使用できます 。=QUERY()
=QUERY(
{March!A1:Z; April!A2:Z; May!A2:Z},
"select * where Col1 != '' and Col1 is not null",
0)
(最初のシートのヘッダー行を含め、他のシートからは省略していることに注意してください)。
シートに空のテキストを含むセルが含まれていない場合は、を省略できますCol1 != '' and
。
シートを結合してセルが空の行を除外する場合は、数式でFILTER関数を使用します。
=FILTER({Sheet1!A:A;Sheet2!A:A}, {Sheet1!A:A;Sheet2!A:A}<>"")
あなたが持っているとしましょう:
A B C D E F
1: 1 2 3 4 5 6
スライスを行または列として連結することができます。
追加の列(同じ行)には、コンマを使用します。={$A1:$C1,$D1:$F1}
収量:
1 2 3 4 5 6
追加の行(同じ列)には、セミコロンを使用します。={$A1:$C1;$D1:$F1}
収量:
1 2 3
4 5 6