ここから本文です

エクセルのROW関数がイマイチ分かりませんので教えて下さい。 A12:G18に範囲を...

eco********さん

2018/6/2315:34:39

エクセルのROW関数がイマイチ分かりませんので教えて下さい。

A12:G18に範囲をかけてD23に「5」を入力すると自動的にD14:E18と同じデータ が表示する関数はありますか?

D25~E29にISSER?関数を作ればよいですか?

補足回答者の関数の案が複雑で模索中・・。

回答者のようにエクセルの関数を解るようにするには何か策はありますか?
EXCEL最強の教科書の本を参考するとか。

D25,関数,ISSER,G14 MATCH,A12,D23,D14

閲覧数:
237
回答数:
6
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

アバター

ID非公開さん

2018/6/2607:24:07

ROW(A1)
とか使うのは、フィルコピーしたときに
ROW(A2)
ROW(A3)
ROW(A4)

となって、1,2,3,4,...という数字を得られるという意味です。
定番の方法ではありますが、こういう本来の用途とは違う使い方を、何の解説もなしに示しているようなサイト(?)の記事はあまり参考になさらない方がいいかもしれません。

>回答者の関数の案が複雑で模索中・・。
>回答者のようにエクセルの関数を解るようにするには

個人的な意見としては、ちょっと方向が違うのではないかと思います。

本件の場合、検索元の表と、出力する表で、A,B,C,D,Eという並びは同じなのですから、行方向の検索をする必要はありません。
あまり複雑に考えすぎない事が大切です。問題の本質をシンプルに考えましょう。


たしかにいろいろな関数を知っていれば、より簡単に数式を作れます。
しかし、実際には、いろんな関数を知っている事よりも、自分の知っている関数の中で、それをどう組合わせるか、これを考えるのが大事です。
そういうのは教科書に書いてあるような事ではないと思います。

表引きなので、INDEX関数あるいはLOOKUP系の関数、MATCH関数などを知らないとどうにもなりませんが、これは関数ウィザードで、分類「検索/行列」の中から使えそうなものがないか探すことでなんとかなります。

私ならD25セルに

=T(INDEX(B14:G14,MATCH($D$23,$B$12:$G$12)))
もしくは
=INDEX(B14:G14,MATCH($D$23,$B$12:$G$12))&""

として、D25:E29の範囲にコピーします。
相対参照・絶対参照を理解していれば、これだけで十分な話であって、トリッキーなROW関数の使い方をする必要はないです。


なお、

=INDEX(B14:G14,MATCH($D$23,$B$12:$G$12))

だけだと、空白セルだった場合に数値に変換されて、 0 になってしまうため、文字列にするためT関数、あるいは文字列の結合を使っています。

ROW(A1)
とか使うのは、フィルコピーしたときに
ROW(A2)
ROW(A3)
ROW(A4)
:...

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜5件/5件中

並び替え:回答日時の
新しい順
|古い順

maronさん

2018/6/2317:25:46

◆ROW関数を使っていませんが
D25=VLOOKUP($C25,$A$14:$G$18,MATCH($D$23,$A$12:$G$12,0)+(D$24="なし"),0)&""
★右と下にコピー

◆ROW関数を使っていませんが...

mike22ymdさん

2018/6/2317:06:38

D25 に次式を入力して此れを右隣および下方にオートフィルすればよろしいかと。
=OFFSET($A$12,ROW(A2),MATCH($D$23,$12:$12,0)+COLUMN(A1)-2)&""

non********さん

2018/6/2316:33:48

D25に、
=INDEX($A$12:$G$18,MATCH($C25,$A$12:$A$18,0),MATCH($D$23,$A$12:$G$12,1))
E25には、
=INDEX($A$12:$G$18,MATCH($C25,$A$12:$A$18,0),MATCH($D$23,$A$12:$G$12,1)+1)

参照元が空白セルの時「0」が返されますが、この「0」を表示したくない場合は、
D25:E29を選択してセルの書式設定を開き、
表示形式をユーザー定義にして種類に、
0;;
と打ち込んでください。

なお、ROW関数がよくわからないという事なのでご説明します。
ROWは行番号を返す関数です。
ですので、=ROW()だと、これを入れている行の番号を返すます。
これを使い、特定の行番号を出したい場合に、セルを充てます。
=ROW(A1)や、ROW(B1),ROW(G1)もどれも1行目ですので、どれも「1」が返ります。
=ROW(A15)だと「15」、=ROW(B6)だと「6」という具合です。
今回の場合、これを使うとしたら、C25:C29ですね。
C25に、
=INDEX($A$14:$A$18,ROW(A1))
として下へオートフィルすると、
=INDEX($A$14:$A$18,ROW(A2))
=INDEX($A$14:$A$18,ROW(A3))


と、INDEXの行数に充てることで、1、2、3~~と増えていくので一つの数式で自動化できるという事になります。

ついでに、同様に横へ増やす場合は、COLUMNを使います。
これは、A列「1」、B列「2」、C列「3」~~~になります。

all********さん

2018/6/2316:27:37

D25
=IFERROR(OFFSET($A$13,ROW(A1),MATCH($D$23,$B$12:$G$12,0)+COLUMN(A1)-1)&"","")
右方向・下方向にコピー


http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/row.htm

D25...

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

mit********さん

2018/6/2316:04:36

D25セルには次の式を入力してE25セルまで横にドラッグコピーしたのちに下方にも(29行目まで)ドラッグコピーすればよいでしょう。

=INDEX($B$14:$G$18,ROW(A1),MATCH($D$13,$B$12:$G$12,0)+COLUMN(A1)-1)&""

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる