• ベストアンサー

エクセルの関数を教えてください

A1からAE1に日付としまして数字の1から31を入れます A2からAE2の任意のセルに○がいくつか入ります このとき例えばE2、J2、O2のセルに○があったときのA1からAE1の値(日付)を A3に最初の日付(5)と、A4に最後の日付(15)を表示させたいのですが どの関数で求められるか分かりませんのでどなたかご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.5

質問の条件だけなら、 A3 =IF(COUNTIF(A2:AE2,"○"),MATCH("○",A2:AE2,0),"") A4 =IF(COUNTIF(A2:AE2,"○"),MATCH("あ",A2:AE2),"") だけで、できるが。

100POINT
質問者

お礼

A4の MATCH("あ",A2:AE2),"") の意味が理解できませんが 無事数字がはまりまして、シンプルな数式でしたので こちらのokormazd様の解答を活用させていただきます ありがとうございました

その他の回答 (4)

回答No.4

LOOKUP関数を使って「○」で検索する実験してみたところ、ちょっと動きがおかしいようです。Excel2007です。 A3セルに「=LOOKUP("○",A2:AE2,A1:AE1)」と入力しました。○印を入力する位置と、その場合にLOOKUPが返す結果は、次のようになりました。 ●日付5、15    の下に○……計算結果 15 ●日付10、15    の下に○……計算結果 10 ●日付5、10、15  の下に○……計算結果 10  ←質問文どおりの位置 ●日付5、10、15、20の下に○……計算結果 20 ●日付5、10~13、15の下に○……計算結果 13 ●日付5、10、12~15の下に○……計算結果 10 ●日付5、10~15  の下に○……計算結果 15 やれやれ、なぜなんでしょうね^^;ほんとは全部、右端の数字を求めてほしいわけですが。これじゃちょっと、使えないかな…。 1行目と2行目の順番を入れ替えて、HLOOKUP関数のTRUEで検索しても、同様の結果になるようです。(HLOOKUPでは行の順番に制約があります)列ベクトルにしてVLOOKUP関数でもダメでした…。 ○印の代わりに「1,2,3,...」という自然数の数列を入力し、「=LOOKUP(4,A2:AE2,A1:AE1)」という式で検索すると、「15」という正しい結果が出ました。HLOOKUP、VLOOKUPでも同様。 No.2さんが書かれた「ー」で検索すれば、正しい答えが出るようです。「あ」でも「A」でも、できそう。つまり「=LOOKUP("あ",A2:AE2,A1:AE1)」のように入力します。ところが、「あ」が記入されている範囲を「A」で検索しようとすると、エラーになったりします…。 この辺りは、定かなことは分かりません。文字コードが関係しているのは確かでしょうけど。うわさ話を次のページで見付けたので、ご関心があれば、ご覧ください。 http://www.efcit.co.jp/cgi-bin2/exqalounge.cgi?print+200808/08080086.txt http://www.excel.studio-kazu.jp/kw/20060126132240.html 次のような式を書けば、確実に右端の文字を取ってきてくれると思います。 =lookup(9^9,code(a2:ae2),a1:ae1) ただ、2行目に「○」だけでなく「×」も記入するという場合、「○」と「×」を区別することはできません。

100POINT
質問者

お礼

解答ありがとうございました

noname#204879
noname#204879
回答No.3

A3: {=MIN(IF(A$2:AE$2="○",(A$1:AE$1)*(A$2:AE$2="○"),""))} A4: {=MAX((A$1:AE$1)*(A$2:AE$2="○"))} 【注】何れも配列数式

100POINT
質問者

お礼

解答ありがとうございました

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

A2セルには =IF(COUNTA(A2:AE2)=0,"",INDEX(A1:AE1,MATCH("○",A2:AE2,0))) A3セルには =IF(COUNTA(A2:AE2)=0,"",INDEX(A1:AE1,MATCH("ー",A2:AE2))) MATCH関数内のーは必ずひらがな入力モードでーを半角モードの-ではありません。

100POINT
質問者

お礼

解答ありがとうございました

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

A3には =IF(COUNTIF(A2:AE2,"○"),INDEX($A$1:$AE$1,MATCH("○",A2:AE2,0)),"") A4には =IF(COUNTIF(A2:AE2,"○"),LOOKUP("●",A2:AE2,$A$1:$AE$1),"") のようにすることができます。

100POINT
質問者

お礼

解答ありがとうございました

関連するQ&A