プロが教えるわが家の防犯対策術!

こんにちは
LOOKUP(1,0/(A:A=E22),D:D)
この式を使用し、同じ品番で一番下の値を求めていますが、
もし一番下の品番の数値が空欄になる場合に、ゼロが反映されるので、
この場合に、同じ品番で一番下の個数に数値が入っている方を反映させたいので、
式をどうやって改善させたらいいでしょうか?
お手数をおかけしますが、
ご教示お願いたいのです。

「[関数]同じ品番で一番下の数値を求めたい」の質問画像

A 回答 (3件)

こんにちは



まったく別の考え方でもよければ・・・

ご提示の図で、E2セルに
=INDEX(B:B,AGGREGATE(14,6,ROW(A:A)/(A:A=D2)/(B:B<>""),1))
ではいかがでしょうか?

該当する値が存在しない場合は、エラー値になります。
    • good
    • 1
この回答へのお礼

ご返答ありがとうございます。検証したところ、できました。ただし、品番と数値のデータベースは他のフォルダーの中にあるので、パスで引用する必要があります。やってみると、計算が複雑となり、パソコンの反応が遅くなってしまいました。
もっと簡潔な式があると助かるかなと。
参考させていただきました。どうもありがとうございました。

お礼日時:2021/02/09 17:36

No2です



>パソコンの反応が遅くなってしまいました
実は、配列計算は、不要な部分も含めて全体を一律に計算するので、計算負荷としては大きくなりがちです。
抽出や検索を大量に行う場合に、このような負荷の増大が起きやすいです。
確認はしていませんが、同一シート内の参照よりも、外部ブックの参照には時間がかかるものと考えられます。

範囲を狭めてもまだ負荷が大きな場合は、作業列を利用して計算結果を一旦保持させ、重複計算をしないようにすることで、負荷低減(=速度向上)を図れるはずです。

以下は、そのような場合の、解消法の解説及び実例に当たると思いますので、ご参考までに。
https://oshiete.goo.ne.jp/qa/12196634.html
    • good
    • 1

No1です。



>パソコンの反応が遅くなってしまいました
A:AやB:Bの範囲を、実際に必要な範囲に狭めれば速度は改善すると思います。

>もっと簡潔な式があると助かるかなと
それでもダメなら、結果を直接求めずに、作業列を利用する方法にすれば、式も簡単になりますし、計算負荷も激減します。
    • good
    • 1
この回答へのお礼

ありがとうございます。やってみます!

お礼日時:2021/02/09 18:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!