2024/03/28
【業務】お問い合わせ管理(履歴を瞬時に表示)

【業務】お問い合わせ管理(履歴を瞬時に表示)

#テーブル #フィルター #ListObject #AutoFilter #COUNTIF #データの入力規則 #条件付き書式 #シートモジュール #Worksheet_Change

YouTubeで開く

以下の機能を組み込んだお問い合わせ管理表の開発方法について解説しています。
・電話番号を入力すると同時に、過去の履歴が抽出される機能
・何かしら新規で入力すると同時に、[登録No]と[登録日]、[今までの登録回数]が自動で表示される機能
・瞬時に絞り込みを解除するボタン

こちらでは、電話番号を基準に絞り込みを行っていますが、必要に応じてメールアドレスや氏名などと変更することができます。

00:00 挨拶
01:13 完成イメージ
03:43 準備
04:32 作成(シートの設定)
14:56 作成(自動入力+自動絞り込み)
27:50 作成(絞り込み解除)
31:00 作成(実行ボタン)
31:48 完成
33:28 プログラムの全体
37:40 まとめ

▼準備ファイル▼

2024/03/27
【Excel】注釈を自動で目立たせる

【Excel】注釈を自動で目立たせる

以下の表のように、「※」の付いている文字の色を赤色にしている場合、「※」の変更時に「文字の色を黒色して、次の文字の色を赤色にして…」というのは大変になります。

今回は、「※」から始まる文字に関して、自動で文字の色を赤色にする方法について解説していきます。

指定した条件を満たしたセルの書式(文字の色やセルの背景色など)を自動で変更するには、『条件付き書式』を活用します。

まず、色付けする可能性のある対象の範囲を選択し、[ホーム]タブ内の[条件付き書式]から[新しいルール]を選択します。

表示された以下の画面にて、[指定の値を含むセルだけを書式設定]を選択します。

表示された以下の画面にて、[特定の文字列]と[次の値で始まる]をリストから選択し、「※」と直接入力します。

こちらの設定にて、「※」から始まる文字が入力されたセルに関して、書式を変更するという条件を設定することができました。

次に、変更する書式を設定していきます。
右下の[書式]を選択し、[セルの書式設定]の画面にて、好みの書式を設定します。
こちらでは、[フォント]タブから文字の色を赤色にしています。

好みの設定ができましたら、[OK]を選択して確定することによって、以下のように「※」を文の先頭に入力するだけで文字の色を赤色にすることができます。

必要に応じて、「【注意】」から始まる文字は赤色、「【確認】」から始まる文字は青色、などと複数の内容を条件付き書式にて設定すると、より効率的に資料を作成できるかと思います。

2024/03/25
【Excel】誰でも簡単に集計表を作成

【Excel】誰でも簡単に集計表を作成

以下の表を元に、商品ごとの売上表を作成したいけど、作り方が分からないという場合や、何から分析して良いのか分からないという場合に活用できる便利な機能を紹介します。

まずは、表の中にカーソルを移動させ、[挿入]タブ内の[おすすめピボットテーブル]を選択します。

選択すると、以下のように色んなパターンの集計表が表示されます。

この中から目的にあった表の[新しいワークシート]もしくは[既存もワークシート]を選択することで、以下のようなピボットテーブルを瞬時に作成することができます。

こちらの集計表は、元の表が参照されているため、元の表を修正した際は、右クリックメニューから[更新]を選択することで最新情報に更新することができます。

ただ、元の表の最終行にデータが追加された場合は、集計に含まれない可能性があります。

データを追加した際は、作成したピボットテーブルを選択し、[ピボットテーブル分析]タブ内の[データソースの変更]から参照している範囲を拡張する必要があります。


データの追加時に、範囲を毎回変更するのが大変に感じる場合は、元の表を選択し、[挿入]タブ内の[テーブル]を選択してテーブルに変換にしておくと、データの増減に対応させることができます。

