関数を使って対応する方法です。
シート1にお示しのようなデータがA,B,C,D列の2行目から下方にあるとして、ご質問はE列のデータを表示させることとE列のデータが960よりも大きい数値の時にはそのペアを削除した表にしたいとのことですね。
削除した表についてはシート2に表示させることにして、シート1ではF列とG列には作業列を設けて対応します。
E2セルには次の式を入力します。
=IF(COUNTIF(G2,"on*")=0,"",IF(COUNTIF(G3:G$1000,SUBSTITUTE(G2,"on","off"))=0,"",INDEX(B3:B$1000,MATCH(SUBSTITUTE(G2,"on","off"),G3:G$1000,0))-B2))
F2セルには次の式を入力します。
=IF(AND(E2<>"",E2<=960),MAX(F$1:F1)+1,IF(COUNTIF(G:G,SUBSTITUTE(G2,"on","off"))=0,MAX(F$1:F1)+1,IF(AND(C2<>"",E2="",INDEX(E:E,MATCH(SUBSTITUTE(G2,"off","on"),G:G,0))<=960),MAX(F$1:F1)+1,"")))
G2セルには次の式を入力します。
=IF(C2="","",C2&D2&"/"&COUNTIF(G$1:G1,C2&D2&"*"))
E2セルからG2セルを選択してからそれらの式を下方にドラッグコピーします。
なお、F,G列が目障りでしたらそれらの列を選択してから右クリックして「非表示」を選択すればよいでしょう。
以上でシート1での作業は終わってシート2に移ります。
シート2のA2セルには次の式を入力してE2セルまで右にドラッグコピーしたのちに下方にもドラッグコピーします。
=IF(ROW(A1)>MAX(Sheet1!$F:$F),"",IF(INDEX(Sheet1!$A:$E,MATCH(ROW(A1),Sheet1!$F:$F,0),COLUMN(A1))="","",INDEX(Sheet1!$A:$E,MATCH(ROW(A1),Sheet1!$F:$F,0),COLUMN(A1))))
お礼
ご回答ありがとうございます。無事、反映することができました。 式もシンプルでわかりやすく大変助かりました。