web-dev-qa-db-ja.com

SUMIF関数の名前付き範囲の特定の列の選択

Excelシートの名前付き範囲の特定の列の値を動的に加算するSUMIF関数を作成しようとしています。

名前付き範囲がない場合、これは非常に簡単です:

enter image description here

数式は、名前に「London」を含むすべてのセルを選択し、ロンドンに関連する費用を合計します。

私がやろうとしているのは、TripsData(A2:B5)という名前の範囲を使用し、SUMIF関数に、名前にLondonを含める基準を満たすこの範囲の列2のエントリを合計するように指示することです。

列2の2番目の名前付き範囲を作成せずに、この名前付き範囲の指定された列内を検索するようにExcelに指示するだけで、この作業を行うにはどうすればよいですか? Index/Matchは1つの値のみを返すため、名前にLondonが含まれるセルが複数ある場合は機能しません。

ご協力いただきありがとうございます!

10
Cla Rosie

次のように、INDEXを使用して、名前付き範囲内の特定の列を参照します(列全体を参照できます)。

=SUMIF(TripsData,"*London*",INDEX(TripsData,,2))
14
chris neilsen

データをExcel Tableオブジェクトに変換する場合、名前付き範囲をまったく使用せずにこれを実行できます。範囲または範囲全体のセルを選択し、[挿入]> [表]または[ヒット]をクリックします Ctrl-T

テーブルにヘッダーがあるかどうかを尋ねるダイアログが表示されます。あなたのものです。これで、固有の名前でテーブルとその列を参照し、次のような式を作成できます。

=SUMIF(Table1[Expense],"*London*",Table1[Cost])

enter image description here

もちろん、式が設定された後でも、テーブルの名前を変更できます。テーブル内のセルをクリックすると、テーブルのみに関連するコマンドの新しいリボンが表示されます。これは非常に強力なツールです。

テーブル列全体に適用される数式、書式設定などは、自動的に新しいテーブル行に引き継がれます。もちろん、テーブルの列参照も自動的に調整されるため、ダイナミックレンジ名を台無しにしたり、名前付き範囲の適用対象を再定義したりする必要はありません。

注:数式では、セルアドレスの代わりに構造化参照を使用しています。このオプションは、[ファイル]> [オプション]> [式]をクリックしてオフにすることができます。[式でテーブル名を使用する]をオンまたはオフにします。

4
teylyn

名前付き範囲 "Table1"でIndex(Table1,,Col#)のChrisのアイデアを使用し(何らかの理由でExcelテーブルオブジェクトを作成せずに)、さらに以下のコメントでApplezが言及する問題を回避できます。クリスのアイデア。 Applezは、列番号参照に定数を使用すると、名前付き範囲内でその列の前に別の列を後で挿入すると危険であると警告しています。 Excelが定数を自動的にインクリメントしないため、数式が壊れていることがわかります。

Applezは正しい.....定数を使用しないで、列番号「参照」を使用します代わりに定数。例えば....

_=SUMIF(TripsData,"*London*",INDEX(TripsData,,Column(B1)))
_

後でAとBの間に列を挿入すると、Excel [〜#〜] will [〜#〜]参照Column(B1)Column(C1)に自動インクリメントします。 _B1_または_Row 1_を削除しないでください。削除すると、REFエラーが発生します。私は通常、列参照内のテーブル列にヘッダー/タイルの「セル」を使用します(削除する場合を除き、テーブルの列のヘッダー/タイトルセルを削除することはほとんどありません)列全体)。判明したこの特定の例では、_B1_ "IS"はデータテーブル内のその列のタイトル/ヘッダーセルです。そのため、この例で使用しました。

1
user11929574