- ベストアンサー
Excelにおけるセルの参照方法について
少し複雑なセルの参照方法について、分からなくて困っています 例えば、A1~K1 A2~K2 A3~K3 A4~K4 にある値が入力されているとき、 A10に[=A1]と入力した場合は、隣のB10にD1の値を、C10にG1の値を、D10にJ1の値が出力され、 A10に[=A2]と入力した場合は、隣のB10にD2の値を、C10にG2の値を、D10にJ2の値が出力され、 以下[=A3][=A4]の場合も同様に出力されるようにするためにはどうすればよいのでしょうか? 関数の組み合わせなどで解決できるのでしょうか?実際にはもっと膨大なデータを処理しなければならず、現在は手入力で非効率的な作業を行って困っています(^^;)どなたかご教授お願いしますm(__)m
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
通常の運用で、セルにデータを入れる為に数式を入力するのはお勧めしません。 多分A1~A4にあるデータの中のどれかを、A10に入れたいための措置だと推察します。 ならば、A10に「入力規則」を設定すべきです。 A10を選択し、「データ」-「入力規則」で表示されるパネルの「設定」タブをクリックします。 「入力値の種類」ドロップダウンリストから「リスト」を選択。 「元の値」ボックスに「=$A$1:$A$4」と入力し、「OK」ボタンを押します。 これで、A10をポイントする(アクティブセルにする)と、セルの右に「▼」マークが表示されます。 この「▼」マークをクリックするとA1~A4の値がリストされるので選択します。 あとは、多分A1~A4に同じ値は無いと推察されるので、 B10には、 =IF(A10<>0,VLOOKUP(A10,$A$1:$D$4,4,TRUE),0) C10には、 =IF(A10<>0,VLOOKUP(A10,$A$1:$G$4,7,TRUE),0) D10には、 =IF(A10<>0,VLOOKUP(A10,$A$1:$J$4,10,TRUE),0) とします。 A10に値が入っていないときに、B10~D10に0を表示したくなければ、 B10~D10の表示書式に「#;-#;」と設定します。
その他の回答 (3)
- mshr1962
- ベストアンサー率39% (7417/18945)
A1からA4に同じ値がないならこんな方法もあります。 B10=IF(COUNTIF($A$1:$A$4,$A10),VLOOKUP($A10,$A$1:$K$4,COLUMN()*3-2,FALSE),"") でD10まで右にコピー 行番号を入れるセルを使っていいならもうひとつ A10=INDEX($A$1:$K$4,$E10,COLUMN()*3-2) でD10まで右にコピー
お礼
前者の方法でしたら、行番号を入力しなくても出力させることができますね! A1~A4までで同じ値はないのでこの方法も有効に使えそうです ありがとうございました
- maron--5
- ベストアンサー率36% (321/877)
◆こんな方法もありますよ ★#1さんの回答と同じく、E10 に参照の行番号を入力するものとします A10=OFFSET($A$1,$E$10-1,(COLUMN(A1)-1)*3) ★右にコピー
お礼
こちらもNo1さんと同様に今後様々な場面で活用できそうですね 勉強になります ありがとうございました
- benelli
- ベストアンサー率51% (78/152)
勝手にセルE10を使用してよいと仮定しますが…… セルA10に「=INDIRECT("A" & $E10)」 セルB10に「=INDIRECT("D" & $E10)」 セルC10に「=INDIRECT("G" & $E10)」 セルD10に「=INDIRECT("J" & $E10)」 と入力して、セルE10に1~9の数字を入れるようにするのはどうですかね? 数式データから直接文字を読むのは不可能ではないですが大変なので、ちょっと妥協してこのようにするのが一番簡単かと思います。
お礼
なるほど、シンプルで非常にわかりやすいですね! 応用がききそうなので今後の整理方針のひとつとして利用させていただきます ありがとうございました
お礼
リスト化したら大変整理しやすく、また欲しい値が右側のセルに一挙に出力されて非常に便利ですね いただいた回答の中でこちらが最も用途に適していたのでこの方法を採用させていただきます! ありがとうございました