[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『該当の区分のみ別の表に一覧として出したい』(あや)
(元データ) 区分 取引先 月 1 A 1月 2 B 2月 1 C 1月 3 D 1月 1 E 3月
☆区分が1のデータのみを別の表にしたい
(表示したい表) 区分 取引先 月 1 A 1月 1 C 1月 1 E 3月
別の人が使うので、
マクロや、オートフィルタ機能は使わず
関数で出したいです。
表示したい表に、関数を入れておいて
元データにデータを入力したら反映させるようなイメージをしています。
よろしくおねがいします。
SUMPRODUCTで、できると思います。 http://www.excel.studio-kazu.jp/lib/e3h/e3h.html
=SUMPRODUCT((元データ!$B$2:$B$6=B2)*(元データ!$C$2:$C$6=C2),(元データ!$A$2:$A$6)) BJ
お手数ですがもう少し詳しく教えて下さいm(__)m
>☆区分が1のデータのみを別の表にしたい すみません。 まるっきり勘違いしてました。 忘れてください。 BJ
[A] [B] [C] [D] [E] [F] [G] [1] 区分 取引先 月 区分 取引先 月 [2] 1 A 1月 ※ [3] 2 B 2月 [4] 1 C 3月 [5] 3 D 4月 [6] 1 E 5月 [7]
このようなレイアウトだと仮定して、E2〜G列最終行までに絞って表示させるものとします。 E2セルへ下記数式を入れ、これをG列までそのままコピーし、更に下へ必要分コピーしてみて下さい。
E2:=IF(COUNTIF($A$2:$A$6,1)<ROW()-1,"",INDEX(A$2:A$6,SMALL(INDEX(NOT($A$2:$A$6=1)*10^5+ROW(A$1:A$5),),ROW(A1)),1))
(Dil)
勉強になります。
理解するのに時間がかかりました…
今使っている表に合わせるようにしたのですが、これで間違いないでしょうか。
*10^5 の部分は何をしているのでしょうか。
よろしくおねがいします。
[D] [E] [F] [P] … [U] … [U]
[1] 取引先 月 区分
[2] A 1月 1
[3] B 2月 2
[4] C 2月 1
[5] C 1月 1
・ ・ ・
[31] 区分 取引先 月
[32] ※1 ※2 ※3
[33]
※1
=IF(COUNTIF($V$2:$V$71,"H")<ROW()-30,"",INDEX(V$2:V$71,SMALL(INDEX(NOT($V$2:$V$71="H")*10^5+ROW(V$1:V$70),),ROW(V1)),1))
※2
=IF(COUNTIF($V$2:$V$71,"H")<ROW()-30,"",INDEX(P$2:P$71,SMALL(INDEX(NOT($V$2:$V$71="H")*10^5+ROW(P$1:P$70),),ROW(P1)),1))
※3
=IF(COUNTIF($V$2:$V$71,"H")<ROW()-30,"",INDEX(U$2:U$71,SMALL(INDEX(NOT($V$2:$V$71="H")*10^5+ROW(U$1:U$70),),ROW(U1)),1))
実際の区分は1や2ではなくHなのですね。 現在の数式だとHの数が仮に三つあった時に、二つまでしか表示されず以下ブランクになってしまいますので COUNTIF($V$2:$V$71,"H")<ROW()-30 の部分を COUNTIF($V$2:$V$71,"H")<ROW()-31 に変更して下さい。
この部分では、「現在の行番号-31した数が、Hの数を超えたら空白にする」という処理を行っています。 これを入れなかったらブランクの代わりにエラーになりますが、数式が長く見づらければ エラーは条件付書式で隠す等の処理をして、数式のこの部分は削除してしまっても良いかもしれません。
*10^5 は10の五乗を掛けるという事ですが、 NOT($V$2:$V$71="H")*10^5 とする事で、区分がHでないセルをとんでもなく高い数値に変換し SMALL関数の返り値から除外しています。 なので、「Hの数がこんなには有り得ないと」いう数字ならいくつでも良く、10^5である必要はないです。
(Dil)
すごくよくわかる解説でした。
無事に使えそうです。
ありがとうございます^ー^
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.