私はこれを正確に理解していれば、A
という列をループしたいのですが、そこに設定値がある場合は、B
列の同じ値を探したいとします。これは、ループ内のループの単純な問題です。私は機能を改正している依頼者ごとに:あなたは1つのアレイ
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet()
var values = sheet.getRange(1, 1, sheet.getLastRow(), 2).getValues() //this will get columns A and B until the last row with data into a 2D array
var i, ii;
for (i = 0; i < values.length; i++) {
if (values[i][0] == '') break; // if first column is empty we stop looking for the next one, you can get rid of this
for (ii = 0; ii < values.length; ii++) {
if (values[ii][1] == '') break; //if last entry reached we stop, same as before
if (values[i][0] == values[ii][1]) {
/* This is the part where you do what you want
to do when you find a match, for example change background to red */
sheet.getRange(ii + 1, 2).setBackground('red')
}
}
}
}
EDITで2列があるとしましょう。これは本質的にあなたのif
ステートメントの違いです.Bコラムに何かが存在するかどうかを確認するだけで、最初のループにはif
は必要ありません。私がそこに置いたのは、列Aに3つの項目がありますが、列Bに7つの項目があるとします。逆のシナリオでも同じことです。それ以外の場合は、for
の直後にif
文を取り除くことができます。これは、getLastRow()
がシート上のデータを持つ最後の行を取るために行われます。列Aに3つの値があり、列Bに7の値しかないがC10の値がある場合は、getLastRow() = 10
ということに注意してください。
一致するものがある場合は{{何か}}の値を一致させたいです。例えば、列Bにxが見つかった場合、列Bで{見つかった場合は何か} {何か他のこと}を実行します。私のコードはAからBまでの値と一致していなければなりません。まず、z、x、cなどを探します。それぞれの試合で{何か}する。 – Mask
しかし、値 "A"が列AとBの両方にある場合、または列Aの値が列Bに存在する場合に実行するアクションを定義したい場合は、明示的な処理を行いますか? – Casper
列Aの値が列Bに存在するときに実行するアクションを定義したいだけです。 – Mask