複数の 'is like'基準を持つMIN IF配列関数


0

私は良いものを持っていると思います。

近い一致が必要な複数の条件でMIN-IF(およびMAX-IF)が必要です。ここIF説明したように、多くのステートメントの積を使用して複数の基準でMIN IFを実行する方法を知っていますが、ほぼ一致/類似一致を使用する必要があり、などの関数の構文を受け入れません。メソッドでMAX-IFを処理できます。IF"*" & criteria & "*"COUNTIF, VLOOKUP,...ISNUMBER SEARCH

ダミーデータの写真を投稿したいのですが、それを行う担当者がいません。それで、私はそれをできる限り説明しようとします。

列Aには、行2:14の最初の条件のデータが含まれます。

列Bには、行2:14の2番目の基準のデータが含まれています。

列Cには、MIN行2:14で近似一致を決定する値が含まれています。

セルに基準1があり、セルF1に基準2がありますF2。MAX IFの式は次のとおりです。

{=MAX(IF(ISNUMBER(SEARCH(F1,A2:A14)) * ISNUMBER(SEARCH(F2,B2:B14)), ISNUMBER(SEARCH(F1,A2:A14)) * ISNUMBER(SEARCH(F2,B2:B14)))*C2:C14)}

MIN代わりにを使用してこれを正確に複製しようとしましたMAXが、それはただ戻ってい0ます。

現在、Excel 20113を使用しており、ワークシート関数ソリューションまたはVBAベースのソリューションを受け入れています。これについて何か考えはありますか?

ありがとう。

回答:


1

最大配列式を次のように短縮できます。

=MAX(IF((ISNUMBER(SEARCH(F1,A2:A14))) * (ISNUMBER(SEARCH(F2,B2:B14))),C2:C14))

次にあなたの分のためにこれを試してください:

=MIN(IF((ISNUMBER(SEARCH(F1,A2:A14))) * (ISNUMBER(SEARCH(F2,B2:B14))),C2:C14))

2010以降を使用している場合は、CSE配列式を使用する必要はありません。次を使用します。

最大:

=AGGREGATE(14,6,C2:C14/((ISNUMBER(SEARCH(F1,A2:A14)))*(ISNUMBER(SEARCH(F2,B2:B14)))),1)

最小:

=AGGREGATE(15,6,C2:C14/((ISNUMBER(SEARCH(F1,A2:A14)))*(ISNUMBER(SEARCH(F2,B2:B14)))),1)

ここからが楽しい部分です。最新バージョンの365を持っている場合、またはOffice Onlineを使用している場合は、新しいMINIFS()およびMAXIFS()を使用できます。

=MAXIFS(C2:C14,A2:A14,"*" & F1 & "*",B2:B14,"*" & F2 & "*")
=MINIFS(C2:C14,A2:A14,"*" & F1 & "*",B2:B14,"*" & F2 & "*")

ありがとう、スコット。MIN-IF CSE関数はダミーデータではうまく機能しましたが、実際のプロジェクトではうまく機能しなかったため、2番目のオプション(AGGREGATE)を使用しました。しかし、ソリューションを愛しています。感謝します。
ニッククリスウェル

値のどこかにテキストがあるか、値にエラーがあることがわかります。MIN(IF())はエラーで中断します。集計はそれらを無視します。これは、式にエラーを無視するよう指示する集計の2番目の基準である6で強制されます。@NickC、ところで私はあなたがStackOverflowの質問を削除したときにこの答えに取り組んでいました。
スコットクレイナー

理にかなっています。ごめんなさい、スコット。私はそれがまったくコーディングを伴わないことに気づいたので、このStack Exchangeでより理にかなっています。ご不便をおかけして申し訳ございません。
ニッククリスウェル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.