• ベストアンサー

エクセルで関数を用いて数値入力

エクセルでA列に0とそれ以外の数字が入力されています。(下記の画像のように、0以外の数字は飛び飛びに入力されており、それらの数字の間を0が埋めているというイメージです) B列に以下の条件で数字を入力したいのです。 1、A列に0以外の数字が入力されているときは、B列には0を入力する。 2、A列に0が入力されているときには、その行より上で最も近い0以外の数字を入力する。 上記の条件で、B列に関数で数値入力をすることはできますか。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

先頭行のA列がゼロだと「上」が無くて解決できないのですが,まぁそれは置いておいて B1に =IF(A1="","",IF(A1<>0,0,OFFSET(A1,-1,- -(OFFSET(A1,-1,0)=0)))) として下向けにつるつるっとコピーしておくなど。

その他の回答 (3)

noname#204879
noname#204879
回答No.4

  配列数式 B1: {=IF(A1,0,LOOKUP(10^99,IF(A$1:A1,A$1:A1,"")))}

blackleon
質問者

お礼

ご回答ありがとうございました。様々な考え方があることがわかりとても勉強になりました。 回答をいただいた方、皆様に感謝いたします。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 一例です。 A1セルからデータがあるとします。 B1セルに =IF(A1="","",IF(A1=0,INDEX($A$1:A1,MAX(IF($A$1:A1<>0,ROW($A$1:A1)))),0)) これは配列数式になってしまいますので、この画面からB1セルにコピー&ペーストした後に 数式バー内で一度クリック → 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 これをオートフィルでずぃ~~~!っと下へコピーではどうでしょうか?m(__)m

blackleon
質問者

お礼

ご回答ありがとうございました。様々な考え方があることがわかりとても勉強になりました。 回答をいただいた方、皆様に感謝いたします。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

1行目に2の条件は設定できません。ですのでB1は手入力になりますが... 2行目以降なら B2=IF($A2=0,IF($B1=0,$A1,$B1),0)

blackleon
質問者

お礼

ご回答ありがとうございました。様々な考え方があることがわかりとても勉強になりました。 回答をいただいた方、皆様に感謝いたします。