ラベル 名前の定義 の投稿を表示しています。 すべての投稿を表示
ラベル 名前の定義 の投稿を表示しています。 すべての投稿を表示

11/09/2020

Excel。入力規則のリスト。アイテムが増えたら自動的にリストの範囲も拡張したい【Input rules】

Excel。入力規則のリスト。アイテムが増えたら自動的にリストの範囲も拡張したい

<入力規則のリストと名前の定義とテーブル>

請求書や見積書などで使用される、入力規則のリスト。


お世話になっている人も多いかと思います。

ところで、アイテムが増えたら、自動的にリストは連動してくれませんので、色々設定をし直さないといけません。

作業自体は簡単でも、できることなら、設定の変更をしないで、アイテムを増やしたら、自動的にリストも拡張反映されるといいですよね。


そこで、今回は、アイテムが増えても自動的に、入力規則のリストも拡張される方法をご紹介していきます。


現在の設定を確認しておきましょう。

データタブの入力規則からデータの入力規則ダイアログボックスを表示させて、入力値の値を「リスト」にして、元の値には、商品コードの一覧がある、「=$E$2:$E$7」を設定しております。

 

E8にアイテムが増えたら、自動的にこの「=$E$2:$E$7」が広がってくれればいいわけですね。

念のため、E8に「D002」という商品コードを入力して確認してみましょう。


リストは自動拡張しないことが確認できました。

アイテムが増えた場合、先程の「=$E$2:$E$7」を修正すればいいのですが、その都度、データの入力規則ダイアログボックスを表示して修正するのは面倒です。


ここでポイントになるのが、Excelのバージョン。

元の値に入力する、E列の場所が、同じシート状にある場合と、別のシートにある場合では、Excelのバージョンによって、設定方法がかわります。


Microsoft365のExcelでは、同じシートでも別のシートでも、同じシートと同じやり方でいいのですが、Excel2016では、設定方法が異なります。


最初は、同じシート上にある場合から紹介していきます。


同じシート上ならば、とても簡単です。単純に、テーブルにすればいいだけです。


E1をクリックして、挿入タブのテーブルをクリックします。


テーブルの作成ダイアログボックスが表示されますので、先頭行をテーブルの見出しとして使用するにチェックマークをいれてOKボタンをクリックします。


テーブルに変わりましたので、アイテムを増やしてみます。「D002」を追加します。


テーブルは自動拡張される特性があります。

この機能を使うことで、入力規則のリストも自動拡張される仕組みです。


では、入力規則のリストを確認してみましょう。


このように、自動的に入力規則のリストが拡張されました。


【Excel2016の場合】

E1:F7までの商品リストが別のシートにある場合は、残念ながらできません。

E1:F7を別シート(シート名:商品リスト)のA1にコピーします。


データの入力規則のリストの設定も修正しておきます。


元の値には、「=商品リスト!$A$2:$A$7」と変更しております。


では、商品リストを、テーブルにしてみましょう。


新しいアイテム。「D002」を追加してみます。


Microsoft365のExcelだと、問題なくリストに追加されているのですが、Excel2016では追加されていません。


そこで、次のような処理を追加する必要があります。


A2:A7に名前の定義を行います。名前ボックスに「商品NO」と名前を定義しました。


データの入力規則の設定を修正します。


元の値に、「=商品NO」と設定しなおします。


これで、アイテムを増やしてみると、リストに「D002」が追加されていることが確認できます。


名前の定義で設定した範囲は、テーブルの拡張と連動しているようになっているので、アイテムを追加しても自動的に追加することが出来たわけです。


Excelのバージョンによって、設定の方法は異なりますが、アイテムが増えたら設定を変更しなくても、入力規則のリストを追加することができます。

8/26/2019

Excel。塗りつぶしたセルの数を数えるにはどうしたらいいの?【Count colors】

Excel。塗りつぶしたセルの数を数えるにはどうしたらいいの?

<名前の定義+Excelマクロ4.0関数>

次のような表があります。

色分けしたチームの人数を知りたいわけですね。

