私は私の問題を考え過ぎたと思うので、私は最初からやり直しています。2枚のシート間の行を比較する - 機能
私は2つのスプレッドシートを持っています.1つは元のデータベース(org_DB)で、もう1つは更新されたデータベース(new_DB)です。行数は、org_DBでは約15,000、new_DBでは約18,000です。関連する連続する列の数は、両方で正確に14です。
元のデータベースとは異なるnew_DBエントリと追加のすべてのnew_DBエントリのみを含む3番目のシートが結果として必要です。
差異の定義は、差が0より大きい行です。
ADDITIONALの定義は等価のない行です。
「新しいDB」が「org DB」よりも長く、すべての式がorg_DBの終点で失敗するため、私は2つの定義が必要だと思います。 2つのテストは、DBのサイズの
は以下のとおりです。
org_DB
Code 1 Code 2 Code 3 Code 4
AA00001 AAGA 1180218 24
AA00007 AAGA 03821787-97 58
AA00008 AAGA 11821260-99 59
AA00009 AAGA 11001017 60
AA00016 AAGA 3801648 67
AA00017 AAGA 3801649 120
AA00018 AAGA 3801692 66
AA00019 AAGA 03821084-61 70
new_DB
Code 1 Code 2 Code 3 Code 4
AA00001 AAGA 1180218 24
AA00008 AAGA 11821260-99 59
AA00009 AAGA 11001015 60
AA00016 AAGA 3801648 67
AA00017 AAGA 3801649 120
AA00018 AAGA 3801692 69
AA00019 AAGA 03821084-61 70
XX00101 XXGA 1234X567X 101
XX00102 XXGB 1234X567X 101
結果DB(結果は私が探しています)
01私は=filter(new_DB,if(ArrayFormula(sum(--(new_DB=org_DB)))<>4)
通報1点である使用している結果の配列を得るために
=if(ArrayFormula(sum(--(new_DB!A2:D2=org_DB!A2:D2)))<>4,"Copy row","Ignore")
を使用している(行単位で行上で動作)行比較のため
AA00009 AAGA 11001015 60
AA00018 AAGA 3801692 69
XX00101 XXGA 1234X567X 101
XX00102 XXGB 1234X567X 101
FILTER条件引数は、ArrayFormulaから1つの数式結果しか取得できないため、#N/Aで失敗します。 - "FILTERの範囲サイズが一致しません。実際の行数:1、列数:1 "
問題2は、IFが1行とnn列を比較しているときのArrayFormulaのことです。関数全体を別のArrayFormulaにラップすると、さらに奇妙な結果が得られます。
問題3行比較関数をIF ArrayFormulaからSUMPRODUCTに変更すると、ArrayFormulaラッパーで使用すると誤った結果が生成されます。
私がこのメソッドを使用すると、再帰プロセスが非常に長くなる可能性があることがわかります。私のメソッドを受け入れるようになったのは根本的に欠陥があります。列AにはVLOOKUPとFILTERのコンボを使用する必要があります。列Aは実際にはSKU IDなので、常に一意にする必要があります。
誰でも助けてください。 TIA
org_DB行3(AA0007 ...)は結果に含まれていないことに注意してください。熟考する。ここ
テストシート:Test DB Sheet
DIFFERENTとADDITIONALの定義は同等です。各定義に合った行の例を提供してください。 –
[プライマリキー](https://www.techopedia.com/definition/5547/primary-key)である列が14個未満で、列の組み合わせが1つしかありませんか? –
また、コード4が変更されただけでなく、AA00017も表示されるべきですか? –