プロが教える店舗&オフィスのセキュリティ対策術

Excelで、「集計」と「台帳」というタブがあります。
ふたつとも項目は連動していますが、「台帳」内に「フラグ」という列があり、そこに抽出したいデータにのみ●を記載しています。

「集計」というタブの中に、「台帳」の「フラグ」列に●が記載してあるデータのみを抽出して表示させたいです。
index、rowなどを複数組み合わせたものを試してみたのですができません。。。

詳細としては、台帳に会社で発生した費用を項目とともに記録していっております。そのうち、注意すべき費用に関してはフラグをつけていて、フラグを付けた瞬間に集計タブへ注意すべきものがばーーっと羅列されていく・・・としたいのです。

「集計」タブ
A グループ B内容 C勘定項目 Dフラグ E備考 F売上 
「台帳」タブ
A グループ B内容 C勘定項目 Dフラグ E備考 F売上 
です。
「集計」タブのA3から表示させたいです。

なぜか何度やってもうまくいきません…
どなたか教えていただけないでしょうか?
よろしくお願いします。

質問者からの補足コメント

  • うーん・・・

    ありがとうございます。こんな簡易的な関数があったのですね。
    少し書き換えて設定したのですが、FILTER の範囲サイズが一致しません。行数を 32、列数を 1 にしてください。実際の行数は 1、列数は 1 です
    というエラーが出ます…
    選択範囲は間違っていないのですが。

    No.2の回答に寄せられた補足コメントです。 補足日時:2020/07/01 13:54
  • どう思う?

    ご回答ありがとうございます。
    試してみたのですが、セルが真っ白になりました。対応する値がない、ということですかね。。。?
    ●が台帳シートのD列に記載されている項目は複数あるのですが・・・・どこでエラーになっているのでしょうか。

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/07/01 13:58
  • 実はスプレッドシートを使用しているのです。。。バージョンは最新だと思うのですが・・・

    No.3の回答に寄せられた補足コメントです。 補足日時:2020/07/01 14:19

A 回答 (8件)

No7です



まともな表計算ソフトならできるであろう方法を…

1)台帳シートのG2セルに
  =IF(D2="●",COUNTIF($D$2:$D2,"●"),"")
  を入れて下方にフィルコピー
2)集計シートのA3セルに
 =IF(ROW(A1)<=MAX(台帳!$G$1:$G$999),INDEX(台帳!A:A,MATCH(ROW(A1),台帳!$G$1:$G$999,0)),"")
を入れて、フィルコピー。
    • good
    • 1

No6です



>不明な関数: 「AGGREGATE」 ~~

んじゃ、もっと古くからある関数の組み合わせで…
(「IFERROR」は比較的最近だったかも…?)

=IFERROR(INDEX(台帳!A:A,SMALL(INDEX((台帳!$D$2:$D$999<>"●")*1E9 + ROW(A$2:A$999),,),ROW(A1))),"")

上記は『エクセル』上での関数なので、使えるとか互換性とかに関しては、まったく関知しておりません。
そもそもとして「配列計算」の概念が無ければ、個々の関数が 存在している/いない は関係なくなってしまうとは思いますが。
    • good
    • 0

No4です。



>スプレッドシートでも大抵の関数は使えるはずなのですが・・・なぜでしょうか・・・
エクセルではないからでしょう。
ご質問文には「【エクセル関数】」、「Excelで~」とありましたので、エクセルに関して回答しました。
    • good
    • 0

スプレッドシート!(あなた、Excelと記していますよね。


それは、エクセルと完全互換ですかね?
スプレッドシートがどんなものかを知らないので、確かなことは言えませんが、
すでに回答のある2つの方法は無理かな(?)って思います。
    • good
    • 0

No1です



>どこでエラーになっているのでしょうか。
こちらの環境で再確認してみましたが、問題はないと思います。
「●」が異字体ということはありませんか?

A3セルの式はでも良いはずで、こちらの方が少し短くできますね。
=IFERROR(INDEX(台帳!A:A,AGGREGATE(15,6,ROW(台帳!$A$2:$A$999)/(台帳!$D$2:$D$999="●"),ROW(A1))),"")

ところで、うっかりしていましたが、No2様の回答にあるFILTER関数が使える環境であれば、そちらの方がはるかに簡単に抽出できるはずです。
(私の環境では使えないので、失念していました。)
    • good
    • 0
この回答へのお礼

ありがとうございます。
不明な関数: 「AGGREGATE」 というエラーが次は発生しました・・・・
スプレッドシートでも大抵の関数は使えるはずなのですが・・・なぜでしょうか・・・
沼にはまってきました。

お礼日時:2020/07/01 14:46

ところでエクセルのバージョンはどうなっていますか?

この回答への補足あり
    • good
    • 0
この回答へのお礼

実はスプレッドシートを使用しているのです。。。バージョンは最新だと思うのですが・・・

お礼日時:2020/07/01 14:27

すでに回答されていますが、バージョンが記されていないので。

最新のなら、
=filter(台帳!a:f,台帳!d:d="●","")
でできますよ。
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございます。こんな簡易的な関数があったのですね。
少し書き換えて設定したのですが、FILTER の範囲サイズが一致しません。行数を 32、列数を 1 にしてください。実際の行数は 1、列数は 1 です
というエラーが出ます…
選択範囲は間違っていないのですが。

お礼日時:2020/07/01 13:59

こんにちは



>「集計」タブのA3から表示させたいです
A3セルに

=IFERROR(INDEX(台帳!$A:$F,AGGREGATE(15,6,ROW(台帳!$A$2:$A$999)/(台帳!$D$2:$D$999="●"),ROW(A1)),COLUMN(A1)),"")

の式を入力し、右方、下方へフィルコピーでいかがでしょうか?
台帳シートは2行目からデータがあるものと仮定しています。(1行目は項目タイトル)
この回答への補足あり
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
試してみたのですが、セルが真っ白になりました。対応する値がない、ということですかね。。。?
●が台帳シートのD列に記載されている項目は複数あるのですが・・・・どこでエラーになっているのでしょうか。

お礼日時:2020/07/01 13:59

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

このQ&Aを見た人はこんなQ&Aも見ています