Excelでは、直接塗りつぶされたセルを数えることはできませんし、まして、赤色・青色など色ごとに数えることはできません。

当然関数もない。

そこで、通常なら、数値や記号など数えることができるものを入力して対応する方法を思い浮かべるわけですが、ある方法を知っていると、実はセルの塗りつぶしを数えることができるのです。

【名前の定義+Excelマクロ4.0関数】

C2をクリックします。数式タブの名前の定義をクリックして、名前の定義ダイアログボックスを表示します。

名前には、今回「red」という名前を設定します。

範囲がブックになっていることを確認します。

参照範囲には、
=GET.CELL(63,!$B2)+NOW()*0
と入力します。

入力後、確認すると、セルの前にシート名が自動的に入力されますので、自分自身で入力しなくても大丈夫です。

=GET.CELL(63,チーム色分け!$B2)+NOW()*0

説明は後回しにして、作業を続けます。
OKボタンをクリックすると、名前の定義が完成します。

C2に
「=red」と入力して、オートフィルを使って数式をコピーします。

33・3・50というなんだかわからない数値が算出されてきました。

ここで、先程の数式を説明していきます。

=GET.CELL(63,チーム色分け!$B2)+NOW()*0

GET.CELL関数というのがあります。

この関数は、Excelマクロ4.0関数の一つで、セルの書式や位置や内容などの情報を算出することができます。

また、GET.CELL関数の書式は、
GET.CELL(検査の種類,範囲)
となっています。

今回は、検査の種類は、「63」をつかっています。

63は、セルの塗りつぶしの「色」を値として算出してくれます。

範囲は、B2。
オートフィルを使って数式をコピーしますので、複合参照で設定しますので、$B2と入力します。

この数式の後ろ側に、
+NOW()*0
を加筆します。
この+NOW()*0は、データを変更しても再計算するためで、GET.CELL関数では「常套句」のようなものです。

今回算出された、33・3・50というのは、塗りつぶしの色の番号が算出されたわけです。

ここまで算出されれば、あとは、COUNTIF関数を使えば簡単に塗りつぶしされた色ごとの数を算出することができます。

F2の数式は、
=COUNTIF($C$2:$C$8,"=33")
となっています。

今回は、塗りつぶしの色を数えることができましたが、検査の種類を変更することで、通常のExcelでは求めることができないものも算出することができます。

A列をみると、斜体の文字があります。

斜体の文字が何件あるのかを知りたい場合には、名前の定義ダイアログボックスで、

=GET.CELL(21,チーム色分け!$A2)+NOW()*0

と設定すれば数えることができます。

検索の種類は、「21」で、斜体かどうか判断してくれます。

斜体だと、TRUEを返しますので、1と表示されます。
あとは、数えるなり、合計すれば、斜体の件数がわかります。

もし機会があれば、使ってみてはどうでしょうか?
最後に注意点として、Excelマクロ4.0を使っていますので、マクロ有効ブックで保存する必要があります。

6/18/2019

Excel。今ふたたびのVLOOKUP関数。アイテムが増えたら数式直すのが面倒なんですが…【VLOOKUP】

Excel。今ふたたびのVLOOKUP関数。アイテムが増えたら数式直すのが面倒なんですが…

<名前の定義とテーブル>

VLOOKUP関数の数式の作り方は、それほど難しくないのですが、実際の現場レベルで運用するとなると、面倒なことが発生します。

次の表はVLOOKUP関数を設定してありますので、確認してみましょう。

C列には、
=IF(B2="","",VLOOKUP(B2,リスト!$A$2:$C$4,2,FALSE))
という数式が設定済みです。

B列には、入力規則のリストを使って、入力ミスの抑制と入力作業の緩和をしています。

そして、別のシートに商品リストがあります。


【商品が増えたら範囲を修正】

ExcelのVLOOKUP関数としては、IF+VLOOKUP関数にしているなど、エラーも発生しないので、問題はありませんが、現場レベルでは、大問題が潜んでいます。

それは単純なことで、商品アイテムが増えたらどうするの?ということです。

