2026/03/06
【ExcelVBA】チェックしたら行が自動で非表示になる表

【ExcelVBA】チェックしたら行が自動で非表示になる表

以下の表のように、チェックボックスにチェックすると同時に、その行が自動で非表示になる仕組みを実現する方法について解説していきます。

※こちらで作成したファイルは、記事の最後にて配布しています。

今回の仕組みでは、チェックすると同時に自動でフィルター機能が実行され絞り込みされます。
そのため、フィルター機能を解除することで、簡単に再表示することもできます。


1. 開発準備

今回は、以下の表をもとに作成していきます。
あらかじめ、「済」の項目にチェックボックスを用意しています。

チェックボックスが用意されているセルには、TRUE(チェックされている)/FALSE(チェックされていない)の値が入力されます。
今回は、用意したチェックボックスをチェックすると同時に、フィルター機能による絞り込み(「済」がFALSEの行のみを表示)を実行します。

このように特定のシート上のセルが編集されると同時に、何かしら処理を実行するには、「シートモジュール」「イベントプロシージャ」を活用します。
シートモジュールは、該当するシートのタブ上で右クリックし、[コードの表示]を選択することで表示できます。

選択すると、以下のエディタ画面(VBE)が表示されます。
また、該当するシートのシートモジュールが表示された状態になります。
「Option Explicit」は、VBEの設定次第では表示されません。「Option Explicit」についての解説はこちらでは省略します。

次に、特定のシート上のセルが編集されると同時に処理が実行される特殊なプロシージャ(イベントプロシージャ)を用意する必要があります。
そのためには、シートモジュールの左上のリストから「Worksheet」を選択します。

「Worksheet」を選択すると、自動で「Worksheet_SelectionChange」というプロシージャが表示されます。
このプロシージャは、該当するシート上のいずれかのセルが選択されると同時に処理が実行されるイベントプロシージャです。

ただ、今回使用するイベントプロシージャは、セルが編集されると同時に処理が実行されるものになります。
そのため、右上のリストから「Change」を選択します。

表示された「Worksheet_Change」というプロシージャを活用します。
「Worksheet_SelectionChange」というプロシージャは削除して問題ないです。


2. コードの記述

以下のコードを記述します。

Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Target.CountLarge >= 100 Then Exit Sub
    
    Dim t As Range
    For Each t In Target
        If t.Row >= 3 And t.Row <= 15 And _
            t.Column = 2 Then
            
            Range("B2").AutoFilter 1, False
            Exit Sub
            
        End If
    Next t
    
End Sub

では、コードについて解説していきます。

Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Target.CountLarge >= 100 Then Exit Sub
    
    Dim t As Range
    For Each t In Target
        '省略
    Next t
    
End Sub

「Worksheet_Change」というプロシージャの引数「Target」に、編集されたセルの情報が渡されます。
複数セルを同時に編集した場合は、複数セルの情報が渡されます。

こちらでは、編集された1つ1つのセルに対して処理を実行します。
そのため編集されたセルが多い場合は処理が重たくなってしまうため、100セル以上が同時に編集された場合は処理を終了しています。

次に、編集された1つ1つのセルの情報を受け取る用の「t」という入れ物(変数)を用意し、その「t」にセルの情報を1つ1つ渡して、繰り返して実行しています。

        If t.Row >= 3 And t.Row <= 15 And _
            t.Column = 2 Then
            
            Range("B2").AutoFilter 1, False
            Exit Sub
            
        End If

繰り返し処理の中で、対象のセルの行番号が3以上、15未満、列番号が2のとき、要するに、チェックボックスの範囲内が編集されたときに、チェックされていない行のみをフィルター機能で絞り込みしています。

1回絞り込みを行えば、繰り返し行う必要はないので、処理を終了しています。


3. 完成

以上の内容で実現できます。
チェックボックスにチェックするだけで、その行がフィルター機能により非表示になります。

▼サンプルファイル▼

2026/03/03
Excel2021以降で使える、絶対に覚えたい関数3選

Excel2021以降で使える、絶対に覚えたい関数3選

Excel2021以降のバージョンで使える便利な関数を3つ紹介します。


① XLOOKUP関数

1つ目は、XLOOKUP関数です。
この関数は、VLOOKUP関数を強化した関数で、データを検索して、対応する別の項目の値を抽出することができる関数です。
VLOOKUP関数とは異なり、列番号を数える必要がなく、さらに、IFERROR関数と組み合わせてエラー対策をする必要もなくなります。

活用例は以下になります。

=XLOOKUP(A3,A6:A20,B6:B20,"なし")

また、Excel2021以降からはスピルという機能に対応しており、以下のように連続した複数の項目を1つの数式で抽出することもできます。

=XLOOKUP(A3,A6:A20,B6:D20,"なし")

XLOOKUP関数の詳しい使い方については、以下の記事で解説しています。
>VLOOKUP / INDEX・MATCH / XLOOKUPの使い方


② FILTER関数

2つ目は、FILTER関数です。
この関数は、表の中から指定した条件を満たしたデータのみを抽出することができる関数です。
よく確認するデータに関しては、FILTER関数を活用して抽出することで、毎回フィルター機能で絞り込みをする必要がなくなります。

活用例は以下になります。

=FILTER(A10:D19,C10:C19=B2,"")

FILTER関数の詳しい使い方については、以下の記事で解説しています。
>FILTER関数の使い方


③ UNIQUE関数

3つ目は、UNIQUE関数です。
この関数は、指定した範囲から重複を除いたデータのみを抽出することができる関数です。
カテゴリーの一覧表を作成するときや、申し込み一覧から重複した申し込みを除外したいときなど、集計作業の準備段階で特に活用します。

活用例は以下になります。

=UNIQUE(C8:C20)

まとめ

紹介した3つの関数は、特に実務で即活用できる便利な関数です。
そのため使える環境の方は、ぜひ試してみてください。

2026/02/28
【番外-060】文字列から必要な文字を抽出

【番外-060】文字列から必要な文字を抽出

#SUBSTITUTE #IFERROR #REGEXEXTRACT #LEFT #RIGHT #LEN #FIND #正規表現 #フラッシュフィル

YouTubeで開く

文字列の中から必要な文字だけを抽出する方法について解説しています。
色んなパターンを考慮し、応用できる内容となっています。

00:00 挨拶
00:33 文字列固定
01:31 文字列不定
03:41 文字列不定2
05:19 文字列不定3
06:18 文字列不定4
09:26 まとめ

▼準備ファイル▼

2026/02/27
【ExcelVBA】クリックするだけで別表に集計して追加

【ExcelVBA】クリックするだけで別表に集計して追加

「商品を選んだら別の表に追加し、同じ商品なら数量を加算」
この処理を右クリックだけで実現する方法について解説していきます。

※こちらで作成したファイルは、記事の最後にて配布しています。


1. 開発準備

今回は、以下の表(商品一覧とカート)を元に作成していきます。

特定のセルの上で右クリックすることで何かしら処理を実行するには、「シートモジュール」「イベントプロシージャ」を活用します。
シートモジュールは、該当するシートのタブ上で右クリックし、[コードの表示]を選択することで表示できます。

選択すると、以下のエディタ画面(VBE)が表示されます。
また、該当するシートのシートモジュールが表示された状態になります。
「Option Explicit」は、VBEの設定次第では表示されません。「Option Explicit」についての解説はこちらでは省略します。

次に、該当するシートのセルの上で右クリックすると同時に処理が実行される特殊なプロシージャ(イベントプロシージャ)を用意する必要があります。
そのためには、シートモジュールの左上のリストから「Worksheet」を選択します。

「Worksheet」を選択すると、自動で「Worksheet_SelectionChange」というプロシージャが表示されます。
このプロシージャは、該当するシート上のいずれかのセルが選択されると同時に処理が実行されるイベントプロシージャです。

ただ、今回使用するイベントプロシージャは、セルの上で右クリックすると同時に処理が実行されるものになります。
そのため、右上のリストから「BeforeRightClick」を選択します。

表示された「Worksheet_BeforeRightClick」というプロシージャを活用します。
「Worksheet_SelectionChange」というプロシージャは削除して問題ないです。


