
関数に詳しい方お願い致します。Excel2010
FILTER関数を使わずに、指定の範囲から複数条件を検索し、一致した行のみを抜き出そうとしています。
・抜出範囲 シート「入力用 D3:AR502」
・条件指定に使用しているセルは、シート「入力用 J3:J502」以外は全て計算式が入っています
また、指定したい条件が4パターンあります。
①・入力用AT3:AT502とE1が一致
・入力用J3:J502の左二文字とC1が一致
・入力用K3:K502とE1が不一致
②・入力用AT3:AT502とE1が一致
・入力用J3:J502の左二文字とC1が一致
・入力用K3:K502とE1が一致
③・入力用AT3:AT502とE1が不一致
・入力用J3:J502の左二文字とC1が一致
・入力用K3:K502とE1が一致
④・入力用AT3:AT502とE1が不一致
・入力用J3:J502の左二文字とC1が一致
・入力用K3:K502とE1が不一致
上記のうち、①のパターンをやろうとした関数が下記なのですが、3つ目の(入力用!$K$3:$K$502<>$E$1)の部分が反映してないものしてくれませんでした…。
{=IF(入力用!D3="","",IFERROR(INDEX(入力用!$D$3:$AR$502,MATCH(LARGE((入力用!$AT$3:$AT$502=$E$1)*(LEFT(入力用!$J$3:$J$502,2)=$C$1)*(入力用!$K$3:$K$502<>$E$1)/ROW(入力用!$D$3:$AR$502),ROWS(入力用!$D$3:$D3)),1/ROW(入力用!$D$3:$AR$502),0),COLUMNS(入力用!$D$3:D$3)),""))}
添削や、もしくは完全に別の案でも構いませんのでご教示お願い致します。
情報不足部分あれば補足致します。
No.4ベストアンサー
- 回答日時:
No3です
>具体的には、E1<>K列が反映していませんでした
当方の環境では、正しく認識できています。
>…セルの中に入ってるのが別の式だからでしょうか?
式そのものは関係ないはずです。式の結果を判断するはずなので。
試しに、反映されないセルに対して、直接、
=(E1<>対象セル)
が、TRUEになるのかどうか確認してみてはいかがでしょうか?
計算の内容は理解しておられるようですので、条件を減らすなどしてみて、「何が本当の原因なのか」を調べてみてください。
実際のデータが不明なので、残念ながら、当方でできることはなさそうに思います。
該当の列を比較したら一致しなかったので、一致するようにバリュー関数など使用して直したら正常に作動しました!
質問文の式もこれでダメだったようです…。
見た目に惑わされて、初歩的な確認を怠っておりました。お恥ずかしい限りです。
今回教えて頂いた式が簡潔で分かりやすいので、使用させて頂こうと思います!ご教示ありがとうございました!
No.3
- 回答日時:
No2です
>LARGEを使っていたのですが、AGGREGATEの集計方法は14ではなく
>15で良いのでしょうか?
元のデータ群での出現順に詰めて表示するなら15です。
逆順がよければ14にしてください。
No1に書き忘れましたが、配列数式ではありませんので、Ctr+Shift+Enterは不要です。
>また、D550セルに入力というのは、例であって実際は別の場所でも
>大丈夫であるという認識で合っていますか?
同じシート内なら大丈夫です。
他のシートの場合は、当然ですが、シート名を正しく付加しないと参照関係がうまくいきません。
まず同じシートに実際に入力してみましたが、上手くいきませんでした。
具体的には、E1<>K列が反映していませんでした(E1と一致しているものも抜き出してしまっている)
質問文で私が書いた式の時もだったのですが、<>を使った条件が反映しないです…セルの中に入ってるのが別の式だからでしょうか?
No.2
- 回答日時:
こんばんは
「行で1セットになっているデータから、複数条件に合致する行だけ抽出したい」ということと解釈しました。
簡単な方法は、空き列を作業列にして、その3行目のセルに
=AND(AT3=$E$1,LEFT(J3,2)=$C$1,K3<>$E$1)
などと入力して、下方にフィルコピーすると、該当するか否かが表示されます。
(上式は①の条件の例です)
抽出するには、このうちのTRUEの行のみを行えば宜しいです。
直接求めることも可能ですが、配列計算をさせることになるので、無駄な計算が多く、計算が重くなる原因になりやすいです。
以下、ご参考までに。
別シートに抽出すると、シート名の分だけ関数式が長くなるので、同一シートでの抽出の例です。
①の例として、D550セルに
=IFERROR(INDEX(D:D,AGGREGATE(15,6,ROW($A$3:$A$502)/($E$1=$AT$3:$AT$502)/($C$1=LEFT($J$3:$J$502,2))/($E$1<>$K$3:$K$502),ROW(A1))),"")
を入力して、右方、下方にフィルコピーで抽出されると思います。
原理としては、「条件式で除算することで、合致しないものは0割りのエラー値にして省く」という方法です。
条件が複数ある場合は(=AND条件の場合)、それぞれの条件式で重ねて除算を行えばよいことになります。
条件が異なるケースを求める場合は条件式を入れ替え、条件の数に応じて除算の回数を増減すればよいという仕組みにしてありますので、比較的応用しやすいのではと思います。
ご回答ありがとうございます!
LARGEを使っていたのですが、AGGREGATEの集計方法は14ではなく15で良いのでしょうか?
また、D550セルに入力というのは、例であって実際は別の場所でも大丈夫であるという認識で合っていますか?
今実際に打って確認出来る状況でなく、確認もせずに重ねて申し訳ありません…!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を条件に指定範囲のデータを貼り付けるVBA 3 2023/01/15 06:14
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) エクセルシートの合計の変動 5 2022/04/05 15:56
- Excel(エクセル) マクロ/VBAについて教えてください。 10 2022/05/27 12:59
- Java Java 南京錠 2 2023/02/04 11:46
- Excel(エクセル) WORKDAY関数 4 2023/06/08 13:23
- Excel(エクセル) EXCEL関数(数式)を教えてください 2 2022/06/08 18:32
- Excel(エクセル) EXCEL関数(数式)を教えてください 11 2023/05/09 13:19
- Visual Basic(VBA) Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1 2 2023/01/12 12:24
- Excel(エクセル) COUNTIFSについて 2 2022/08/30 14:48
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのVBAで集計をしたい
-
【関数】同じ関数なのに、エラ...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【画像あり】オートフィルター...
-
Office2021のエクセルで米国株...
-
【マクロ】元データと同じお客...
-
【マクロ】実行時エラー '424':...
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
【マクロ】列を折りたたみ非表...
-
他のシートの検索
-
【条件付き書式】シートの中で...
-
ページが変なふうに切れる
-
【マクロ】オートフィルターの...
-
特定のセルだけ結果がおかしい...
-
エクセル ドロップダウンリスト...
-
【マクロ】アクティブセルの時...
-
【マクロ】3行に上から下に並...
-
9月17日でサービス終了らし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報