別にVLOOKUP関数の引数の範囲を拡張するのと、入力規則のリストの範囲も拡張する必要があります。別に大した処理ではありませんが、VLOOKUP関数を設定してる箇所が多いと修正箇所も増えるので、面倒です。

【名前の定義をつかってみる】

そこで、範囲に「名前」を設定してみましょう。今回は2か所設定します。

一つ目は、A2:A4を範囲選択して、名前ボックスをクリックして、「名前」=あだ名を入力することで設定できます。

今回は、『入力コード』としました。見出し名と被らないようにするといいですね。

この一つ目は、入力規則のリストの為です。
二つ目も設定してきましょう。

A2:C4を範囲選択して、『商品リスト』と名前を設定します。

【数式を「名前」を使って修正する】

数式を修正していきます。
VLOOKUP関数ダイアログボックスを表示しましょう。

範囲を一度削除して、数式タブの「数式で使用」にある、商品リストをクリックします。

ダイアログボックスはOKをクリックして、数式が次のように変わったことを確認してみましょう。

=IF(B2="","",VLOOKUP(B2,商品リスト,2,FALSE))
このように、範囲を設定した「名前」で置き換えても、結果は変わりません。

入力規則のリストも修正します。

B2:B4を範囲選択して、データの入力規則のダイアログボックスを表示します。

元の値に、先程と同様に、数式タブの「数式で使用」にある、入力コードを選択します。

そして、OKボタンをクリックします。

あと少し処理をすれば、完成します。
今やっているのは、範囲に名前を付けただけにすぎません。

結局商品アイテムが増えれば、設定した名前の範囲を修正しなければいけません。

それでは、中途半端な改善になってしまいます。

【テーブルにする】

商品アイテムの表をテーブルにします。これで、完成します。

では、シートを移動して、A1をクリックして、挿入タブから「テーブル」を選択します。

すると、テーブルの作成ダイアログボックスが表示されますので、OKボタンをクリックします。

表がテーブルになりました。

これで、商品アイテムが増えても、数式を修正する必要はありません。

このように、名前の定義とテーブルを組合すことで、作業効率を改善することができます。

5/13/2019

Excel。名前の定義って何?範囲が増える時に使うといいの?【Name definition】

Excel。名前の定義って何?範囲が増える時に使うといいの?

<名前の定義とテーブル>

日々の販売金額を入力すると、月の合計・平均・最大値が算出されるという表があります。

E2は期間の合計なので、

=SUM(B2:B6)
という数式を設定するわけですが、引数にはB2:B6という固定した範囲が設定されています。
同様に、E3には、平均。E4には、最大値と算出するための数式を設定していきます。

E3の数式は、
=AVERAGE(B2:B6)
E4の数式は、
=MAX(B2:B6)
と設定しています。

単純に一度だけの算出ならば、これで全く問題ないのですが、翌日の10月6日のデータを入力しても当然、範囲がB2:B6と固定されていますので、自動的に拡張されませんので、計算式の修正が発生します。

一つだけならいいのですが、複数変更する場合、面倒ですし、修正ミスが発生する危険性も増します。

そこで、名前の定義で名前を設定してその名前を数式で使うと、時短というか作業効率を改善することができます。

【名前の定義:範囲に名前をつける】

セルや範囲に名前を設定することができます。それが、名前の定義。

早速設定していきましょう。
B2:B6を範囲選択して、名前ボックスをクリックして、名前を入力します。

今回は、わかりやすいように、「販売データ」と設定しました。

【数式で使用する】

F2に名前を使ったSUM関数を作っていきましょう。

オートSUMボタンを使った場合、オートSUMボタンをクリックすると、=SUM()と表示されます。その引数に名前を入力しますが、数式タブの「数式で使用」をクリックすると、先程設定した「販売データ」という名前がありますので、クリックします。

F2の数式は、
=SUM(販売データ)
となりました。同じように、平均と最大値も名前を使って算出してみましょう。

E列とF列とも同じ結果になっています。
【データが増えると一目瞭然】
7行目にデータを増やしてみましょう。

