次の方法で共有

テーブルからテーブルへFILTER関数抽出をすると「#スピル!」となりテーブル行も増えない。

Anonymous
2024-04-05T01:35:52+00:00

sheet1に作成した表のうち「〇」の行を、FILTER関数でsheet2に抽出しています。 sheet1をテーブル化し(以下テーブル1)、sheet2もテーブル化(以下テーブル2)しようとするとテーブル2が「#スピル!」となってしまい、抽出が正確にでません。またテーブル1の行が正常に増えてもテーブル2の行が増えません。 ※テーブル2をテーブル化しなければ正常に増えていきます。

A3やF3に入れている関数: "=FILTER(テーブル1[ユーザー名],テーブル1[確定]="〇","")"

「#スピル!」を直し、なおかつテーブル1の行が増えた際にテーブル2にも自動で行が増えるようにするようにすることは可能でしょうか?

この状態にしたい理由

  • まとめたい内容が多く、sheet1で全て表記しようとすると列が多くなってしまう。
  • sheet1とsheet2で閲覧・編集する人が違い、分けて管理したい
  • sheet1・sheet2ともにテーブル化し、フィルターやスライサー機能を使用したい

試したこと

  • 「#スピル!」のセルを選択状態にし、ctrl+shift+enterをクリック
  • オプション → オートコレクトのオプション → 入力オートフォーマット →テーブルに新しい行と列を含める に✔がついていることを確認
  • PowerQueryで、sheet1から「〇」の行をsheet2に読込 →この方法ではsheet2にその後追記・並替え作業をすると更新作業のたびに列がぐちゃぐちゃになるため却下。

環境

  • Intel(R) Core(TM) i7-8650U CPU
  • 64 ビット
  • windouws 10 Pro
  • Microsoft 365 for business
Microsoft 365 と Office | Excel | ビジネス向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

  1. Anonymous
    2024-04-05T02:11:20+00:00

    > sheet1に作成した表のうち「〇」の行を、FILTER関数でsheet2に抽出> sheet2もテーブル化(以下テーブル2)しようとすると> テーブル2が「#スピル!」となってしまい、抽出が正確にでません

    スピル配列を返す数式はテーブルではサポートされていません

    > テーブル1の行が増えた際にテーブル2にも> 自動で行が増えるようにするようにすることは> 可能でしょうか?

    したがって、これを実現することは不可能です。

    > sheet1とsheet2で閲覧・編集する人が違い、分けて管理したい

    [テーブル2]の任意のセルを直接編集することを前提とするなら、
    そもそも[テーブル2]の行が自動的に増えたり減ったりすること
    (そういう仕組みを実装すること)自体が問題です。

    例えば、[テーブル2]において[ユーザー名]が"佐藤"である行のセルを編集したとして、
    その後[テーブル1]において[ユーザー名]が"佐藤"である行の[確定]の値が
    "○" 以外の値に変更された場合、その時の[テーブル2]の状態が
    どのようなことになるかを想像してみて下さい。

    とりあえず「ある時点において[確定]の値が"○"である行を絞り込む」ことを
    目的とするなら、例えば FILTER 関数によって得られたスピル配列を一旦
    通常のセル範囲に変換し、その上でテーブル化した方が安全でしょう。

    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません

1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2024-04-05T02:52:19+00:00

    sk.exe様 ご回答ありがとうございます。

    >スピル配列を返す数式はテーブルではサポートされていません

    まずこれにたどりついておらず申し訳ありません。

    *>*例えば、[テーブル2]において[ユーザー名]が"佐藤"である行のセルを編集したとして、その後[テーブル1]において[ユーザー名]が"佐藤"である行の[確定]の値が "○" 以外の値に変更された場合、その時の[テーブル2]の状態がどのようなことになるかを想像してみて下さい。

    テーブル1で"〇"となったユーザーが"〇"以外になることはないデータのため、可能にならないか?と検討していた次第でした。

    >「ある時点において[確定]の値が"○"である行を絞り込む」ことを目的とするなら、例えば FILTER 関数によって得られたスピル配列を一旦通常のセル範囲に変換し、その上でテーブル化した方が安全でしょう。

    承知しました。ただ「ある時点において」では、sheet1の随時の更新やその後の追記情報書き込みに対応できず、範囲へ解除をマクロで組んでしまうとteams上でマクロは動かないため、従来通りsheet1に全て書き込む方向で進めてみようと思います。

    ご助力いただきありがとうございます。

    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません