この質問は、私が以前に投稿した質問の続きです: Excel - Return value, after cell has been matching, between headers
前と同じように (さらに):
• 数値が負の場合:
• MATCH を使用して、範囲内 (ヘッダー間) に対応する (正の) 番号があり、かつ 'IDX' が同じかどうかを確認します。
• MATCH がある場合は、一致した F の ID (1 列目) の値を出力し、一致した負の値の ID を出力します。
• そうでない場合は、何もしません。
問題は次のとおりです。
• 負の値が正の値の後にくる可能性があるため、ループする必要があります。
• 検索はヘッダー間に含まれる必要があり、かつ idx が同じである必要があります。アップロードした画像は鮮明だと思います。
loli_m からの以前の回答を変更して、新しい変数と条件を追加しようとしましたが、すべてうまくいきませんでした:
Names.Add "i", "=$A$1:$A$12": _
Names.Add "v", "=$B$1:$B$12": _
Names.Add "m", "=$D$1:$D$12": _
Names.Add "h", [IF({1},LOOKUP(ROW(i),ROW(i)/(v=INDEX(v,1))))]: _
Names.Add "l", [IF({1},LOOKUP(ROW(i),ROW(i)/(v=INDEX(v,1)),FREQUENCY(-ROW(i),IF(v=INDEX(v,1),-ROW(i),0))-1))]: _
[m]=[IF(COUNTIF(OFFSET(v,h,,l),"=-"&v),CONCATENATE("=",ADDRESS(ROW(i),COLUMN(i),4),"&"" AND ""&INDEX(",ADDRESS(h+1,COLUMN(i)),":",ADDRESS(h+l,COLUMN(i)),",MATCH(-",ADDRESS(ROW(v),COLUMN(v),4),",",ADDRESS(h+1,COLUMN(v)),":",ADDRESS(h+l,COLUMN(v)),",0))"),"")]: _
Names("h").Delete: _
Names("l").Delete
私はすべての助けに非常に感謝しています.