今のところ、E列もF列も数値は変わっていません。では、名前の定義の範囲を変更しましょう。

数式タブの「名前の管理」をクリックして、名前の管理ダイアログボックスが表示されますので、範囲を変更します。

名前の管理ダイアログボックスを閉じます。F列は範囲が変わったことで、算出結果も変化したことがわかります。

このように、同じ範囲を使っている計算式などがある場合には、「名前の定義」を使うことで、変更作業が激減します。

【さらにテーブルにするといい】

確かに名前の定義で設定した名前を使うことで、数式の範囲を変える必要はなくなりましたが、データが増えるたびに、「名前の管理」で範囲を修正するのは、これまた「面倒」
そこで、A1からの表をテーブルにしてみましょう。

挿入タブのテーブルをクリックして、テーブルの作成ダイアログボックスが表示されますので、範囲を確認して、OKボタンをクリックします。

テーブルが設定されました。

データを追加してみましょう。

「名前の管理」で変更しなくても、増えたデータ分も反映されていますね。

テーブルにすることで、名前の範囲も自動的に拡張されるようになっています。

要するに、名前の定義とテーブルを合わせて使うことで、数式の範囲修正という作業から解放されます。

7/13/2018

Excel。入力規則のリストのアイテム数が多いのでカテゴリー分けしたリストにするには?【Input rule】

Excel。入力規則のリストのアイテム数が多いのでカテゴリー分けしたリストにするには?

<入力規則リスト&名前の定義&INDIRECT関数>

入力を簡単にする、あるいは、入力ミスを抑制するなどよく使用する機能に、
入力規則のリストというのがあります。

VLOOKUPとペアで使うこともありますよね。

しかし、この入力規則のリストですが、件数が多くなってしまうと、
当然リストが大きくなってしまって、
使い勝手が悪くなってしまう欠点があります。

例えば次のような、都道府県を選択するような場合ですね。

47都道府県ありますから、その中から選ぶぐらいなら、
入力したほうが早いですよね。

ただ、都道府県のように、知っているものならば、
まだいいのですが、商品の型番だと、
入力すること自体が難しいことも想定されます。

そこで、カテゴリーを一度選んだら、
そのカテゴリーに所属しているアイテムだけがリストで表示してくれるようになると、
これらの問題から少しは解放されるわけですね。

作りたいのは、次のようなものです。

最初は、地域というカテゴリーを選びます。例えば「甲信越」を選びます。

次に、都道府県を選ぶと、甲信越に所属している、
都道府県のみがリストに表示されるようになっています。

カテゴリー式入力リストというか、2段式入力リストという感じでしょうか。

こうすることで、長いリストであっても、
細分化されるので、使い勝手が改善されます。

では、どのようにしているのでしょうか?

【範囲に名前の定義を設定】

甲信越を地域で選択したら、山梨・長野・新潟がリストに表示したいわけですね。

東北を地域で選択したら、
青森・秋田・岩手・山形・宮城・福島とリストに表示したいわけです。

なので、それぞれの地域(カテゴリー)に該当する都道府県に
名前を定義してあげる必要があります。

それぞれの地域に該当するものに名前を定義しておきます。

名前の定義は、一番簡単な方法で設定するには、
範囲選択して、名前ボックスに、名前を入力すれば設定することが出来ますね。

【入力規則のリストは、INDIRCT関数を使う】

そして、入力規則のリストを設定していくのですが、
A2をセル参照させても、連動することが出来ません。一応確認しておきましょう。

B2をクリックして、データタブの入力規則をクリックして、
データの入力規則ダイアログボックスを表示しましょう。

入力値の種類を「リスト」にして、元の値を、
A2に設定してOKボタンをクリックしましょう。

このように、先ほど設定している、名前の定義と連動していません。

そこで連動するために登場するのが、INDIRECT関数です。

入力規則のリスト+INDIRECT関数の組み合わせで解決することができます。

では、先ほど設定した、入力規則を、一度クリアしておきましょう。

