こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Excelで空白の場合に他の欄を参照したい

Excel2010を使っています。
数式を作る時に、対象となるセルが空白なら下の欄を参照していくにはどうしたらいいでしょうか?

(1)「K2」に○が入っていれば「H2」の内容を「A2」に表示する
(2)「K2」が空白なら【K欄でK2の次に○が入っている行のH欄の情報をA欄に表示する】

この様な式を作りたいのですが(2)の【 】の部分をどうすればいいのかが分かりません。
もしやり方をご存知の方がいらっしゃいましたら教えて下さい。




具体的には出席者リストの作成ですが、元となる顧客情報のリストがExcelで作ってあります。
その中から出席する対象者のデータのみ別シートの表に表示したいのです。

上記の式は出欠欄(K2)に○があれば別シートの氏名欄(A2)に氏名(H2)を表示したいのですが、その人が欠席(空欄)であれば次の出席者の氏名をA2欄に表示したいという意味です。
(K2の次に出席の○があるのがK5なら、H5にある氏名をA2に表示したい)

分かりにくくて申し訳ありませんが、ご助力よろしくお願い致します。

投稿日時 - 2014-05-20 18:37:23

QNo.8603453

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

ご質問の直接の回答としては
=INDEX(H2:H99,MATCH("○",K2:K99,0))
のような数式をお薦めします。

INDEX以外,OFFSETとかINDIRECTなどの関数も利用できますが,ブックを開いて何もせず閉じただけでも「保存しますか」と聞いてくる原因になります。




ただし。
>その中から出席する対象者のデータのみ別シートの表に表示したい

実際にはご質問で書かれているのはとても言葉足らずで,もっと違う次のようなやり方をお薦めします。

【簡易版】
B列に
B2:
=IF(K2="○",COUNTIF(K$2:K2,"○"),"")
と記入,リスト下端までコピー

○な人のH列の一覧は
=IFERROR(VLOOKUP(ROW(A1),B:H,7),"")
以下コピー
のようにします。

どーしてもB列を汚したくないなら,もっと目立たないZ列とかに1,2,3…を計算するA列の代わりに式を並べ,最初に回答したINDEX(MATCH())で1,2,3…を持ってくるのでもできます。

投稿日時 - 2014-05-20 19:24:48

ANo.1

とりあえずこんな式でいいんじゃないでしょうか。
=IFERROR(OFFSET(H1,MATCH("○",K2:K100,0),0),"")

「K2」が空白なら…ではなく、K2:K100の間で最初に○がある行のH列の値を表示しています。
K2:K100は、実際の範囲に合わせて変えてください。

投稿日時 - 2014-05-20 18:50:43

あなたにオススメの質問