2. コードの記述

以下のコードを記述します。

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    
    Dim t As Range: Set t = Target
    
    If t.Row >= 4 And _
        t.Column >= 2 And t.Column <= 4 And _
        t.CountLarge = 1 And _
        Cells(t.Row, "B").Value <> "" Then
        
        Cancel = True
        
        Dim lRow As Long, r As Long, f As Boolean
        lRow = Cells(Rows.Count, "F").End(xlUp).Row
        f = False
        
        For r = 4 To lRow
            If Cells(r, "F").Value = Cells(t.Row, "B").Value Then
                f = True
                Cells(r, "H").Value = Cells(r, "H").Value + 1
            End If
        Next r
        
        If Not f Then
            Cells(lRow + 1, "F").Value = Cells(t.Row, "B").Value
            Cells(lRow + 1, "G").Value = Cells(t.Row, "C").Value
            Cells(lRow + 1, "H").Value = 1
        End If
        
    End If
    
End Sub

では、コードについて解説していきます。

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    
    Dim t As Range: Set t = Target
    
    If t.Row >= 4 And _
        t.Column >= 2 And t.Column <= 4 And _
        t.CountLarge = 1 And _
        Cells(t.Row, "B").Value <> "" Then
        
        '省略
        
    End If
    
End Sub

「Worksheet_BeforeRightClick」というプロシージャの引数「Target」に、右クリックされたセルの情報が渡されます。
複数範囲を選択している範囲の上で右クリックした場合は、複数セルの情報が渡されます。

次に、そのセルの情報を「t」という名前の入れ物(変数)に格納し、その「t」を活用して、対象の範囲上で右クリックされたかどうかを確認します。

対象の範囲とは、以下の条件を満たす範囲です。

・行番号が4以上
・列番号が2以上4以下
・単体のセル
・そのセルと同じ行のB列が空でない

要するに、商品一覧の表の中かつ商品が入力されている行の上で、単体のセルが右クリックされた場合に処理を実行するようにしています。

        Cancel = True
        
        Dim lRow As Long, r As Long, f As Boolean
        lRow = Cells(Rows.Count, "F").End(xlUp).Row
        f = False

対象の範囲内で、単体のセルが右クリックされた場合に、右クリック時のメニュー表示を無効にし、「lRow」と「r」という数値専用(Long)の入れ物(変数)、「f」という論理値専用(Boolean:True / Falseのみ)の入れ物(変数)を用意しています。

「lRow」には、カートの表の最終行の行番号を格納しています。
最終行の行番号は以下のように取得しています。

F列の末尾のセルを選択し、「Ctrl+↑」で移動した先のセルの行番号

そのため、カートの表にデータが1件も存在しない場合は、見出しの行である「3」が取得されます。

「r」には何も格納せず、「f」には「False」を格納しています。

        For r = 4 To lRow
            If Cells(r, "F").Value = Cells(t.Row, "B").Value Then
                f = True
                Cells(r, "H").Value = Cells(r, "H").Value + 1
            End If
        Next r

カートの4行目から最終行(lRow)まで繰り返し、右クリックされた商品(B列のID)と一致する商品(F列のID)を探します。
一致する商品が見つかった場合は、「f」を「True」にして、その見つかったカートの行のH列の数量に「1」を加えています。

        If Not f Then
            Cells(lRow + 1, "F").Value = Cells(t.Row, "B").Value
            Cells(lRow + 1, "G").Value = Cells(t.Row, "C").Value
            Cells(lRow + 1, "H").Value = 1
        End If

「f」が「False」の場合、要するに、先ほどの繰り返しで一致する商品が見つからなかった場合に、カートの末尾(lRow + 1)のF列に右クリックされた商品のID(B列)、G列に商品名(C列)、H列に「1」を入力しています。


3. 完成

以上の内容で実現できます。
商品一覧の表の中の、IDが入力された行のいずれかのセルを右クリックすることで、隣の表のカートに、その商品を追加することができます。

▼サンプルファイル▼

2026/02/24
【Excel】設定画面を閉じずに別ファイルを操作する裏技

