2024/07/20
【番外-037】表の空白セルを上の値で埋める

【番外-037】表の空白セルを上の値で埋める

#検索と選択 #空白セル #集計

YouTubeで開く

表のカテゴリーの項目などで、同じ値が空白になっている表に対し、空白を全て埋める方法について解説しています。

00:00 挨拶
00:21 空白を上のセルの値で埋める方法
03:08 まとめ

▼準備ファイル▼

2024/07/19
【Excel】シフト表への入力を爆速にする

【Excel】シフト表への入力を爆速にする

以下のシフト表のように、「休」「早」「遅」といった文字を入力する際、毎回、直接入力するのは大変になります。
データの入力規則によりドロップダウンリストを活用した場合に関しても、1つ1つを選択して入力するのは大変です。

今回紹介する方法を使うことで、「1」を入力したら「休」、「2」を入力したら「早」を表示するなどと、1つのキーでシフト表に入力することができるようになります。


数値に対して割り当てる

まずは、「1」には「休」などと、数値に対して特定の文字を割り当てる方法について解説していきます。

そのような場合は、条件付き書式を活用します。

初めに、「休」などといった文字を入力する可能性のある範囲を全選択し、[ホーム]タブより[条件付き書式]の[新しいルール]を選択します。

次に以下の画面にて、[指定の値を含むセルだけを書式設定]を選択し、「セルの値、次の値に等しい、1(直接入力)」となるように指定します。

次に書式を設定します。
[書式]を選択し、表示された画面の[表示形式]タブより[ユーザー定義]を選択して、テキストボックス内に「”休”」と入力します。

表示形式の設定が出来ましたら、[塗りつぶし]タブを選択し、好みの色を設定しておくと、「1」が入力されたセルの背景色を変更することができます。

これで確定し、条件付き書式の設定画面を閉じることで、「1」という数値に対して「休」という文字を割り当てることができます。

セルの背景色に関しても、[塗りつぶし]にて設定した色が反映されます。
ただ注意点として、この「休」という文字は見た目のみになります。
そのため、COUNTIF関数などで集計する際は、元の値の「1」に対して集計する必要があります。

他の「早」や「遅」に関しても、同様の手順で設定することができます。


文字に対して割り当てる

先ほど紹介した方法では、「1」や「2」などといった数値に対してしか設定することができません。
シフト表などに入力する文字に、「休」「早」「遅」以外にも沢山のパターンが存在する場合は、数値ではなくアルファベットの頭文字に割り当てた方が、入力が楽になる可能性があります。

数値ではなく、文字に対して割り当てる場合は、条件付き書式の設定画面にて、「セルの値、次の値に等しい、a(aに対して割り当てる場合)」までは同じ手順になります。

[書式]の設定画面により、[塗りつぶし]を設定する方法に関しても同様なのですが、[表示形式]の設定のみ異なります。

先ほどは、「”休”」と入力したのに対し、文字に対して割り当てる場合は、「;;;”休”」と先頭に「;」を3つ加える必要があります。

以上の手順で設定することにより、文字に対して文字を割り当てることができます。

表示形式の意味について知りたい場合は、下記の記事が参考になります。

>【1-04】セルの表示形式の基礎から応用

2024/07/18
【便利】複数ブックを1つに結合

【便利】複数ブックを1つに結合

#ファイル #フォルダ #Dir #While #For #Workbooks #標準モジュール

YouTubeで開く

複数のブック(Excelファイル)を1つにまとめる機能について解説しています。
増えすぎてしまったExcelファイルを整理する際に活用できます。

それぞれのブックに重複するシート名が存在する場合は、「シート名(2)」などと通し番号が追加されたシート名で結合されます。

00:00 挨拶
00:17 完成イメージ
04:49 準備
05:43 作成(フォルダパスの指定)
06:31 作成(ファイル名一覧取得)
12:57 作成(ファイル結合)
27:41 作成(実行ボタン)
29:01 完成
31:07 プログラムの全体
37:33 まとめ

▼準備ファイル▼

2024/07/17
【Excel】数式の法則性から間違いを見つける

【Excel】数式の法則性から間違いを見つける

以下の表の項目[売上]は、別シートの売上表を参照し、数式で求められています。

一番上の集計されたセルC3の中身を確認すると、SUMIFS関数が入力されていることから、他の集計月に関しても、同じ法則性の数式で求められていると考えられます。

ただ、毎月、別の担当者が集計月を追加している場合は、一部の集計月に異なる数式が入力されている可能性があります。
とは言え、イレギュラーの月のため、異なる数式にしている可能性もあり、勝手に先頭の数式をコピーして相対参照で全体に反映させるのは危険です。

そこで、今回紹介する方法を活用することによって、法則性の異なる集計月を瞬時に見つけ出し、集計結果の確認作業を効率化することができます。

