エクセル(Excel)で空欄ならその上の列の数値(データ)を参照して最も最初のセルのデータをを参照するには?
空欄ならその上、またそのセルが空欄ならその上…のような感じで値を参照・取得する関数はないんでしょうか?
ある行のセルがブランクの場合、別の行のセルの数値を参照させるやり方は?
エクセルで空白なら上のセルを参照・取得するする関数・やり方は?
エクセル(Excel)で空欄ならその上の列の数値(データ)を参照して最も最初のセルのデータをを参照するには、INDEX関数を使って
「=INDEX(A:A,COUNT(A:A))」
とすればA列の最下行の数値を返す関数となります。
上記数式ではA列に数値が全く入力されていない場合には0が返るので、A列に数値が全く入力されていない場合には “” を返すようにするには、
「=IF(COUNT(A:A),INDEX(A:A,COUNT(A:A)),””)」
とします。
また、途中にも未入力セルがある場合に最下行の数値を返すには、
「=INDEX(A:A,MATCH(MAX(A:A)+1,A:A,1))」
とします。
MATCH関数は、MATCH(検査値, 検査範囲, 照合の型)という引数をとります。
[照合の型]では、 -1、0、1 の数値のいずれかを指定します。この[照合の型]で、[検査範囲]の中で[検査値]を探す方法を指定しています。
照合の型 に 1 を指定すると[検査値]以下の最大の値が検索されます。このとき[検査範囲]は、-2、-1、0、1、2、…、A、…、Z、…、ア、…、ン、…、FALSE、TRUE のように昇順で並べ替えられておく必要があります。
つまり、[検索範囲]内の最下行からチェックしています。
ここで、
・昇順に並べ替えをせず
・[検査値]を[検査範囲]内の最大値の+1
としておくと、今回の式のように最下行に入力された数値を返します。
ちなみに、次のような表でG3の「重量」を計算(E列の質量とG列の数量を掛け算)させたい場合。
■ | A | B | C | D | E | F | G |
1 | コード | 品目名 | 数量 | 価格 | 重量 | ロット# | 数量 |
2 | ABC | あいう | 207 | 100 | 10 | – | – |
3 | – | – | – | – | – | ABC1234 | 40 |
4 | – | – | – | – | – | ABC1235 | 45 |
5 | – | – | – | – | – | ABC1236 | 40 |
6 | – | – | – | – | – | ABC1237 | 42 |
7 | – | – | – | – | – | ABC1238 | 40 |
8 | GHI | かきく | 20 | 150 | 15 | – | |
9 | – | – | – | – | – | GHI6666 | 20 |
10 | DEF | えお | 95 | 80 | 5 | – | |
11 | – | – | – | – | – | DEF9876 | 30 |
12 | – | – | – | – | – | DEF9877 | 50 |
13 | – | – | – | – | – | DEF9878 | 35 |
I列を「重量」としてH2セルには次の式を入力して下方にドラッグコピーすればよいでしょう。
「=IF(G2=””,””,LOOKUP(10^10,E$2:E2))」
LOOKUP(10^10,E$2:E2)の式で常にE列で該当するG列の行数以下(上の行)の行で最下行のE列の値を求めることができます。