【Excel】設定画面を閉じずに別ファイルを操作する裏技

Excelで作業手順書などを作っていると、次のような場面があります。

・条件付き書式の設定画面を開いたまま別のファイルを操作したい
・マクロの実行中に別のファイルを操作したい

しかし通常、Excelの設定画面(条件付き書式やデータの入力規則など)を開いている間やマクロの実行中には、他のファイル(ブック)を操作できません。

そのため、次のような面倒な作業になりがちです。

スクショ → 設定画面を閉じる → 貼り付け → また設定画面を開く

実はこれ、別のファイルを開くときに、別のアプリとして起動するだけで解決できます。
こちらでは、Excelの設定画面を閉じずに別のファイルを操作する方法について紹介していきます。


できること

今回の方法を行うことで、次のことが可能になります。

・設定画面を開いたまま別のファイルを操作
・マクロの実行中に別のファイルを操作

Excelを別アプリとして起動する

別のアプリとして起動するには、次の手順を行います。


・手順①

すでに2つのExcelファイルを開いている場合は、片方のファイルを閉じます。


・手順②

Altキーを押したまま、タスクバーのExcelアイコンの上で、マウスホイールをクリック(押し込み)します。
この時、Altキーはしばらく押し続けてください。
すると確認メッセージが表示されます。


・手順③

「はい」を選択すると、現在開いているExcelとは別のアプリとして新しいExcelが起動します。


・手順④

新しく立ち上がったExcelで別のファイル開きます。
対象のファイルを、新しく立ち上がったExcelにドラッグすることでも開くことができます。


以上の手順を行い、複数のファイルを立ち上げることで、互いに干渉しない状態で作業を行うことができるようになります。


注意点

便利な機能ですが、互いに干渉しない状態になるため、「別のファイルをクリックしての数式の参照」などの一部の機能が使えなくなります。

2026/02/21
【業務】セルの変更履歴を自動で記録

【業務】セルの変更履歴を自動で記録

#シートモジュール #Worksheet_Change #If #With #Hyperlinks #Worksheet_SelectionChange

YouTubeで開く

予め指定した範囲内のセルの値が変更されたときに、変更前と変更後の値を自動で記録する仕組みになります。

00:00 挨拶
00:17 完成イメージ
01:50 準備
02:22 作成(変更内容の記録)
16:44 完成
17:53 プログラムの全体

▼準備ファイル▼

2026/02/20
【Excel】前日から値が変わったら自動で色付け

【Excel】前日から値が変わったら自動で色付け

以下のように何かしらの数値を日々記録している場合、値が変わった場所を見つけるのは若干大変です。

そこで今回は、以下のように「前日と値が変わったセル」と「その日付のセル」を色付けする設定方法について解説していきます。

※こちらで作成したファイルは、記事の最後にて配布しています。


前日と値が変わったセルを色付け

はじめに、前日と値が変わったセルを色付けしていきます。
特定の条件を満たしたセルの書式を自動で変更する場合は、「条件付き書式」を活用します。

まずは、日付を除く色付けする可能性のあるセルを選択します。
こちらでは、2行目のデータに関しては前日のデータが存在しないため、3行目以降のB列からD列のセルを選択します。

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

条件付き書式の設定画面が表示されましたら、[ルールの種類]を[指定の値を含むセルだけを書式設定]にして、[セルの値]→[次の値に等しくない]→「=B2」と指定します。

これは選択基準のセルB3を色付けする条件です。
セルB3を色付けするときとは、その一つ上のセルB2の値と異なる場合になるので、上記のように指定しています。
他の選択範囲に関しては、セルが相対的に参照されます。(例:セルC3→「=C2」)

条件の指定ができたら、[書式]から好みの書式を指定します。
こちらでは、[フォント]タブから「赤色」、[塗りつぶし]タブから「黄色」を指定しています。

上記のように書式の設定ができたら、設定内容を確定することで、前日と値が変わったセルを自動で色付けすることができます。


1件でも値が変わった日付のセルを色付け

