- ベストアンサー
横方向の表から条件のあう最も左よりのセルの値を返す方法
- 横方向の表から条件のあう最も左よりのセルの値を返す方法について知りたいです。
- 具体的に、2行11列の横の表で、1行目の値が1の場合、2行目のセルから最も左のセルの値を返す方法を教えてください。
- 表は2行45列あり、全体で72個のセルがあります。複数の関数を使用する場合は、できるだけ小分けにしてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
=hlookup(1,A1:K2,2,)
その他の回答 (2)
- KURUMITO
- ベストアンサー率42% (1835/4283)
表が2行一組で72個あるとのことですがA列からAS列までにデータが有るとします。 AU列にお望みの値を、それぞれの表の1行目に表示させるとしたら、次の式をAU1セルに入力して下方にドラッグコピーします。 =IF(A1="","",IF(AND(A1=0,COUNTIF(A1:AU1,">1")=0,A2<>""),INDEX(A2:AU2,MATCH(1,A1:AU1,0)),"")) 式の意味はA1セルが空ならば空白にしなさい、A1セルに0が有ってしかもA1セルからAU1セルの間には1より大きい2以上の数値が無く、また、A2セルが空でない場合にはMATCH関数でA1セルからAS1セルまでの間で1の数値が最も左側のセルで検出された列の位置を求め、INDEX関数を使てA2セルからAS2セルの間にあるMATCH関数で求めたその列での値を表示しなさいという意味になります。勿論A1セルが0以外やA2セルが空などの場合にはお示しの表の条件を満足していませんので空の表示となります。 MATCH関数は同じ1の数値が並んでいる場合などに列の左側から検索し最も左側の列番号を求める関数です。 COUNTIF(A1:AU1,">1")はA1セルからAU1セル範囲に2以上の数値が無い場合に0になります。 上の式のANDの条件で1行目に相当する行であることを確認して2行目の値を求めることにしています。したがって72個の表が連続した状態でAからAU列の下方に有っても、あるいは各表の間には空白の行が有ったとしても問題なくAU列に答えが表示されます。
お礼
できました! 『AND(A1=0,COUNTIF(A1:AU1,">1")=0,A2<>"")』 この意味は、 『A1セルに0が有ってしかもA1セルからAU1セルの間には1より大きい2以上の数値が無く、また、A2セルが空でない』 この部分、とても勉強になりました。 ありがとうございました。
お礼
できました! ありがとうございました!