問題タブ [named-ranges]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4002 参照

c# - 名前が重複しているときにExcelワークブックで名前付き範囲を文字列で取得する

詳しく説明すると、ワークブックに 2 つの名前付き範囲があるとします。両方の名前付き範囲の名前は同じですが (「myName」としましょう)、一方はシート 1 にスコープされ、もう一方はワークブックにスコープされます。

名前付き範囲の名前 (文字列) を指定して、ワークブック レベルの名前付き範囲を取得します。

ネイティブ コール: を使用するとwb.Names.Item("myName")、シート スコープの名前付き範囲が返されます。

代わりに: を実行するwb.Names.Item("Sheet1!myName")と、明らかにシート スコープの名前範囲が返されます。これを使用してシート固有のものを指定できることがわかりましたが、ワークブックのものは指定できません。

とにかく、ワークブックの範囲を指定できるものはありますか?

私の回避策は現在、すべての名前のリストを反復処理し、.Name プロパティを比較してワークブック スコープの名前付き範囲を取得することです。これが機能するのは、.Name プロパティが「Sheet1!」を追加するためです。シート スコープの名前付き範囲に。ただし、これは非常にコストがかかるため、避けたいと思います。

0 投票する
1 に答える
207 参照

excel-formula - 名前付き範囲のExcel数式

数式について質問があります。簡単なものではありません。誰かがそれを解決できることを願っています。

テーブルはこんな感じ

名前付き範囲NRは、列IdxおよびVal(ヘッダーなし)をカプセル化します。

Rslt列セルの数式が欲しいのですが:

a)同じIdx値を持つ行を認識します

b)その行のセットから最大Valを返します

そうでない場合でも、私が明確であったことを願っています-遠慮なく質問してください。

ありがとう

0 投票する
1 に答える
866 参照

excel - TRENDを参照で使用する場合のExcelOFFSET関数エラー

次の値を持つExcelシートについて考えてみます。

=TREND(B1:B3,A1:A3,A1:A3)セルC1:C3に配列数式を入力する{5;8;11}と、期待どおりにが返されます。=OFFSET(C1:C3,1,0)予想通り、リターンを入力します{8;11;0}

ただし、を入力しようとすると=ROWS(OFFSET(TREND(B1:B3,A1:A3,A1:A3),1,0))、「入力した数式にエラーが含まれています」というメッセージが表示されます。数式を受け入れるために何もできません。

=Sheet1!$C$1:$C$3次に、数式とを使用して、名前付き範囲「TrendRange」と「TrendFormula」を=TREND(Sheet1!$B$1:$B$3,Sheet1!$A$1:$A$3,Sheet1!$A$1:$A$3)それぞれ作成しました。

