こんな質問を受けました。
「こんな表があるんです。A列の値が同じ場合は、省略されているのです。
その省略されているA列の値を調べるには、どうすればいいんですか?」
その表とは、こんな表です。

確かに、手書きでは、こんな風に書きますよね。
でも、エクセルで管理するには、A列の値を省略することはお勧めできません。
くどいようでも、同じ値を入力する必要があります。
それでも、どうしても、省略しろという上司の命令があるのなら、仕方がないですね。
こんな場合、例えば、4列目をどこかに転記する必要があるとき、A列の値は、空欄というわけにはいきません。
なんとかして、A列の値を求めなければなりませんね。
こんな感じです。

さあ、どうしましょうか?
VBAで、オリジナルの関数を、つまり、ユーザー定義関数をつくってみましょう。
エクセルを起動したら、Altキーを押しながらF11キーを押します。
すると、Visual Basic Editorが起動します。
コードを記述するモジュールが必要なので、「挿入」→「標準モジュール」とクリックします。
そこに、以下のようにコードを記述します。
画像も載せておきます。

解説です。
引数にB列のセルを指定し、そのセルの左隣(つまりA列)の値を取得します。
もし空欄なら、どんどん上を見に行って、値が出てきたらそれが、該当するA列の名称の値となります。
ユーザー定義関数は、VBAの中でも使用できますが、標準のワークシート関数のように、エクセルで使用することもできます。
今回は、E列にこの関数を設定します。
E列2行目に、関数を入力します。引数は、B2 を指定してください。
あとは、オートフィルで大丈夫です。

なお、注意事項があります。
関数は、引数が変更されると自動的に再計算されますが、引数以外のセルの値の変更時には再計算されません。
したがって、E列に関数を設定した後、A列の値を変更しても、答えは正しく更新されません。
再度、E列に関数を入力しなおしてください。
だい
「こんな表があるんです。A列の値が同じ場合は、省略されているのです。
その省略されているA列の値を調べるには、どうすればいいんですか?」
その表とは、こんな表です。

確かに、手書きでは、こんな風に書きますよね。
でも、エクセルで管理するには、A列の値を省略することはお勧めできません。
くどいようでも、同じ値を入力する必要があります。
それでも、どうしても、省略しろという上司の命令があるのなら、仕方がないですね。
こんな場合、例えば、4列目をどこかに転記する必要があるとき、A列の値は、空欄というわけにはいきません。
なんとかして、A列の値を求めなければなりませんね。
こんな感じです。

さあ、どうしましょうか?
VBAで、オリジナルの関数を、つまり、ユーザー定義関数をつくってみましょう。
エクセルを起動したら、Altキーを押しながらF11キーを押します。
すると、Visual Basic Editorが起動します。
コードを記述するモジュールが必要なので、「挿入」→「標準モジュール」とクリックします。
そこに、以下のようにコードを記述します。
Function GetMeisho(r As Range) As String If r.Offset(, -1).Value = "" Then GetMeisho = r.Offset(, -1).End(xlUp).Value Else GetMeisho = r.Offset(, -1).Value End If End Function
画像も載せておきます。

解説です。
引数にB列のセルを指定し、そのセルの左隣(つまりA列)の値を取得します。
もし空欄なら、どんどん上を見に行って、値が出てきたらそれが、該当するA列の名称の値となります。
ユーザー定義関数は、VBAの中でも使用できますが、標準のワークシート関数のように、エクセルで使用することもできます。
今回は、E列にこの関数を設定します。
E列2行目に、関数を入力します。引数は、B2 を指定してください。
あとは、オートフィルで大丈夫です。

なお、注意事項があります。
関数は、引数が変更されると自動的に再計算されますが、引数以外のセルの値の変更時には再計算されません。
したがって、E列に関数を設定した後、A列の値を変更しても、答えは正しく更新されません。
再度、E列に関数を入力しなおしてください。
だい
ポチ完了です♪
パソコンは、使い手の頭以上にはならないとよく言われますが、こういう知識を拝見すると僕のPCは、かなり頭が悪そうです(笑
また色々教えてくださいね♪
パソコンは仕事柄毎日触っているのですが、やりたいことがいっぱいあって、しばらく取り組んでいないことはすぐに忘れてしまいます。
僕の頭もメモリ増設したいです。
これからも、訪問してくださいね。