[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『可変グラフの軽量化』(はらぺこ)
○100行、6列(値の範囲はB2:G100)のデータ
○データについて、元データ(別シート)から引用しており、条件をつけてIFERRORで表示・非表示を切り替える
;例えば結果としてB50:G70のみ表示するときがあり、表の上からデータまで空白の箇所が生まれ得る。
○ついては、表示されたとき、空白を飛ばしてデータのみ範囲として指定する
○名前の定義を用いて、各列を以下の数式で定義する
=OFFSET(Sheet1!$B$2,MATCH("*?",INDEX(Sheet1!$B:$B-1&"",0),)-2,,COUNT(Sheet1!$B:$B),)
(データ列について、値のあるセルまで移動し、そのセルから値のある分を範囲指定)
○指定した範囲を対象にグラフ化
;グラフのデータ範囲に定義した名前を用いる
以上の条件を用いて「任意のデータを指定して表示し、表示されたデータを都度反映して変動するグラフ」を作成しました。
グラフは6列分です。
しかし、グラフが重くなりすぎてしまい、実用性に欠けております。
名前の定義が複雑すぎるのが原因かとは思うのですが、うまいやり方が他に思いつきませんでした。
そもそもやろうとしていることもちょっと無茶ではあるのですが、手法や数式をより簡易にする改善策はありますでしょうか?
ご助力いただきたいです。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
>具体的に
重いのは挙動です。グラフは表とは別シートに立てているのですが、そのシート内での作業は1クリックごとに読み込みが入る状況です。
pcのスペックは低すぎはしないので、ひとまずそこは度外視しております。
ちなみにファイルサイズは62kbでした。
>種類
グラフは折線です。
>NA()
グラフに0を反映したくないのでIFERRORと名前の定義を使っています。
最低値が0ではないことと、そういう要望を受けて作成しているものだからです。
(はらぺこ) 2022/08/16(火) 11:15
(マナ) 2022/08/16(火) 11:28
>元データ範囲
質問対象の(IFERRORをかけている)ものと全く同じです。
データがあるシートが2枚(元データと質問対象のもの)、グラフを載っけているシートが1枚あります。
作業にならないのでグラフは別シートに一時避難させました。
元データは元データで使いたい目的があることと、グラフの範囲を都度可変にするのにそうするしかないかと思って別立てしました。
欲しい人が欲しい時に欲しい範囲でグラフを都度作ってくれよとも思わないでもないんですけどね。
複雑なことすると引き継いだ時修復が難しいし。便利のためには頑張りますけどね。
(はらぺこ) 2022/08/16(火) 11:40
(分からん) 2022/08/16(火) 11:46
>項目名
OFFSET関数で除外できているので表示したままです。
グラフの項目名にそのまま使っています。
(はらぺこ) 2022/08/16(火) 12:16
1)元データ範囲をテーブル設定または名前定義
2)Power Queryに取り込んで、指定条件でフィルター
3)シートにテーブル形式で読み込む
4)テーブルをグラフの元データとする
データ変更の際は、更新作業1クリックが必要になります。
(マナ) 2022/08/16(火) 12:24
>power query
ありがとうございます!
クエリを使う発想はなかったので目から鱗でした。
試してみたところ、大変手軽にやりたかったことが達成できました。
使い方を併記しておけば誰でも使えそうですしいいですね。
ひとまずPower queryを採用して作り直してみようと思います。
もし数式でも改善案がある方がいらっしゃいましたら引き続きよろしくお願いします。
(はらぺこ) 2022/08/16(火) 14:14
>再計算停止
試してみました。シートの編集は楽になりました!
任意の範囲を選択し終わって再計算する時に時間がかかるだけで、あとは問題なさそうです。
これであれば、作ったものも活かせるかもしれません。自動再計算があることをすっかり忘れていました。
ありがとうございます!
(はらぺこ) 2022/08/16(火) 15:44
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.