2024/03/22
【Excel】表に自動で罫線を設定(カテゴリー別の罫線も設定)

【Excel】表に自動で罫線を設定(カテゴリー別の罫線も設定)

今回は、データの増減に対応させた罫線を設定する方法について解説していきます。
また、以下のようにカテゴリーなどの特定の項目の値を元に、罫線の種類を変更する方法についても解説していきます。

①表の増減に対応させた罫線を設定

まずは、以下の表に対し、データの増減に対応させた罫線を設定します。
自動で表を拡張する機能として「テーブル」がありますが、こちらではテーブルを使わずに設定していきます。

特定の条件を満たしている時に、罫線などの書式を変更するには、「条件付き書式」を活用します。
今回の場合、以下の条件を元に罫線を設定していきたいと思います。

「Noの項目に値が入力されている場合」


まずは、設定する対象のセルを選択する必要があります。
今回の場合は、セルA3からC列の一番下までのセルに設定していきます。

その場合、AからC列を全選択し、Ctrlキーを押しながら不要なセルを選択して、選択を解除することで、以下のように対象のセルのみを選択します。

選択できましたら、[ホーム]タブの中の[条件付き書式]の[新しいルール]を選択します。

以下の画面にて、[ルールの種類]を[数式を使用して、…]にし、テキストボックス内に以下の数式を入力します。

=$A3<>""

テキストボックス内に設定する数式は、現在の選択基準のセル(A3)に対しての数式である必要があります。
選択基準のセルに罫線を設定する時は、選択基準のセルに値が何かしら入力されている場合になるため、こちらでは、「選択基準のセルが空白でない場合(=$A3<>””)」と入力しています。

他の選択範囲に関しては、入力した数式がコピーされて設定されます。
そのため、相対参照や絶対参照を意識した数式を入力する必要があります。
こちらの場合は、値の有無を確認するのは必ずA列になるため、「$A3」とA列のみに「$」を加え固定しています。


数式の入力ができましたら、[書式]より罫線の設定を行います。

こちらで設定した内容は、「点線の下の罫線」になります。
※罫線の設定画面の予め表示されている太い薄い線は、未設定という意味になります。

この設定で確定することによって、以下のようにデータの増減に対応させて罫線を設定することができました。


②特定の項目の値を元に罫線を設定

次は、特定の項目の値を元に罫線を設定する方法について解説していきます。
こちらでは、カテゴリーの項目の値を元に、以下のように罫線を設定し、同じカテゴリーのデータを目立たせていきます。

このような設定を行う場合に関しても、「条件付き書式」を活用することで実現できます。

まずは、条件を考える必要があります。
今回の場合は、以下のような条件になります。

「Noの項目に値が入力されている場合、尚且つ、カテゴリーの項目の値が1つ下の値と異なる場合」

まずは、設定する対象のセルを選択する必要があります。
先ほどの同じ範囲を選択し、[ホーム]タブの中の[条件付き書式]の[新しいルール]を選択します。

現在の選択基準のセルは、先ほどと同様にセルA3になるため、セルA3に対する条件を数式で表現していきます。

「Noの項目に値が入力されている場合、尚且つ、カテゴリーの項目の値が1つ下の値と異なる場合」という条件を数式で表現すると、以下のようになります。

=AND($A3<>"",$B3<>$B4)

こちらでは、AND関数で「Noの項目に値が入力されている場合($A3<>””)」と「カテゴリーの項目の値が1つ下の値と異なる場合($B3<>$B4)」を設定しています。

この条件式を、[数式を使用して、…]のテキストボックス内に設定し、[書式]より罫線を設定します。

これで確定することにより、以下のようにカテゴリー単位でも罫線を設定することができました。

[補足]

複数の条件付き書式を設定しているセルで、複数の条件を満たしている場合、基本は最後に設定した条件付き書式が優先されて反映されます。
優先順位を変更したい場合は、[ホーム]タブの中の[条件付き書式]の[ルールの管理]より行えます。

2024/03/21
【業務】予定の編集も行える万年カレンダー

【業務】予定の編集も行える万年カレンダー

#万年カレンダー #Day #WeekDay #DateSerial #標準モジュール #シートモジュール #Worksheet_Change

YouTubeで開く

卓上カレンダー風の万年カレンダーになります。
年月を変更するだけで、カレンダーを対象の年月に切り替えることができます。
また、こちらのカレンダーでは、予定の直接入力ができ、年月を変更したとしても予定を保持することができます。

00:00 挨拶
00:41 完成イメージ
02:48 準備
04:14 作成(未保存表示)
14:04 作成(カレンダー表示)
37:37 作成(カレンダー更新)
39:32 作成(表示更新ボタン)
40:56 完成
42:45 プログラムの全体
50:06 まとめ

▼準備ファイル▼

2024/03/20
【Excel】セル自体が斜めになる!?

【Excel】セル自体が斜めになる!?

Excelのセルが以下のように斜めになることはご存じでしょうか。

長い項目名などの場合は、このように斜めにすることによって見やすくなるケースがあります。
こちらでは、セルを斜めにする方法について解説していきます。

セルを斜めにするためには、セル内の文字の角度を変更する必要があります。
まずは、以下のように文字を傾けます。

こちらでは、[ホーム]タブの中の[方向]より[右回りに回転]を選択しています。
[セルの書式設定]の[配置]より、好みの角度に設定しても問題ございません。


後は、文字を傾けたセルに罫線を設定することによって、文字の傾きに合わせてセルを傾けることができます。

それぞれのセルに異なる背景色を設定すると、どのセルが傾いているのかが確認しやすくなります。

傾く対象のセルは、「文字を傾けているセルで、尚且つ、罫線に触れているセル」になります。
他の色んなパターンでセルの傾きを確認すると、以下のようになります。

[補足]

セルに文字が入力されていない場合は、セルを傾けることができません。
セルを傾けるには、最低1文字は何かしら入力する必要があります。

2024/03/18
【Excel】新機能:画像をセル内に配置

【Excel】新機能:画像をセル内に配置

現時点(2024/3)では、365の新機能として画像をセル内に配置することができるようになりました。
その機能について解説していきます。

①セル内に直接画像を挿入する方法

[挿入]タブから[画像]を選択すると、[セルに配置]というメニューが表示されます。
こちらから画像を選択することで、現在選択されているセル内に画像を配置することができます。

画像が配置されたセルを選択すると、数式バーに「画像」などの文字が表示されます。

そのため、画像が配置されたセルを編集すると画像が消えてしまいます。(文字のみになってしまう)

配置された画像をセルの上に取り出したい場合は、対象のセルを選択した時に表示される右上のアイコンをクリックします。

アイコンが表示されない場合は、対象のセルの上で右クリックし、[セル内の画像]から[セルの上に配置]を選択することで、取り出すことができます。


②セルの上の画像をセル内に移動する方法

セルの上に配置されている画像をセル内に移動したい時は、その対象の画像の左上端を配置したいセルの上に移動し、画像の右上に表示されるアイコンをクリックします。

アイコンが表示されない場合は、画像の上で右クリックし、[セル内に配置]を選択することで、セル内に配置することができます。


補足1

セル内に配置した画像は、数式で参照することができます。

補足2

対応していないExcelで開くと、セル内の画像は「#UNKNOWN!」と表示されます。

2024/03/15
【Excel】FILTER関数で必要な項目のみを抽出

【Excel】FILTER関数で必要な項目のみを抽出

FILTER関数は、以下のように指定した表のデータから指定した条件に合ったデータのみを抽出する時に活用する関数になります。

実は、必要な項目のみを抽出する際にも、FILTER関数を活用することができます。
今回は、指定した項目をFILTER関数で抽出する方法について解説していきます。

抽出する方法はいくつかあるため、順番に解説していきます。

FILTER関数の使い方は次の通りです。

=FILTER(配列, 含む, [空の場合])
// 配列:絞り込み対象の表の範囲など
// 含む:絞り込み条件
// [空の場合]:条件を満たす対象のデータが見つからない時に表示する内容(省略時はエラーが表示される)

この含むという条件ですが、通常は以下のように指定します。

=FILTER(B3:F12,E3:E12="男")
// 性別の項目が「男」の場合

ここで設定されている条件式は「E3:E12=”男”」になります。
この条件式は、「E3:E12」の1列に対しての式になります。

実は、ここで指定する式を行方向にすることで、行に対しての絞り込みができます。
行に対しての絞り込みを行うことによって、必要な項目のみを抽出することができます。


まずは簡単な方法から確認していきます。
必要な項目のみを抽出する場合、その対象の項目名の上に「・」などの任意の文字を入力します。

次に、その項目名の上の文字を条件式に加えます。
例えば、上記の画像のように「・」という文字を入力している場合は、抽出する条件式は「B1:F1=”・”」になります。

実際に、その条件式を用いて数式を作成していきます。

=FILTER(B3:F12,B1:F1="・")

このように必要な項目のみを抽出することができました。

抽出した項目に対して、更にデータの絞り込みを行いたい場合は、このFILTER関数をFILTER関数の配列の引数に設定するという方法で実現します。

=FILTER(FILTER(B3:F12,B1:F1="・"),E3:E12="男")

ただ、この方法ですと、項目名の上に「・」などといった文字を入力する必要があります。
そのため、次に「・」などといった文字を入力せずに項目を抽出する方法について解説していきます。

そのためには、「B1:F1=”・”」というような条件式が何を表しているのかを理解する必要があります。

試しに、「B1:F1=”・”」という条件式を単体で入力してみます。

= B1:F1="・"

入力すると、一行のTRUEとFALSEで構成された値が表示されるかと思います。

つまり、FILTER関数の条件式に設定する値とは、「抽出したい位置がTRUEになり、それ以外がFALSEとなるような式」であれば良いということが分かります。

直接、TRUEとFALSEで構成された数式を入力するには、カンマ区切りの値を「{」と「}」で囲みます。

={TRUE,FALSE,FALSE,TRUE,TRUE}

このように直接入力することができます。

また、TRUEは0以外の数値、FALSEは0としても表現することができます。
実際に、1と0に置き換えてみると以下のようになります。

={1,0,0,1,1}

この式をFILTER関数に設定することで、項目名の上に「・」などといった文字を入力しなくても、好みの項目のみを抽出することができます。

=FILTER(B3:F12,{1,0,0,1,1})

このように好みの項目のみを抽出することができました。

ExcelVBAレベル確認

ただ、「{1,0,0,1,1}」などといった値を入力するのは、若干の手間になります。
1と0を入力している時に、誤って1つずつずれてしまう可能性もあります。

そのため、以下のようにIF関数やSWITCH関数などを用いて表現するのも良いかと思います。

IF関数の場合は、以下のようになります。

=IF((B2:F2=B2)+(B2:F2=E2)+(B2:F2=F2),1,0)
// 抽出したい項目を「(B2:F2=B2)」のように「+」で並べる
// 「+」はORという意味なる
=FILTER(B3:F12,IF((B2:F2=B2)+(B2:F2=E2)+(B2:F2=F2),1,0))

ちなみに、以下のようにIF関数を使わなくても表現することができます。

=FILTER(B3:F12,(B2:F2=B2)+(B2:F2=E2)+(B2:F2=F2))

SWITCH関数の場合は、以下のようになります。

=SWITCH(B2:F2,B2,1,E2,1,F2,1,0)
// 抽出したい項目を「B2,1」のように必要な分を並べる
// 「B2」などと指定された項目名の場合は1、それ以外は0が返される
=FILTER(B3:F12,SWITCH(B2:F2,B2,1,E2,1,F2,1,0))

これらは例になるため、他の方法を考えてみるのもよいかと思います。

2024/03/14
【業務】シートを指定して一括抽出

【業務】シートを指定して一括抽出

#データ抽出 #Worksheets #データの入力規則 #標準モジュール

YouTubeで開く

抽出元の表にてシート名を指定することで、指定したシートに一括でデータを抽出することができる機能になります。

FILTER関数などを用いて、他のシートに抽出した場合は、抽出元の表の値が変わったりした際に、抽出先のシートのデータの行が動いてしまうことがあります。
そのため、抽出先のシートの別の列に項目を追加して直接記入していると、データの相関性が保たれなくなることがあります。

しかし、こちらの機能では、VBAにより抽出しているため、常に相関性が保たれます。
そのため、抽出したデータは抽出したデータとして、項目を追加するなりと管理することができます。

※動画内の完成イメージでお見せしたファイルは、IT予備メンバー限定で配布しています。

00:00 挨拶
01:12 完成イメージ
03:39 準備
04:34 作成(抽出リスト)
05:44 作成(抽出機能)
22:54 作成(抽出ボタン)
23:44 完成
25:52 プログラムの全体
31:58 まとめ

▼準備ファイル▼

2024/03/13
【Excel】条件付き書式で検索機能を作成

【Excel】条件付き書式で検索機能を作成

以下のような、複数の項目に名前が入力されている表があるとします。
この表から特定の人物を確認する場合、フィルターでの絞り込みでは、項目単位になり確認が難しいです。

そこで、[検索]のセルに入力した名前と一致する表の中の名前のセルを、自動で色付けする設定方法について解説していきます。

指定した条件を満たしているセルのみに自動で色付けをするという設定は「条件付き書式」にて行います。

まず初めに、検索対象のセルを選択します。

選択できましたら、[ホーム]タブの中の[条件付き書式]の[新しいルール]を選択します。

表示された設定画面にて、[指定の値を含むセルだけを書式設定]を選択し、[セルの値]が[次の値に等しい]とし、隣のテキストボックスを選択した後に検索欄のセルを選択します。
そのようにすると、以下のように「=$C$2」と検索欄のセルのアドレスが入力されます。

後は、[書式]を選択して、好みの書式を設定します。
こちらでは、[塗りつぶし]タブの中の黄色を設定しています。

このような設定ができましたら、[OK]を選択することで、以下のような検索機能を実現することができます。

Excel本紹介

サンプルファイルを配布しているため、ぜひご確認ください。

▼サンプルファイル▼

2024/03/11
【Excel】姓と名の間に半角スペースの入力を強制

【Excel】姓と名の間に半角スペースの入力を強制

以下のような名前を入力する項目に、「姓と名の間に半角スペースを入力する」というルールを設けているとします。

このルールを入力時に強制する設定方法について解説していきます。

特定の条件を満たしている値のみの入力しか許可しないようにするには、「データの入力規則」を活用します。

まずは、データの入力規則に設定する条件式を考えていきます。
条件式では、「姓と名の間に半角スペースが入力されている場合」という内容を表現する必要があります。

特定の文字に半角スペースが含まれているのかどうかを確認するには、COUNTIF関数を活用します。

=COUNTIF(範囲, 検索条件)
// 指定した範囲の中で検索条件を満たしている数を返す

「半角スペースを含む」という条件を言い換えると「半角スペースの左右に何かしらの文字が入力されている」とも表現できます。
この「何かしらの文字」というものは、ワイルドカードを使用することで表現することができます。

・何かしらの文字(1文字):?
・何かしらの文字(0文字以上):*

ワイルドカードを使用して、「?_?」(_は半角スペース)と表現すると、「半角スペースの左右に何かしらの1文字が入力されている」という意味になります。

ただ、左右には苗字や名前が入るため、1文字とは限りません。
そのため、「0文字以上」という条件を加えて、「*?_?*」(_は半角スペース)と表現することができます。

実際にCOUNTIF関数で表現した例が以下になります。

=COUNTIF(B3,"*? ?*")

このように、半角スペースが含まれているセルに対してのみ、「1」と表示することができました。


では、この式を「データの入力規則」にて設定していきます。

対象の範囲を選択し、[データ]タブの中の[データの入力規則]を選択します。

表示された設定画面にて、[入力値の種類]を「ユーザー定義」にし、[数式]に先ほどの数式を入力します。

=COUNTIF(B3,"*? ?*")
// B3はアクティブセル(他の選択範囲には相対参照で反映される)

必要に応じて、[エラーメッセージ]タブにて、エラーメッセージの設定をすると良いです。

以上の設定により、設定した範囲に関しては、半角スペースの入力がない場合に警告が表示され、入力ができなくなります。

※データの入力規則で設定した入力制限は、セルへの値の貼り付けには対応しておりません。そのため、この設定は直接入力される場合に関してのみに制限がかかります。

2024/03/08
【Excel】SORTBY関数で項目を好みの順番にする

【Excel】SORTBY関数で項目を好みの順番にする

SORTBY関数を用いて項目を好みの順番に並べ替える方法について解説していきます。

まずは、SORTBY関数について解説していきます。

SORTBY関数は、表を並べ替える関数になります。

=SORTBY(配列, 基準配列1, [並べ替え順序1], [基準配列2, 並べ替え順序2], … )
// 配列:対象の表
// 基準配列1:並べ替えたい基準
// [並べ替え順序1]:基準配列1の順序を指定(1=昇順, -1=降順)※省略時は昇順
// [ ]に囲まれている引数は省略可能

例えば、以下の左の表に関して、「性別」の項目を基準に昇順にする場合は、以下のような数式になります。

=SORTBY(B3:E12,D3:D12)

「性別」の項目を基準に降順にする場合は、以下のような数式になります。

=SORTBY(B3:E12,D3:D12,-1)

また、[基準配列2, 並べ替え順序2]以降の引数を設定することで、複数の項目を基準に並べ替えることができます。
例えば、先ほどの結果に加えて、「生年月日」の項目を昇順する場合は、以下のようになります。

=SORTBY(B3:E12,D3:D12,-1,E3:E12,1)

次に、本題の項目の並べ替えです。

SORTBY関数は、列方向の並べ替えにも対応しています。
列方向に並べ替える場合は、基準配列の引数に横向きの範囲を指定します。

例えば、以下の左の表のように、項目名の上に数値を入力することで、その数値を基準に並べ替えることができます。

=SORTBY(B2:E12,B1:E1)

このように項目を好みの順番にすることができます。
ただ、表の上に「1,3,2,4」などの数値を入力したくないこともあるかと思います。
そのような場合に関しても、好みの順番に並べ替える方法があります。


表の上に「1,3,2,4」などと直接入力しない場合は、『配列定数』を活用します。
配列定数を用いて、「1,3,2,4」を参照する場合と同じ値を表現します。

配列定数の活用例は以下になります。

={1,3,2,4}
// 配列定数として列方向の値を表現する場合は、「{ }」で囲み、「,」区切りで値を指定する

ちなみに、行方向の値を表現する場合は、「;」区切りにします。

={"あ";"い";"う";"え";"お"}

「,」と「;」を組み合わせることで、表を表現することもできます。

={1,"あ";2,"い";3,"う";4,"え";5,"お"}

配列定数を用いることで、以下のように表現することができます。

=SORTBY(B2:E12,{1,3,2,4})

FILTER関数を用いて、一部のデータを抽出した後に、項目の順番を並べ替えたい場合は、SORTBY関数と組み合わせると良いです。
先ほどの表から「性別」が「男」のデータのみを抽出した例が以下になります。

=SORTBY(FILTER(B3:E12,D3:D12="男"),{1,3,2,4})

SORTBY関数についての詳しい解説は以下になります。

>解説動画

FILTER関数についての詳しい解説は以下になります。

>解説動画