ExcelVBAレベル確認

法則性の異なるセルを見つける

まずは、同じ法則性の数式が入力されていると思われる対象の範囲を選択し、[ホーム]タブの中の[検索と選択]より[条件を選択してジャンプ]を選択します。

次に表示された以下の画面にて、[アクティブ列との相違]を選択し確定します。
※今回は列の指定でしたが、行の指定の場合は、[アクティブ行との相違]を選択します。

以上の作業を行うことで、選択範囲内の法則性の異なるセルを選択することができます。

上記の場合は、5月と10月の集計月が選択されました。
複数のセルが選択された場合は、Tabキーを押すことで、選択を維持している状態でアクティブのセルを変更することができます。
そのため、選択された法則性の異なる範囲に関しては、1つ1つ、中身が正しいかどうかを確認すると良いです。

2024/07/15
【Excel】瞬時にコピーするショートカット

【Excel】瞬時にコピーするショートカット

Excelには、Ctrl+C/Ctrl+Vの組み合わせ以外にも、瞬時にコピーするショートカットが存在します。
表の上の値(数式でも可)を下にコピーする時や、表の左の値(数式でも可)を右にコピーする時に、かなり便利なショートカットを紹介していきます。


上の値を下にコピーするショートカット

上の値を下にコピーする場合は、下のセルを選択した後に、Ctrlキーを押しながらDキーを押すだけになります。

こちらでは、2つのセルを同時にコピーしていますが、項目[商品名]をコピーした後に、項目[金額]をコピーするということもできます。
Ctrl+Dのショートカットを使うことによって、項目[商品ID]の入力から1つ上のセルに戻ってコピーして、下のセルに移動して貼り付けるなどといった手間がなくなり、簡単にコピーすることができます。

ちなみに、複数行にコピーする場合は、コピー対象を先頭とした範囲を選択する必要があります。


左の値を右にコピーするショートカット

左の値を右にコピーする場合は、右のセルを選択した後に、Ctrlキーを押しながらRキーを押すだけになります。

こちらのショートカットも先ほどと同様に、項目[年][月][日]を一括でコピーするのではなく、1つ1つを順番にコピーすることもできます。
複数列にコピーしたい場合に関しては、先ほどと同様に、コピー対象を先頭とした範囲を選択する必要があります。

2024/07/13
【便利】卓上カレンダー形式を表形式に変換

【便利】卓上カレンダー形式を表形式に変換

#IF #TOCOL #TRANSPOSE #WRAPROWS #INDEX #LET #DATE #IFERROR #HSTACK #VSTACK #SORT #カレンダー

YouTubeで開く

1年月1シートの卓上カレンダー形式(ボックス形式)の予定表を、1つの数式のみで1日1行の表形式の予定表に変換する方法になります。

00:00 挨拶
02:01 準備
03:10 作成(名前の定義)
05:12 作成(表形式で抽出)
13:26 作成(表の追加)
14:51 作成(昇順に並べ替え)
15:38 完成
16:00 活用例
18:35 まとめ

▼準備ファイル▼

2024/07/12
【ExcelVBA】Functionで複数の戻り値を設定

【ExcelVBA】Functionで複数の戻り値を設定

通常、Functionの戻り値に設定できる数は、以下のように1つになります。

実は、ある方法を活用することで、複数の戻り値を設定することができるようになります。
その方法について、解説していきます。


複数の戻り値を設定

その方法は、「構造体」を活用するという方法です。
構造体とは、複数の変数をまとめて1つの塊にしたものになります。 詳しくは、下記記事をご確認ください。

>構造体の作成方法

まずは、戻り値として設定したい構造体を、以下のように定義します。
※構造体の名前や要素は、好みの内容で問題ございません。また、構造体は必ずSubよりも前に定義する必要があります。

構造体を定義することができましたら、後は、その構造体を戻り値として設定することで、実現できます。
イメージは、以下のようになります。

こちらの内容では、関数「MULT_NUMBER」でエラーが発生した時に、「MULT_NUMBERでエラーです」と表示し処理を中断するように実装されています。


注意点

注意点として、構造体を戻り値に設定する場合は、必ず戻り値の型を定義する必要があります。
型の定義を忘れてしまうと、以下のようにエラーになります。

2024/07/10
【Excel】VLOOKUP関数で項目名から値を抽出

【Excel】VLOOKUP関数で項目名から値を抽出

通常、VLOOKUP関数では、抽出する列番号を指定する必要があります。
例えば、以下の表から「名前」の項目を抽出する場合は、列番号に2列目の「2」と指定します。

上記の例のような小さな表であれば、列数を数えるのもそこまで大変ではありませんが、項目が多い表になれば数えるのが大変になります。
また、列番号を「2」などと直接指定している場合、項目の位置が変更された時(列の挿入時など)に、抽出対象が変わってしまいます。

それらの対策として、こちらでは、項目名から列番号を取得し、対象の項目の値を抽出する方法について解説していきます。


1. 項目名から列番号を取得

表の中に同じ項目名が存在しないという前提になりますが、項目名から列番号を取得するには、MATCH関数が活用できます。
MTACH関数の使い方は、以下になります。

=MATCH(検査値, 検査範囲, 照合の種類)
// 検査範囲から検査値が見つかった位置(先頭からの通し番号)を返す
// 検査値:検索対象の値
// 検査範囲:検索対象の表
// 照合の種類:検索方法([1]以下、[0]完全一致、[-1]以上)

実際に、項目名から列番号を抽出した例が、以下になります。

=MATCH(C14,B2:E2,0)
// セルB2~E2の範囲からセルC14の値が完全一致する位置(通し番号)を返す

2. VLOOKUP関数の列番号に設定

後は、先ほどの数式をVLOOKUP関数の列番号の引数に設定します。

=VLOOKUP(B15,B3:E12,MATCH(C14,B2:E2,0),FALSE)

このように、項目名から対象の値を抽出することができるようになります。
また、この方法の場合は、セルC14の項目名を変更するだけで、他の項目の値に切り替えることができます。


補足

抽出する項目をよく変更する場合は、[データ]タブから[データの入力規則]を活用して、項目名のリストにすると便利です。

2024/07/08
【Word】字下げや折り返し位置を調整

【Word】字下げや折り返し位置を調整

Wordをメインで活用していない方の場合、「字下げや折り返しの位置の調整方法が分からない…」という方は少なくないかと思います。
そこで今回は、字下げや折り返しの位置の調整を可能とするルーラーについて解説していきます。


ルーラーの活用

ルーラーの左右には、以下のような、五角形と四角形のアイコンが用意されています。

実は、これらのアイコンを操作することによって、字下げや折り返しの位置を調整することができます。

対象の文章にカーソルを移動し(複数の文章の場合は、複数の文章を選択し)、左側の下の四角形のアイコンを操作することで、好みの位置まで字下げすることができます。

その上の五角形のアイコンを操作することで、文章の開始のみを字下げすることができます。

右側の五角形のアイコンを操作することで、折り返しの位置を調整することができます。

まずは、ルーラーのアイコンの操作を覚えるだけでも、Wordでの操作がより快適になります。

2024/07/06
【番外-036】瞬時にシートを移動する方法3選+α

【番外-036】瞬時にシートを移動する方法3選+α

#シート #ショートカット

YouTubeで開く

特定のシートを瞬時に選択する方法について、3通りの方法を解説しています。
シート数の多いExcelファイルを操作する時に、役立つ方法です。

00:00 挨拶
00:40 方法1(先頭または末尾のシートへの移動)
01:07 方法2(特定のシートへの移動)
01:40 方法3(隣のシートへの移動)
03:00 小技
04:56 まとめ

2024/07/05
【Excel】重複入力できないリストを作成

【Excel】重複入力できないリストを作成

以下の「役割のドロップダウンリスト(プルダウン)」に関しては、一度選択して入力した値が、リストの選択肢に表示されなくなります。

また、未割当の値に関しては、「未割当」という項目にて確認することができます。
この仕組みの作成方法について、解説していきます。

ExcelVBAレベル確認

1. リストの作成

まずは、以下の表の「役割」の項目に、「未割当」の範囲を参照したリストを作成します。

リストを表示させる対象の範囲を選択し、[データ]タブの中の[データの入力規則]を選択します。

表示される以下の設定画面にて、[入力値の種類]を[リスト]にし、[元の値]に「未割当」の範囲を指定します。
[元の値]を設定する場合は、テキストボックス内を選択し、その状態で、「未割当」のセルD3からD7を直接選択することで、「=$D$3:$D$7」と入力することができます。

この内容で確定することで、「未割当」の項目の内容をリスト上に表示することができます。
「未割当」の項目に、仮の値を入力することで、反映内容の確認がしやすくなります。

「未割当」の項目には空白のセルを含むため、未入力のセルがある場合は、空白が表示されてしまいます。
こちらの内容は、後に対応していきます。

ExcelVBAレベル確認

2. 数式で「未割当」を抽出

次に、数式を用いて、「未割当」の項目に表示する値を抽出していきます。
そのためには、まずは、リストの選択肢(役割)の一覧を用意する必要があります。
こちらでは、表の隣に一覧を用意しています。

どのように「未割当」を抽出するのかというと、用意した選択肢の一覧の内容と、リストを作成した「役割」の項目の内容を繋げてから、重複のない値のみを表示するという手順で抽出します。

イメージがしやすいように、一度、「役割」のリストの項目に、選択肢のいずれかを入力します。
直接入力してしまうと、前半で設定した[データの入力規則]の設定によっては、エラーになってしまいます。

そのため、選択肢の一覧の一部のセルを「Ctrl + C」などでコピーし、リストのセルに値のみを貼り付けて入力します。
値のみの貼り付けは、「Ctrl + Shift + V」で行えます。
万が一、このショートカットが使えない場合は、右クリックのメニューからでも、値のみを貼り付けることができます。

いくつか入力することができましたら、「役割」の項目の内容と、選択肢の一覧の内容を繋げた複数の値を、「未割当」の項目に数式で表示させます。

縦向きの表を縦方向に繋げるには、「VSTACK関数」を活用します。
この関数は、2022年の夏ごろに追加された関数になります。
Excelのバージョンによっては、活用できない可能性がございます。

VSTACK関数の使い方は、以下の通りです。

=VSTACK(表1, [表2], [表3], … )
// 指定した表を縦方向(垂直方向)に繋げた表を返す

実際に活用すると、以下のようになります。

=VSTACK(F3:F7,C3:C7)

数式は、セルD3にしか入力していませんが、スピルという機能により、自動で拡張されて表示されます。

ただ、この状態ですと、空白のセルが存在する場合は、「0」が表示されてしまいます。
空白のセルを「0」として表示したくない場合は、空白を含む範囲に関して、空白(””)を「&」で結合します。
今回の場合は、セルC3からC7に空白が存在する可能性があるため、その範囲に対して、「&””」を加えます。

=VSTACK(F3:F7,C3:C7&"")
ExcelVBAレベル確認

次に、この抽出した値から、重複のない値のみを抽出する必要があります。
重複のない値のみを抽出するには、「UNIQUE関数」を活用します。
UNIQUE関数の使い方は、以下の通りです。

=UNIQUE(表, 行/列, 表示内容)
// 指定した表から重複を除いた表を返す
// [表]:対象の表
// [行/列]:重複を確認する方法を指定(TRUE:一意の列、FALSE:一意の行)
// [表示内容]:表示する値を指定(TRUE:1回だけ出現する値、FALSE:全ての値)

実際に、VSTACK関数と組み合わせると、以下のようになります。

=UNIQUE(VSTACK(F3:F7,C3:C7&""),FALSE,TRUE)
// 一意の行の対し、1回だけ出現する値を抽出

以上の設定にて、ほぼほぼ完成になります。

ExcelVBAレベル確認

3. リストから空白を除外する

この状態では、リストに未入力のセルがある場合は、以下のように、空白が表示されてしまいます。

この空白が表示されないようにする方法として、「未割当」の項目に入力した数式により、スピルによって拡張された範囲のみをリストに表示させていきます。

まずは、リストを設定した範囲を選択し、[データ]タブの中の[データの入力規則]を選択します。

表示された設定画面にて、[元の値]に入力した「=$D$3:$D$7」を「=$D$3#」に修正します。
「#」というのは、基準となるセル(D3)からスピルにより拡張された範囲を指定するというものです。

これで確定することにより、スピルで拡張された範囲のみをリストに表示することができます。
そのため、最後の1つの項目のみになった時に関しては、リストに空白が表示されてしまうのですが、それ以外では、空白が表示されなくなります。

最後の1つの項目に関しても、空白を表示させないためには、VSTACK関数で空白を繋げる必要があります。
空白を繋げることで、残り1つになった場合に関しても、空白が重複し、表示されなくなります。

空白を繋げた数式は、以下になります。

=UNIQUE(VSTACK(F3:F7,C3:C7&"",""),FALSE,TRUE)

このように修正することで、最後の1つの項目に関しても、空白が表示されなくなります。

また、最後に空白を繋げることによって、リストの値が埋まった場合に関しても、空白が1つ「未割当」の項目に残るようになります。

スピルにより抽出された値に対して、表示する値が1つもない場合は、エラーになってしまうのですが、空白を1つ繋げることで、空白が表示され、エラーにならなくなります。

そのため、リストの値が埋まった場合に関しては、リストに1つの空白のみが表示されます。

リストから選択した値を変更する際は、リストの値をDeleteキーなどで削除することで、リストの選択肢が再度表示されるようになり、リストから値を変更することができます。

2024/07/05
【便利】開くと同時に対象シートの最終行を選択

【便利】開くと同時に対象シートの最終行を選択

#getNextDataCell #activate #onOpen

※サイト内の限定動画です。

Googleスプレッドシートを開くと同時に、指定したシートの最終行のセルを瞬時に選択する方法について解説しています。

複数のシートが存在する場合は、それぞれの表の最終行を選択し、最後に指定したシートが開かれます。
一部のシートの自動選択を除外することもできます。

00:00 挨拶
00:49 完成イメージ
01:55 準備
02:35 作成(表の最終行の選択)
09:33 完成
09:59 プログラムの全体
11:29 まとめ

▼準備ファイル▼