では次に、1件でも値が変わった日付のセルを色付けしていきます。
先ほどは自分自身のセルに対して、前日と値が変わったかどうかを確認しましたが、今回は自分自身ではなく、他の複数セルを確認する必要があります。
そのため、先ほどより設定内容が複雑になります。

まずは、色付けする可能性のある日付の範囲、3行目以降のA列を選択します。

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

条件付き書式の設定画面が表示されましたら、[ルールの種類]を[数式を使用して、書式設定するセルを決定]にし、条件式を直接入力します。

今回の場合の条件は、以下のようになります。

「B列(数量1)が前日の値と異なる」または「C列(数量2)が前日の値と異なる」または「D列(数量3)が前日の値と異なる」場合

このように、「複数条件のいずれかを満たす場合」という条件式はOR関数を活用し、以下のように指定します。

=OR(B2<>B3,C2<>C3,D2<>D3)
// B2<>B3:B2とB3が等しくない
// C2<>C3:C2とC3が等しくない
// D2<>D3:D2とD3が等しくない

条件式の入力ができたら、[書式]から好みの書式を指定します。
こちらでは、 [塗りつぶし]タブから「黄色」を指定しています。

上記のように書式の設定ができたら、設定内容を確定することで、いずれかの項目の値が前日と変わっている日付のセルを自動で色付けすることができます。

▼サンプルファイル▼

2026/02/19
デュアルディスプレイ環境|おすすめモニター・ケーブル・変換アダプタ

デュアルディスプレイ環境|おすすめモニター・ケーブル・変換アダプタ

マルチモニター環境の導入の際におすすめしたい、モニター(ディスプレイ)やケーブル、変換アダプタなどをまとめています。
記載価格は記事の投稿時点の価格になるため、変動している可能性があります。


モニター(ディスプレイ)

・Dell モニター 23.8インチ スピーカー非搭載 詳細

有名な電子機器関連メーカーであるDellのモニターです。
価格は約15,000円で、3年間のメーカー保証もついており、コスパが高く、安心感もあります。
また、セキュリティロックスロットがあるため、ワイヤーなどで机と固定し、盗難を防ぐこともできます。
ただ、スピーカーは搭載されていません。
端子:電源コネクター、Display Port×1、HDMI×2、オーディオ ヘッドホン出力
付属ケーブル:電源ケーブル、HDMIケーブル(1.8m)


・PHILIPS モニター 27インチ スピーカー搭載 詳細

有名な電子機器関連メーカーであるPHILIPSのモニターです。
価格は約20,000円で、5年間のメーカー保証もついており、コスパが高く、安心感もあります。
USB Type-Cでの映像出力に対応、スピーカーも搭載されています。
端子:電源コネクター、USB Type-A×2、USB Type-C×1、HDMI×1、オーディオ ヘッドホン出力
付属ケーブル:電源ケーブル(1.8m)、HDMIケーブル(1.8m)、USB Type-C to Type-Cケーブル(1.8m)


・LG ウルトラワイドモニター 29インチ 詳細

有名な電子機器関連メーカーであるLGのウルトラワイドモニターです。
価格は約27,000円。
横長のディスプレイなので、動画編集やガントチャートなど、横方向に時系列が広がる作業をする人におすすめです。横に広く表示できるため、横スクロールの回数を減らすことができます。
端子:電源コネクター、Display Port×1、HDMI×1、オーディオ ヘッドホン出力
付属ケーブル:電源ケーブル、HDMIケーブル(1.5m)


・Dell モニター 27インチ 4K スピーカー搭載 詳細

有名な電子機器関連メーカーであるDellのモニターです。4Kに対応しています。
価格は約45,000円で、5年間のメーカー保証付きです。
また、セキュリティロックスロットがあるため、ワイヤーなどで机と固定し、盗難を防ぐこともできます。
USB Type-Cでの映像出力に対応、スピーカーも搭載されています。
端子:電源コネクター、HDMI×2、USB Type-C(65W給電・映像出力対応)×1、USB Type-C(15W給電対応)×1、USB Type-A×2
付属ケーブル:電源ケーブル、USB Type-C to Type-Cケーブル(1m)


ケーブル

・CIO USB Type-Cシリコンケーブル 映像出力対応 詳細

日本メーカーであるCIOのUSB Type-C to Type-Cのケーブルです。
価格は約2,400円。4Kの映像出力に対応しています。
映像出力に対応しているケーブルは、太くて硬いものが多いですが、このケーブルはシリコン製で柔らかく、絡まりにくいのが特徴です。
接続部分がL字になっているものもあるので、パソコンやモニターの設置場所によって使い分けるのがおすすめです。

※L字ケーブル 詳細


・エレコム HDMI ケーブル 詳細

日本メーカーであるエレコムのHDMIケーブルです。
価格は約700円。4Kの映像出力に対応しています。
HDMIケーブルにしてはスリムで配線しやすいのが特徴です。
0.3m、0.5m、1m、2mの4種類の長さが用意されています。


・エレコム DisplayPort ナイロンメッシュケーブル 詳細

日本メーカーであるエレコムのDisplayPortケーブルです。
価格は約1,000円。4Kの映像出力に対応しています。
ナイロン繊維で覆われたケーブルとなっており、耐久性が高く、断線しにくいのが特徴です。


変換ケーブル・変換アダプタ

・Acer USB Type-C to HDMI 変換ケーブル 詳細

有名な電子機器メーカーであるAcerのUSB Type-C to HDMI変換ケーブルです。
価格は約1,500円。
USB Type-C側をPCに接続、HDMI側をモニターに接続することで映像出力が可能です。
逆はできないので注意して下さい。
ナイロン繊維で覆われたケーブルとなっており、耐久性が高く、断線しにくいのが特徴です。
他にも、USB Type-C to DisplayPort 変換ケーブルなども販売されています。

※USB Type-C to DisplayPort 変換ケーブル 詳細


・エレコム DisplayPort to HDMI変換ケーブル 詳細

日本メーカーであるエレコムのDisplayPort to HDMI変換ケーブルです。
価格は約2,700円。
DisplayPort側をPCに接続、HDMI側をモニターに接続することで映像出力が可能です。
逆はできないので注意して下さい。


・Anker USB Type-C to HDMI変換アダプタ 詳細

有名な電子機器メーカーであるAnkerのUSB Type-C to HDMI変換アダプタです。
価格は約2,300円。
USB Type-C側をPCに接続、HDMI側にHDMIケーブルを接続して、モニターと接続することで、映像出力が可能です。
逆はできないので注意して下さい。


・Anker USB Type-C to HDMI ハブ 詳細

有名な電子機器メーカーであるAnkerのUSB Type-C接続のハブです。
価格は約3,000円。
USB Type-C側をPCに接続、HDMI側にHDMIケーブルを接続して、モニターと接続することで、映像出力が可能です。
逆はできないので注意して下さい。
また、本製品はハブとしても機能するため、HDMI以外にも複数のポートを搭載しています。
モニター接続と同時に、USBメモリの接続やPCの充電などを行うことができ、複数のUSBポートとして活用できます。


モバイルモニター

・IODATA モバイルモニター 14インチ 詳細

日本メーカーであるIODATAのモバイルモニターです。
価格は約25,000円。
USB Type-Cケーブル1本で、給電と映像出力が可能です。
モニター左右の側面にUSB Type-Cの端子が1つずつあるため、右側にも左側にも置きやすいです。
また、重さも約490gで、ペットボトル1本分より軽くなっています。
USB Type-Cのケーブルと、持ち運びに便利な収納ケースも付属しています。


・Acer モバイルモニター 15.6インチ 詳細

有名な電子機器メーカーであるAcerのモバイルモニターです。
価格は約12,000円。
USB Type-Cケーブル1本で、給電と映像出力が可能です。
USB Type-C端子2つに加え、mini HDMI端子が1つ搭載されています。
mini HDMI to HDMIケーブルも付属しているため、USB Type-Cの映像出力に対応していないノートPCでも、HDMI接続で使用できます。


以上になります。
ここに挙げたもの以外にも、様々なディスプレイやケーブルがあるため、自分の環境に合ったものを探してみてください。

2026/02/17
【Excel】数値を文字列に変換する珍しい関数5選

【Excel】数値を文字列に変換する珍しい関数5選

使い道が分からない「数値を文字列に変換する珍しい関数」を5つ紹介していきます。


1. BAHTTEXT関数

1つ目は、BAHTTEXT関数です。
この関数は、数値をタイ語の通貨表記に変換します。


2. DOLLAR関数

2つ目は、DOLLAR関数です。
この関数は、数値をドル表記の文字列に変換します。

※第2引数で小数点以下の桁数を指定しています。


3. ROMAN関数

3つ目は、ROMAN関数です。
この関数は、数値をローマ数字に変換します。

※変換できるのは1から3999までです。


4. YEN関数

4つ目は、YEN関数です。
この関数は、数値を円表記の文字列に変換します。

※第2引数で小数点以下の桁数を指定しています。


5. NUMBERSTRING関数

5つ目は、NUMBERSTRING関数です。
この関数は、数値を漢数字に変換します。

※この関数は入力候補には表示されません。
※第2引数で変換する形式を指定しています。
※変換できる数値は0以上です。


補足

これらの関数は、どれも数値を指定した文字列に変換するものです。
そのため、SUM関数などでは正しく集計することができません。

また表示形式で対応できるものも多いため、これらの使い道はかなり限られます。

2026/02/13
【Excel】FILTER関数による抽出データの元データに遷移するハイパーリンク

【Excel】FILTER関数による抽出データの元データに遷移するハイパーリンク

FILTER関数の登場により、以下のようにフィルター機能を活用した絞り込みをしなくても、簡単にデータを抽出することができるようになりました。

=FILTER(B3:C100,D3:D100="着手中","")

しかし、データの確認ができても、データを更新する際は元の表の対象データを探す必要があります。

更新するたび、毎回元のデータを探すのは大変です。

ということで今回は、元のデータに瞬時に遷移するハイパーリンクを自動で表示させる方法について紹介していきます。

※こちらで作成したファイルは、記事の最後にて配布しています。


対象データの行番号を取得する

まずは、抽出されたそれぞれのデータが、元の表の何行目のデータになるのか、その行番号を取得する数式を入力していきます。

今回の表の場合、「No」の値が一意のデータになるため、抽出された「No」と一致する元の表の「No」の位置情報を取得していきます。

特定の値と一致するセルの位置情報を取得する場合は、MATCH関数が便利です。
以下のように、抽出データの先頭行の隣のセルに数式を入力します。

=MATCH(F3,B1:B100,0)
// F3:検索値
// B1:B100:検索範囲(行番号を取得するため、1行目から表の範囲を大きめに指定)
// 0:検索方法(検索値と完全一致する値が入力されたセルの位置情報を取得)

これで、先頭行に関しては抽出することができました。

次に、この結果をFILTER関数の抽出範囲の全ての行に対して表示する必要があります。
MATCH関数の検索値の範囲(F3)を複数行指定することでも、全体に展開して表示することができますが、データの増減に対応することはできません。

=MATCH(F3:F19,B1:B100,0)

データの増減に対応させるためには、FILTER関数の展開範囲から指定する必要があります。
スピルにより展開された範囲は、数式を入力したセルの後に「#」を加えることで指定することができます。

=F3#

しかし、今回指定すべき範囲は、抽出された表全体ではなく、「No」の範囲のみになります。

そのような時は、INDEX関数を活用します。
INDEX関数で列番号のみを以下のように指定することで、対象範囲の指定した列のみを抽出することができます。

