2

Google スプレッドシートを使用するのはこれが初めてで、関数で何かを達成しようとしています。私はそれがjavascriptであることを知っています(私が完全に慣れていない言語)。2 つのテーブルから範囲を取得し、それぞれの交差位置を取得して、既に存在するはずの行の欠損値を埋めようとしています。

たとえば、次の 2 つのシートがあるとします。

Sheet1
+-----------+----------+--------+---------+
|   Fruit   |  Color   | Weight | isApple |
+-----------+----------+--------+---------+
| Banana    | Yellow   |      3 | no      |
| Orange    | Orange   |      3 | no      |
| Apple     | Red      |      2 | yes     |
| Pineapple | Brownish |      5 | no      |
+-----------+----------+--------+---------+
Sheet2
+-----------+----------+--------+---------+
|   Fruit   |  Color   | Weight | isApple |
+-----------+----------+--------+---------+
| Banana    |          |        |         |
| Apple     |          |        |         |
| Pear      |          |        |         |
| Watermelon|          |        |         |
+-----------+----------+--------+---------+

Fruit の行の交点を見つけて、わかっているそれぞれの色、重さ、isApple を入力したいと思います。

の交点を取得するために動作するはずだと確信しているものを書きましたがrange1、何らかの理由で空の配列を返します。これを Apps Script Editor でテストすると、問題なく動作するようです。

//assuming range1 = Sheet1!A2:A5 and range2=Sheet2!A2:A5
function intersection(range1, range2) {
  var i = 0;
  var j = 0;
  var matches = new Array();

  while(i < range1.length){
    if(range2.toString().includes(range1[i].toString())){
      matches.push(i);
    }
    i++
  }
  return matches;
}

[0,2]0 番目の要素 Banana と Sheet1 の 1 番目の要素 Apple がシート 2 に存在するため、これは の配列を返すと予想されます。

次に、そのデータを使用して、Sheet2 の情報から Apple と Banana の行を埋めます。

シートで交差点を見つけることさえできないように見えるので、私はまだその 2 番目の部分に達していません。

私の最終目標の期待される出力は、シート 2 が次のように変更されることです。

Sheet2
+-----------+----------+--------+---------+
|   Fruit   |  Color   | Weight | isApple |
+-----------+----------+--------+---------+
| Banana    | Yellow   |      3 | no      |
| Apple     | Red      |      2 | yes     |
| Pear      |          |        |         |
| Watermelon|          |        |         |
+-----------+----------+--------+---------+
4

1 に答える 1