データ整形:列で複数シートを結合する
必要なOriginのバージョン: Origin 2015 SR0以降
1. wjoinbycol irng:=([Book1]Sheet1,[Book2]Sheet1) condition:="[Book1]Sheet1!A=[Book2]Sheet1!A"
2. wjoinbycol irng:=([Book1]B1,[Book1]B2,[Book2]B1,[Book2]B2) condition:="[Book1]B1!A=[Book1]B2!A=[Book2]B1!A=[Book2]B2!A" unmatch:=1 combine:=0 missing:=1;
スクリプトからXファンクションにアクセスする場合、追加のオプションスイッチについてのページを参照してください。
表示 名 |
変数 名 |
I/O と データ型 |
デフォルト 値 |
説明 |
---|---|---|---|---|
入力ワークシート | irng |
入力 Range |
|
入力ワークシートデータ範囲を指定 シンタックス: ([BookName1]SheetName1!, [BookName2]SheetName2!). |
一致する列 | condition |
入力 string |
|
irngで定義された入力ワークシートと並行して、ワークシートを結合するための一致する列条件を指定します。コネクタとして「=」を使用します。一致する列の全ての値は比較され、一致した行は結果ワークシートで同じ行として結合されます。 完全なシンタックスは: ロングネームが入力シート間で共有されている場合、等号「=」を付けずに、列のロングネームまたはショートネーム(ロングネームが最初の照合に使用されます)のみを入力できます。これは、入力したすべてのシートで指定された名前のすべての列が一致する必要があることを意味します。たとえば、「Time」が一致する列として入力された場合、選択されたすべてのシートの列「Time」のすべての値が比較され、一致した行が結果ワークシートの同じ行として結合されます。ワークシートに列「時間」がない場合、そのシートは削除されます。 |
ソート出力 | sort |
入力 int |
結果シートの計算値の順序を制御します。次の3つのオプションを使用できます。
一致した列を一つに統合が選択されていない場合、一致する列 -- 昇順/降順は、最初のシート順序で列を一致させるのではなく、出力列を並べ替えます。 | |
非一致を削除 | unmatch |
入力 int |
|
一致しない値を削除するかどうか指定します。
|
重複を削除 | multiple |
入力 int |
|
1つの値に対して一致するセルが複数ある場合に使用されるオプションです。最初に一致したデータ行以外を削除するかどうかを指定します。0 = 削除しない, 1 = 削除 multiple が1の場合、結果ワークシートには最初に一致した値のみが含まれます。 |
全ての組み合わせに合致 | combine |
入力 int |
|
1つの値に対して一致するセルが複数ある場合に使用されるオプションです。結果ワークシート中にすべての可能な組み合わせを表示するか指定します。
|
一致した列を1つに統合 | merge |
入力 int |
|
結果ワークシート内の一致した列のみ保持するか指定します。
|
欠損値を考慮する | missing |
入力 int |
|
一致した列の欠損値行を無視するか指定します。
|
データセット識別子 | id |
入力 int |
|
ソースデータセットの識別子を指定します。
0 = なし, 1 = 範囲, 2 = ブック名, 3 = シート名, 4 =インデックスで作成された行番号を使用してデータセットソースを指定, 5 = ソースワークシートのシートラベルを表示 |
インデックス | index |
入力 string |
|
id=4のときに利用できます。識別子のインデックスを指定します。
フォーマットは、開始:増分です。例えば、”1:2”の場合はソースワークシートを1,3,5...として指定します。 |
出力ワークシート | ow |
出力 Worksheet |
|
出力範囲を指定します。シンタックスはこちらです。 |
このXファンクションはLabTalkスクリプトで使用できます。複数ワークシートを結合して1つにまとめます。組み合わせは各入力ワークシート内の一致した列で決定されます。特別なケースでの値の扱いを設定するオプションがあります。例えば、一致列が複数ある場合、一致する値がない場合、欠損値がある場合などです。
2つのワークシートを組み合わせる場合は、列でワークシートを結合するツールを使用することもできます。
一致する列でワークシートを組み合わせる簡単なサンプルです。一致する列のデータは日付です。
// ワークシートが2つのブックを作製 newbook name:="JoinWksEx" sheet:=2 option:=lsname; // Sheet 1のA列に2014/10/1から2014/10/25までのパターンデータを入力 patternD irng:=[JoinWksEx]Sheet1!col(A) from:=2456931 to:=2456955 unit:=day; // Sheet 1mp列Bに行番号を入力 patternN irng:=[JoinWksEx]Sheet1!col(B) to:=25; // Sheet 2の列Aを2014/10/10から2014/10/30までのパターンデータを異なる表示形式で入力 patternD irng:=[JoinWksEx]Sheet2!col(A) display:=19 from:=2456940 to:=2456960 unit:=day; // Sheet 2の列Bに10から30の番号を入力 patternN irng:=[JoinWksEx]Sheet2!col(B) from:=10 to:=30;
// Case 1: デフォルト設定で結合(非一致を削除せず、一致列を一つに統合しない) wjoinbycol irng:=[JoinWksEx](Sheet1,Sheet2) condition:="[JoinWksEx]Sheet1!A=[JoinWksEx]Sheet2!A" ow:=[<new>]<new>; // Case 2: 非一致を削除 wjoinbycol irng:=[JoinWksEx](Sheet1,Sheet2) condition:="[JoinWksEx]Sheet1!A=[JoinWksEx]Sheet2!A" unmatch:= 1 ow:=[<new>]<new>; // Case 3: 一致列を一つに統合しない wjoinbycol irng:=[JoinWksEx](Sheet1,Sheet2) condition:="[JoinWksEx]Sheet1!A=[JoinWksEx]Sheet2!A" merge:=0 ow:=[<new>]<new>;
wappend, wjoinbylabel, Wjoincols
キーワード:統合, 結合