先ほどの入力規則のリストにある、元の値には、
=INDIRECT($A$2)
と入力します。
そして、OKボタンをクリックしましょう。それでは、確認してみましょう。

このように、A2の地域名に合わせた、
都道府県のみがリストに表示されているのが確認できますね。

入力規則のリストを使いたいけど、リストに含めたい項目が多い場合は、
2段階式リストみたいにすることで、利便性を向上することができますよ。

5/28/2015

Excel。INDEIRECT。入力規則のリストはINDIRECT関数を使うと切り替えることが出来る


Excel。入力規則のリストはINDIRECT関数を使うと切り替えることが出来る

入力規則+INDIRECT関数+名前の定義


先日ご質問があった中から、
今回は、入力規則のリスト+INDIRECT関数+名前の定義のテクニックをご紹介ようと思います。

どんな質問だったのかというと、ある帳票があって、入力ミスを防ぐ意味もあって、
入力規則のリストからアイテムを選択できるようにしたいんだけど、
項目名によって選択できるアイテムがかわるので、入力規則のリストがつかえないので、
困っているので何かいい方法ってありませんか?とのことでした。

なんでも、手入力で頑張っているというものでした。

確かに、現場では様々なケースがありますので当然今回のようなこともあるでしょう。

ということで、こんな方法はどうかなぁ~ということでやってみます。

下記の表があります。

B4に路線名。つまり中央線か山手線をいれると、
C4には、中央線なら中央線の山手線なら山手線の駅名を、
C4に入力することが出来るようにしたいというのが、今回の目的です。

では、B4に入力規則のリストを設定していきます。

B4をクリックして、データタブのデータの入力規則をクリックします。

データの入力規則ダイアログボックスが表示されますね。

設定タブの条件の設定にある、
入力値の種類を リストに設定します。

元の値は、中央線・山手線と入力されている範囲、

=$E$3:$F$3 

を入力してOKボタンをクリックしましょう。

B4に▼が表示されましたので、
クリックすると、
中央線と山手線が選択できるようになっていますね。これが入力規則のリストですね。

そして本題はここから、
中央線と入力したら、C4の入力規則のリストには、中央線の駅名が、山手線にしたら、
山手線の駅名がリストにあるようにしたいというわけです。

そこで、登場するのが、

INDIRECT関数です。


このINDIRECT関数は名前などをダイレクトに使用することが出来る関数です。

では、準備からいきましょう。
E4:E10に中央線という名前をF4:F9に山手線という名前を定義します。

これらの範囲に名前を設定してその前を使って切り替えるようにしていきます。

E4:E10を範囲選択して、名前ボックスをクリックして、中央線と入力します。

続いて、F4:F9を範囲選択して、同じように名前ボックスに山手線と入力して、
それぞれの範囲に名前を設定します。範囲にニックネームをつける感じですね。

この名前のポイントは、B4で設定したリストにあるものにします。
山手線内回りとかにしてはいけないわけです。

それでは、C4をクリックして、データタブの入力規則のダイアログボックスを表示しましょう。

入力値の種類は、リストに合わせるところは先程と同じです。

元の値には、 =INDIRECT(B4)  と入力します。
INDIRECT関数でB4の文字を参照します。

すなわち、B4に入っている文字そのものが元の値に入力されるという意味になります。

つまり、元の値には、 中央線 と入力したのと同じことになります。

そして、この中央線というのは…そう、範囲選択した時に設定した名前ですね。

中央線と名前を設定した範囲ですので、E4:E10ということになります。


あとはOKボタンをクリックしましょう。
C4の▼をクリックしてみると、

中央線の駅名がリスト内にありますよね。では、B4を山手線にしてみましょう。

すると今度は、山手線の駅名がリスト内にありますよね。
このようにINDIRECT関数を使うと入力規則のリストを切り替えることができますので、
参考にしてみてください。

VLOOKUP関数との組み合わせもバッチリですよ。

Excel。VLOOKUP関数。その9 範囲の表が複数ある場合ってどうするの?
http://infoyandssblog.blogspot.jp/2014/08/excelvlookup9.html