基本的にニードルヘイスタックタイプの機能を再現するために構築した次のカスタム関数があります
function ListBy (Range, Range2, needle) {
var holder = [];
if(typeof Range != 'object') {
throw "expected Range for input saw" + typeof Range;
return false;
} for(var i = 0; i < Range.length; i++) {
if(Range[i] == needle) {
holder.Push(Range2[i]);
}
}
return holder;
}
このスクリプトは、たとえば1つのシートで実行すると完全に機能します。
=ListBy(A1:A5, B1:B5, "needle");
しかし、私が別のシートからデータを渡そうとすると
=ListBy('sheet1'!A1:A10, 'sheet1'!A1:A10, "needle")
範囲エラーの参照を取得します。なぜそうなるのでしょうか?
シート参照に単一引用符を追加しました。
=ListBy('sheet1'!A1:A10, 'sheet1'!A1:A10, "needle")
それらを残す場合:
=ListBy(Sheet1!A1:A10, Sheet1!A1:A10, "needle")
その後、スクリプトは計画どおりに機能します。
Sheet2:
シート1: