• 締切済み

連続しない範囲で一番右に値のある一番上のセル

連続しない範囲で一番右の値のある一番上のセルの関数 エクセルの関数について教えてください。 下記表のようにGX列に、連続しない特定の範囲 (R4,AD4,AP4,BB4,BN4,BZ4,CL4,CX4,DJ4,DV4,EH4,ET4)で 「い」列の一番右に値のあるセルの年月を表示させる方法はありますでしょうか? 非表示のセルにも数値が入っていたり、2行目には「い」列があったりします。 年月はセルの結合をしています。 いろいろ調べて試してみたのですが、うまくいきませんでした。 何卒、ご教授よろしくお願い致します。

みんなの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 まず、GX4セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/DAY(INDEX($1:$1,SUMPRODUCT(MAX(COLUMN($Q$2:$GW$2)*($Q$2:$GW$2=$GX$1)*($Q4:$GW4<>"")))-MATCH($GX$1,$2:$2,0)+COLUMN($Q$1)))),LOOKUP(9E+99,$Q$1:INDEX($1:$1,SUMPRODUCT(MAX(COLUMN($Q$2:$GW$2)*($Q$2:$GW$2=$GX$1)*($Q4:$GW4<>""))))),"")  そして、GX4セルをコピーして、Gx5以下に貼り付けて下さい。  以上です。

razzrazzrazz
質問者

お礼

参考になりました。ありがとうございました。

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

1行目の2013年4月の表示は数式バー上では2013/4/1のようになっていることでしょう。そのようにシリアル値として入力されているとします。 GX4セルには次の式を入力し、式を確定する段階でCtrlキーとShiftキーを押しながらEnterキーを押します。式の両側には{  }が付いた式となります。 その式を下方にドラッグコピーします。 =IF(ISERROR(INDEX(Q$1:EV$1,MAX((Q$2:EV$2=GX$1)*(Q4:EV4<>"")*COLUMN(A1:EF1)*(OFFSET(Q$1,0,1-MATCH(GX$1,Q$2:T$2,0)):OFFSET(EV$1,0,1-MATCH(GX$1,Q$2:T$2,0))>40000))-MATCH(GX$1,Q$2:T$2,0)+1)),"",INDEX(Q$1:EV$1,MAX((Q$2:EV$2=GX$1)*(Q4:EV4<>"")*COLUMN(A1:EF1)*(OFFSET(Q$1,0,1-MATCH(GX$1,Q$2:T$2,0)):OFFSET(EV$1,0,1-MATCH(GX$1,Q$2:T$2,0))>40000))-MATCH(GX$1,Q$2:T$2,0)+1)) 最後にGX列を選択して右クリックし「セルの書式設定」の「表示形式」で日付で2013年4月などと表示されるようにします。 GX列にはお望みの表示がされるでしょう。

razzrazzrazz
質問者

お礼

参考になりました。ありがとうございました。

関連するQ&A

専門家に質問してみよう