繰り返し=OFFSET(TrendRange,1,0)ますが、正しい結果が得られますが、=OFFSET(TrendFormula,1,0)そうではありません(結果は#VALUE!)。

OFFSETでこの問題が発生する時期を常に特定しているように見える簡単なテストがあります。=CELL("address", xxx)または=AREAS(xxx)結果が、の場合#VALUE!、xxxセクションはOFFSETで使用できません。

これを回避する方法はありますか?TRENDの代わりにLINESTとSLOPE/INTERCEPTを使用してみましたが、同じ結果が得られます。

0 投票する
1 に答える
7135 参照

excel - 名前付き範囲を持つExcelの動的ハイパーリンク

私は解決策を探しました、そして私がしたいことは可能であると信じています(あるいはそうではないかもしれません)が、私はそれを機能させることができないようです。

問題の概要は以下のとおりです。シートデータの列Aにいくつかのデータがありますが、列Aの値は一意ではありません。シートの使用法では、列Aに別のデータセットがあります。これは、シートデータのデータの一意のリストです。データシートのセルにハイパーリンクを作成し、データシートでクリックされたセルの値に基づいて、使用状況シートの対応するセルに移動するハイパーリンクを作成します。原則として、これは多数のハイパーリンクを設定するのは簡単ですが、使用法シートのデータが並べ替えられた場合、ハイパーリンクはそれらと一緒に並べ替えられないため、ハイパーリンクは間違ったセルを指します。

インターネットを精査した後、動的な名前付き範囲を設定し、その名前付き範囲へのハイパーリンクを設定すると、名前付き範囲が使用状況シートの値と順序付けられるため、問題が解決するように見えました。新しい名前付き範囲を定義しました。これを「matchRange」と呼び、次の参照を適用します。

この数式をセルに適用すると1115が返されるため、これが機能することはわかっています。データシートのセルに移動し、1115を含むセルにハイパーリンクを挿入すると、定義済みの名前に「matchRange」の名前が表示されません。ハイパーリンクの挿入のセクション。だから私はハイパーリンクを添付するためにこの名前を見ることができるかどうか尋ねていると思いますか?セルに名前範囲を作成するだけで、定義した名前にハイパーリンクを付けることができます。

ただ指摘するために、私はこれのためにセルでハイパーリンク式を使用したくありません。

それが理にかなっていることを願って、どんな援助もいただければ幸いです。ありがとう

0 投票する
1 に答える
1904 参照

asp.net - 既存のExcelテーブルに新しい行を追加してもグラフは更新されません(名前付き範囲を使用する必要はありません)

私はclosedXMlとExcelの使用にも(少なくともこの目的のために)本当に新しいので、ばかげた質問をしている場合は申し訳ありません。

closeXMLはまだグラフをサポートしていないことを知っているので、これを回避するために頭に浮かんだのは、Excelテーブルを使用してグラフを作成することだけでした。そうすれば、新しい行を挿入したときにClosedXMLが範囲を更新し、グラフがそれを取得すると思いました。まあ、そうではありませんでした。少なくとも、closedXMLライブラリを使用してコードから行を追加する場合はそうではありません。

興味深いのは、Excel内から新しい行を追加するとグラフが自動的に更新されることですが、コードから同じ結果を取得する場合は、名前付き範囲とともにOFFSET数式を使用してから、グラフのソースデータをこれらの名前付き範囲に設定する必要があります。そのため、新しい行を挿入するために使用するコードに問題があるかどうかを知りたいのです。

ご覧のとおり、コードは非常に単純であり、テンプレートも非常に単純です。このテンプレートは、「Year」(table1 [Year])と「Sales」(Table1 [Sales] )の2つの列のみで構成されています。

私が言ったように、Excelから直接新しい行を追加することは期待どおりに機能し、チャートシリーズに新しい行が含まれないのはコードからテーブルを生成するときだけなので、これは私のテンプレートとは何の関係もないと思います追加された ここに画像の説明を入力してください

最初の行(テーブルを挿入するときにデフォルトで追加される行)のみが含まれるため、新しい範囲( Sheet1!Table1 [Sales]およびSheet1!Table1 [Year]) を手動で追加する必要があります。ここに画像の説明を入力してください

どんな助けでも大歓迎です

PSこれは、完全なコードとExcelテンプレート(\ Templates \ MyTemplate.xlsx)を含むRARへのリンクです。

0 投票する
3 に答える
2336 参照

performance - Excel VBA-const文字列範囲または範囲の定義名の間にパフォーマンス上の利点はありますか?

G'Day、

データを適切に実行するために、ExcelVBAが1つの場所で宣言された定義済みの範囲を効果的に管理する方法について理解を深めるのに役立つ質問があります。このプロジェクトにさらに取り組む前に、どちらの2つのオプション(これまでのところ知っている)が優れているか、または推奨されないベストプラクティスであるかを理解したいだけです。

私が解決している問題は、架空のサプライヤのセット全体で多数の障害を含む小さなテーブルを作成することです。したがって、テーブルは次のようになります(生の形式で申し訳ありません)

「会社名」「故障数」
「クールマシーン」7
「クーラントクォーター」5
「リトルウォータークーラント3
」エアムーバーシステム7
「ジェネラルクーラント」5
「アドミアクーラント」4

私の最初のオプション(Const String)は、次のようなこのモジュール/式です。

2番目のオプション(定義済みの名前)は、次のようなこのモジュール/式です。

何か提案があります-これが役立つ場合は、後でマクロタイマーテストを行いますか?

セルにリストされている範囲を値としてフェッチする場合、3番目のオプションはありますか?これを実際に行うコードを見たことがありませんか?

0 投票する
8 に答える
50427 参照

excel - Excel 数式での動的名前付き範囲の参照

ワークブックの他の場所にある動的な名前付き範囲の一部に対応する列見出しを持つテーブルが Excel にあります。たとえば、「10」、「20」などの列見出しと、「ExampleRange10」、「ExampleRange2」などの動的な名前付き範囲があります。連結して ExampleRange10 を参照する VLookup 式を入力したいと考えています。文字列「ExampleRange」と列見出し「10」。これにより、各列の数式に「ExampleRange10」、「ExampleRange20」などを手動で入力する代わりに、テーブル内のすべての列に数式を単純に拡張できます。

私は INDIRECT 関数を認識しており、過去に名前付き範囲で正常に使用しましたが、この場合、動的名前付き範囲では機能していないようです。これは、動的な名前付き範囲が Excel によって定義される方法と関係があるニュアンスであると推測しています (数式バーの左側にある名前付き範囲のドロップダウンには表示されず、VBA にはいくつかの興味深いプロパティがあります)。 、 例えば)。INDIRECT 数式を動的な名前付き範囲と組み合わせて使用​​する方法はありますか、またはこの問題を解決する別の方法はありますか?

