次のスクリーンショットを参照してください。
これは単なる例であり、実際のワークシートはこれよりも複雑で、何百もの行があります。
現在の数式は です=HLOOKUP(A7,A1:D4,2,0)
が、この数式では列を下にドラッグして、トムの「2-Jan-12」と「3-Jan-12」も取得することができません。数式を下にドラッグできるように変更するにはどうすればよいですか?
更新: 試してみました=HLOOKUP($A$7,$A$1:$D$4,2,0)
が、下にドラッグすると、「2-Jan-12」と「3-Jan-12」も 5 が表示されます。数式を下にドラッグして、「2-Jan-12」には 6 が表示され、「3-Jan-12」には 7 が表示されるようにしたいと思います。
答え1
このバージョンをB8でコピーして使用できるように、2も更新する必要があります。
=HLOOKUP(A$7,$A$1:$D$4,ROWS(B$8:B8)+1,0)
ROWS
関数は下にドラッグすると増加し、row_index_num
in がHLOOKUP
3、4 などに変更されます。
注: 上記は実際には日付と一致しておらず、日付に関係なく次の行から値を取得するだけです。日付を具体的に一致させるには、このバージョンを使用します。
=INDEX(B$2:D$4,MATCH(A8,A$2:A$4,0),MATCH(A$7,B$1:D$1,0))
答え2
これがあなたが探しているものかどうかは 100% 確信はありませんが、ドラッグしても単一の列または行が変更されないようにするには、$
それらの前に を追加します。
A1
セルをドラッグする方向に基づいて常に更新されます。$A1
上下にドラッグしたときにのみ行が更新されます。A$1
左/右にドラッグした場合にのみ列が更新されます。$A$1
セルをどのように/どこにドラッグしても、変更されることはありません。
更新された質問について:
セルに対して次の数式をテストしましたB8
。
=HLOOKUP($A$7,$B$1:$D$4,MATCH($A8,$A$1:$A$4,0),0)
は、MATCH
最初の列の日付によって決定される n 番目の行を決定し、その後、 を使用して最初のテーブルから正しい行を選択しますHLOOKUP
。
答え3
これで正解です。私が使用した式は次のとおりです。
=HLOOKUP($B$1,$C$1:$E$4,ROW(),FALSE)
HLOOKUP
列全体を調べて、最初の値 $B$1 を返します (絶対参照を維持するために $ を使用)。検索範囲も絶対値を使用するため、ドラッグして数式を入力するときに「クリープ」しません。関数ROW
は、追加の計算を行わずに同じ行の値を返します。また、データの検証を使用して、既存の検索値の 1 つを使用して $B$1 の検索値を入力し、ドロップダウンで簡単に操作できるようにしました。「ターゲット」値をソース データと同じデータ レイアウト (行と列) に保つことで、すべてが管理しやすくなります (行数でオフセットされている例とは対照的です)。データ レイアウトが適切であれば、Excel ではほとんどすべてのことが簡単になります。
答え4
配列の参照を「修正」する必要があります。=HLOOKUP(A7,$A$1:$D$4,2,0)