エクセルで左から始めて、最初にゼロ以上の値になるセルの位置を出すには、どんな関数がありますでしょうか?ご教授願えませんでしょうか
a,b,c,d,e,f ,g,h,i, j
---------------
0,0,0,1,0,0,5,2,1,0 - この場合、D1の"1"を表示させたい
0,1,2,1,3,4,1,0,0,1 - この場合、B2の"1"を表示させたい
0,0,0,0,1,2,4,5,1,2 - この場合、E3の"1"を表示させたい
急ぎでよろしくお願いいたします。
エクセル2010
です。
結果を格納したい列に以下の式を入れて下方向にコピー。
=INDIRECT(CHAR(SUMPRODUCT(LARGE((A1:J1>0)*COLUMN(A1:J1),COUNTIF(A1:J1,">0")))+64)&ROW())
元ネタは下記で、私がINDIRECT関数を付け加えました。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1114542331
結果を格納したい列に以下の式を入れて下方向にコピー。
=INDIRECT(CHAR(SUMPRODUCT(LARGE((A1:J1>0)*COLUMN(A1:J1),COUNTIF(A1:J1,">0")))+64)&ROW())
元ネタは下記で、私がINDIRECT関数を付け加えました。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1114542331
一日置いてみたのですが、申し訳ない。ギブアップです。
お忙しいところ、ご検討いただき誠にありがとうございました。
機会がありましたら、今後ともよろしくお願いいたします。
回答になっていないので書くのが憚られたのですが何か解決の役に立てばと書き込みをさせて頂きます。
=IF(A1=0,IF(B1=0,IF(C1=0,IF(D1=0,IF(E1=0,IF(F1=0,IF(G1=0,H1,G1),F1),E1),D1),C1),B1),A1)
例えば1列目なら表示させたいセルに上記のようにA1が0ならB1が0ならというようにIF関数を重ねて組み合わせてみてはいかがでしょうか?
上記ではH1までしかやっていませんが上手くいじくれば応用できるような気がします。
誠にありがとうございます。参考にさせていただきます。
Function GetPoint(a As Range) Dim c As Range For Each c In a If c.Row = a.Row Then If Cells(c.Row, c.Column) <> "" Then If Cells(c.Row, c.Column) > 0 Then GetPoint = Cells(c.Row, c.Column) Exit Function End If End If End If Next c End Function
ユーザー関数を作ってみました。
標準モジュールに ソースを入れてください。
使い方は セルに
=GetPoint(A1:E1)
というように 入れてください。
なお Rangeで範囲指定しますが、最初の行のみチェックします。
つまり
A1:E2と入れても A1:E1と同様のチェックのみしか 行わないということです。
誠にありがとうございます。参考にさせていただきます。
一日置いてみたのですが、申し訳ない。ギブアップです。
2013/03/20 21:53:00お忙しいところ、ご検討いただき誠にありがとうございました。
2013/03/25 16:51:23機会がありましたら、今後ともよろしくお願いいたします。