ArrayFormula関数で、番号振りを自動化する方法【スプレッドシート、Row関数】


こんにちは、Forkusです!

今回は、ArrayFormula関数を使って、品番や日数振りを自動化する方法をご紹介します。

お題はこちら↓

こんな風に、品名入力したら品番や出荷日も自動入力されたらいいのに….
実はこれ、ArrayFormula関数に少し工夫を加えるだけで簡単に実現できます!

1. ArrayFormulaとRow関数で、自動連番する


優しい先生
まずは、品番の入力の方法から見ていきましょう。Row関数を使います。

Row関数のおさらい

  1.  Row関数のつくりかた
  2. = Row(行番号を調べたいセル)

  3.  今回のケースでは?
  4.  Row関数は、そのセルが在る行(row)数を返します。A1であれば、1行目ですから、「1」を返します。


  5.  範囲をセットして、後はArrayFormulaで包むだけ
  6. = ArrayFormula(ROW(A1:A8))

     ArrayFormulaは以下の方法でも入力できます。

    Windows Ctrl + Shift + Enter  | Mac  + Shift+ Enter


  7.  セルA3に、 を入力しよう
  8.  範囲を(A1:A8)にしていますが、もし品番が1000個ある場合は(A1:A1000)としましょう。


優しい先生
次は、中央の品名がある時だけ、品番が表示されるようにする方法をみていきましょう。

2. If + Isblank関数で「もし品名が空白なら、品番も非表示」を実現


優しい先生
Isblank関数は、検索セルが空白ならTrue(はい)を、空白でなければFalse(いいえ)を返します。 「セルが空白」=「品名が未入力」なので、見分けるのに最適です。If関数を組み合わせれば、「空白かどうか」に応じて対応を変えることが出来ますね。

If + Isblank関数の使い方

  1.  IfとIsblank関数のつくりかた
  2. = If(① はい・いいえで答えられる質問式 ② 答えがはいの時セルに求める動作 ③ いいえの時)
    = Isblank(「空白ですか?」という質問をぶつけたいセル)

  3.  今回のケースでは?

  4.  上を参考に、If関数とIsblank関数を組み合わせよう
  5.  = If(Isblank(B3:B10),””,Row(A1:A8)) 
     「””」= 空欄


  6.   の先頭にArrayFormulaをつけて、A3に入力しよう

優しい先生
これで、品名が入力されると品番(Row関数)が振られる一方で、品名が入力されていない時は空白セル(””)のままにすることが出来ましたね。

3. 出荷日に関しても同様


優しい先生
1章で利用したRow関数にDate関数を組み合わせるだけで、出荷日も同じく品名に応じて表示されるようになりますよ。

Date関数の使い方

  1.  つくりかた
  2. = Date(年,月,日)

  3.  Row関数とDate関数を一緒に使おう
  4.  = ArrayFormula(If(Isblank(B3:B10),””,Date(2019,2,1)+Row(B1:B8)-1)) 

  5.  なぜRow関数の後ろに「-1」をつけるの?
  6.  Row関数は、そのセルがある行数を返します。「B1」はB列の1行目ですから、返し値は「1」です。つまり「Date(2019,2,1)+Row(B1)-1」は、「(2019/2/1)+1-1=(2019/2/1)」のことです。
    Row関数単体では、「1,2,3,4…」のようになりますが、Date関数に足しあげる形で、「(2019/2/1)+1,2,3,4…」とすることで、1日づつ逓増する表現を可能にしているのですね。



  7.   をC3に入力しよう

優しい先生
今回は以上となります。お疲れ様でした。無事、品名の入力に応じて、品番と出荷日が自動入力されるようになりましたか?