アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2016を使用しています。
現在A4に下記の配列数式を使い数値を表示させていますが、
W4とX4の値が同じであればA4に値を表示、違えば非表示にたいです。

=IFERROR(INDEX(Sheet1!A$4:A$1000,SMALL(IF(Sheet1!A$4:A$1000<>"",ROW(A$4:A$1000)-3),ROW(A1))),"")
式の内容は
参照シートのA列の4行目以降に空白混在でランダムに値が入おり
抽出したいシートA列の4行目以降に抽出しています。

参照シート
   A
4  20
5  23
6  
7  35
8  
9  41 

1000

抽出したいシート
   A
4  20
5  23
6  35
7  41
8
9

1000

よろしくお願いいたします。

A 回答 (3件)

条件を追加したいという事でしょうか。



ならば、配列数式をやめて、作業列を使った処理をすることを勧めます。
新しく追加された条件をまとめることができないのであれば、配列数式を使ってはいけません。

・・・
誰かに教えてもらった数式をそのまま使っていて、
 「条件が変わったので直してもらおう」
…という魂胆のような気がするのですがいかがでしょう。

理解できない物を使っちゃダメだよ。
こんな感じに、条件が変わった時に自力で対処できなくなるからね。
    • good
    • 0
この回答へのお礼

そのまま使ってたわけではありませんが、配列数式がよくわかっていませんでした。以後気を付けます。

お礼日時:2020/06/29 02:14

こんにちは



ご質問でA列の条件も残っているのか、あるいは、W列=X列だけを条件とするのかよくわかりませんが・・・
表示するのはW列(=X列)の値で良いものと解釈しました。(A列の値は表示しない)

もしも、FILTER関数が利用できる環境であるなら、そちらの方がはるかに簡単にできます。
https://support.microsoft.com/ja-jp/office/filte …

そうでない場合は、仮に、W列=X列だけを条件とするなら、抽出列の最上部のセルに

=IFERROR(INDEX(Sheet1!W:W,AGGREGATE(15,6,ROW(A$4:A$1000)/(Sheet1!W$4:W$1000<>"")/(Sheet1!W$4:W$1000=Sheet1!X$4:X$1000),ROW(A1))),"")

を入力して、下方にフィルコピーでいけると思います。
(配列数式にする必要はありません)

A列の条件(空白でない)も残すのであれば、式中の
 (Sheet1!W$4:W$1000<>"")
の部分を
 (Sheet1!A$4:A$1000<>"")
に変えれば宜しいかと思います。

※ 上式は抽出条件を ~~/(条件1)/(条件2) とすることでAND検索での抽出が可能な形式になっています。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2020/06/29 02:11

こんにちは!



A列が空白以外で、なおかつW列とX列が同じ場合のみA列のデータを表示したい!というコトですかね?

配列数式にこだわらず、作業用の列を1列設けてみてはどうでしょうか?
仮にSheet1のY列を作業用の列とします。
Y4セルに
=IF(AND(A4<>"",W4=X4),ROW(),"")
という数式を入れこれ以上データはない!という位まで下へフィル&コピーしておきます。

そしてSheet2の表示したいセルに
=IFERROR(INDEX(Sheet1!A:A,SMALL(Sheet1!Y:Y,ROW(A1))),"")
(配列数式ではありません)
という数式を入れフィルハンドルで下へコピー!

個人的には配列数式を使うよりこちらをおススメします
(配列数式はPCに負担をかけ、計算速度が極端に落ちるため)

※ 作業列が目障りであれば、遠く離れた列にするか
非表示にしてください。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2020/06/29 02:08

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