=INDEX(F3#,,1)
// =INDEX(範囲,行番号,列番号)

後は、この数式をMATCH関数の検索値に指定するだけで、データの増減に対応した数式にすることができます。

=MATCH(INDEX(F3#,,1),B1:B100,0)

ハイパーリンクを表示させる

各行番号のD列(「進捗」の項目)に遷移するハイパーリンクにしていきます。
特定のセルに遷移する動的なハイパーリンクを用意するには、HYPERLINK関数を活用します。

特定のセルに遷移するハイパーリンクは、以下のように指定します。

=HYPERLINK("#[遷移先のセルのアドレス] ", "表示するテキスト")

遷移先のセルのアドレスには、以下のような指定をします。

同じシートのセルD3に遷移:”#D3″
別シート(Sheet1)のセルD3に遷移:”#Sheet1!D3″

今回の例では、同じシート上に遷移させます。
また、行番号はMATCH関数で取得した値になるため、以下のように指定します。

=HYPERLINK("#D"&MATCH(INDEX(F3#,,1),B1:B100,0),"●")

これでハイパーリンクの完成です。
ただ、数式を入力したセル以外の書式は、以下のようにハイパーリンクの書式にならないため、列全体をハイパーリンクの書式と似た書式にしておくとよいです。

こちらでは、青文字に下線を設定しています。
直接書式を変更しているため、通常のハイパーリンクのように、クリックした後に色が変わることはありません。

ハイパーリンク自体は完成していますが、このままですと、抽出データが1件も存在しないときに、以下のようなエラーになってしまいます。

そのため、以下のようにIFERROR関数を組み合わせるとよいです。

=IFERROR(HYPERLINK("#D"&MATCH(INDEX(F3#,,1),B1:B100,0),"●"),"")

完成

以上の手順で完成です。

抽出されたデータから元のデータに遷移したい場合、対象行のハイパーリンクをクリックするだけで、簡単に遷移することができます。

▼サンプルファイル▼

2026/02/10
【Excel】IF関数のネスト問題を「IFS関数」で解決

【Excel】IF関数のネスト問題を「IFS関数」で解決

以下のようなIF関数のネストは、条件の確認がしづらいです。

また、入力時に括弧の数が分からなくなってしまうこともあり、スムーズな入力ができません。

実は、Excel2019以降では、「IFS関数」というIF関数のネスト問題を解決する関数が追加されています。
こちらでは、IF関数のネストからIFS関数に置き換える方法について紹介していきます。


IFS関数に置き換える

まずは、IF関数とIFS関数の使い方から比較していきます。
2つの使い方(引数の指定方法)は以下のとおりです。

=IF(論理式, 結果が真の場合, 結果が偽の場合)
=IFS(論理式1, 結果が真の場合1, [論理式2, 結果が真の場合2], [論式式3, 結果が真の場合3], …)

このように、IFS関数では、複数の論理式(条件)を指定することができ、それぞれの論理式(条件)に対し、結果が真の場合に表示する値を指定することができます。
複数の論理式(条件)が真になる場合は、先頭に記述された結果が優先されて表示されます。

(例)「論理式1」と「論理式2」が真 → 「結果が真の場合1」の値が表示される

では、以下のIF関数の数式をIFS関数に置き換えます。

=IF(E3<>"","完了済",IF(D3="","未設定", IF(D3<TODAY(),"期限切れ",IF(D3=TODAY(),"今日","期限前"))))

以下のように、論理式を指定する順番はそのままで、「論理式、結果」という順番でカンマ区切りにして並べます。

=IFS(E3<>"","完了済",D3="","未設定",D3<TODAY(),"期限切れ",D3=TODAY(),"今日",TRUE,"期限前")

IFS関数には、「結果が偽の場合」に表示する値を指定することができないため、末尾の論理式を「TRUE」にし、末尾の「結果が真の場合」の値が最終的に表示されるようにします。

ただ、以下のように数式が長くなります。

そのため、条件の組み合わせ単位で、以下のように改行するとよいです。

このように改行すると、条件の位置の確認もしやすくなるため、条件を加えることも容易になります。

2026/02/07
【便利】チェックボックスを行単位で一括「ON・OFF」

【便利】チェックボックスを行単位で一括「ON・OFF」

#TEXTJOIN #COUNTIF #IF #条件付き書式

YouTubeで開く

各行に複数のチェックボックスが用意されている表で、1行分のチェックボックスを一括でチェック(その逆も)できるチェックボックスを実装する方法について解説しています。

00:00 挨拶
00:20 完成イメージ
00:59 準備
01:17 作成(チェックボックス)
01:56 作成(動的チェックボックス)
13:02 完成
14:01 プログラムの全体

▼準備ファイル▼