編集:使用されている正確な式は次のとおりです。
これが主な数式です。=VLOOKUP(B2,INDIRECT("ExampleRange"&C1),2,FALSE)ここで、C1 には「10」が含まれ、「ExampleRange10」と呼ばれる動的な名前付き範囲の数式は次のとおり=OFFSET(Sheet1!$F$2,0,0,COUNTA(Sheet1!$F$2:$F$25),2)です。メインの数式は "#REF!" を返しますが、動的な名前付き範囲の数式を削除し、単に "ExampleRange10" を静的な範囲として定義すると正しく機能します。

0 投票する
1 に答える
2052 参照

excel - ユーザーが選択したセルが一連の名前付き範囲内にない場合はVBA終了

Select Case で少し問題が発生しています。名前付き範囲で動作するプログラムがあります。選択したケースが一連の名前付き範囲にない場合は、終了させたいです。ユーザーが有効なセルを選択したときに正しく実行されているコードは次のとおりです。

したがって、基本的に上記の範囲のいずれにもない場合は、プログラムを終了させたいと思います。私が試みていることを行うためのより良い方法があると確信していますが、私はこれらすべてを自分自身に教えているので、完璧ではないと確信しています.

0 投票する
1 に答える
10813 参照

excel - Excelで条件付きの名前付き範囲を使用する

これをもう一度試してみましょう。ウェブを検索していて、何も見つからないようです。私がやろうとしているのは、別のセルの値に基づいて条件付きの名前付き範囲リストの束をExcelに持っていることです。データ検証をセットアップし、すべての IF ステートメントをソース テキスト ボックスに配置すると、文字制限に達している問題。2つの条件を設定するだけでうまくいくようですが、うまくいきません。これは、有効なサブアイテムを表示したい B 列の値に基づいた私のデータ例です。前述したように、列 B にある可能性のある値は 20 ほどあります。

列C1にデータ検証リストを設定しようとすると、次のように入力します...

IF 条件のおそらく半分しか入力できません。VLOOKUP を試してみましたが、列 C に入れることができる値は 1 つだけで、それをドロップダウンにしたいのです。どんな助けでも大歓迎です。

0 投票する
1 に答える
10976 参照

excel - 名前をループし、指定されたパターンに一致しないものを削除します

他のいくつかのワークブックからシートをインポートし、これらのデータを「概要」シートにマージする Excel ワークブックがあります。私はvbaにかなり慣れていないので、このタスクにはかなりの時間がかかり、多くの調査が行われました。ただし、解決できない、または答えを見つけることができない問題が1つありますが、方法を知っていれば、解決するのはかなり簡単だと思います。問題: シートをインポートすると、多くの不要な名前付き範囲もインポートされます。指定したものを削除せずに削除するマクロを実行して、これらを削除しようとしましたが、うまくいきません。

どんな助けでも大歓迎です