Excel初心者で申し訳ありませんが、教えてください。
A列に出席番号を記述しています。B1セルに出席番号を入力すると、
該当番号のB列に”○”を表示させたいのです。
ただ、その結果を残して次の番号をB1に入れてたいのです。
(宿題を提出しているかどうかのチェック表を作成したいのです)
ちなみに、B2以下には、=IF(B$1=$A$3:$A$43,"○"," ")という式を入力しています。毎回コピーして値を貼り付ける作業を繰り返す以外で
どのような方法がありますか?
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
詳しい方が回答下さるまでの繋ぎにどうぞ。
私には、マクロを使う以外にはわかりません。
マクロに関して詳しくは、Web検索などをご利用ください。
Excel が起動している状態で Altキー + F11キー でマクロのエディタ(Visual Basic Editor)を開きます。
Visual Basic Editor を開くとプロジェクトいう名のウインドウがあります。
そのウィンドウの中に VBAProject というのがあり、
その階層下に Microsoft Excel Objects というのがあり、
さらにその階層下に ワークシート名が並んでいると思います。
チェック表を作成しているシート名(たとえばSheet1 )に該当する部分をダブルクリックしてください。
すると、新しく真っ白なウインドウが表示されると思います。
そのウィンドウに下記のコードをコピペしてください。
(出席番号は、A3:A43 の範囲に書かれているとしています。)
その後、ファイルメニューから「終了して Microsoft Excel に戻る」を選択してください。
Excel に戻った後は、お望みの結果が得られるはずです。
これまで書かれていた B2 以下の式は不要です。
なお、B1セルに値を入力した後も、次のセルに移動しないようにしてあります。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
If Target.Column = 2 And Target.Row = 1 Then
For i = 3 To 43
If ActiveSheet.Cells(i, 1) = ActiveSheet.Cells(1, 2) Then
ActiveSheet.Cells(i, 2) = "○"
Exit For
End If
Next
ActiveSheet.Cells(1, 2).Select
End If
End Sub
とてもわかりやすく回答していただきありがとうございました。
おかげでやっとできました!
これを元に少しVBAの勉強をして、B列以降にも計算できるようにしていきたいと思っています。
本当にありがとうございました。
No.4
- 回答日時:
>B1セルに出席番号を入力すると
B1ひとつに入力するのは、魅力的と思いますが、これではVBAを使わないと絶対関数ではできません。
ーー
そこで(仮に)D列を使うことを考えました。
D列において、順次上から下のセルへ入力していく。
制約は無く、
入力順序は生徒番号順で無くても良いし
、空白セルがあっても良い。
ーー
例データ 20人学級の例 A列生徒番号
A列 B列(関数式の結果)
1
2
3○
4
5○
6
7
8
9
10
11
12○
13
14○
15
16○
17
18
19
20
ーー
B1に
=IF(ISERROR(MATCH(ROW(),$D$1:$D$20,0)),"","○")
B20まで式を複写する。
D列に
12
3
5
14
16
のように順次入れていく。番号を入れると即反応してくれる。
結果上記B列の通り
===
VBAならSheet1のChangeイベントに
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ret As Variant
If Target.Address <> "$C$1" Then Exit Sub '入力する場所
Dim c As Range
Set c = Worksheets("Sheet1").Range("A1:A20").Find(Worksheets("Sheet1").Range("C1"))
If c Is Nothing Then
MsgBox "なし"
Exit Sub
Else
Application.EnableEvents = False
c.Offset(0, 1) = "○"
Application.EnableEvents = True
End If
End Sub
あと訂正抹消の問題があるが、略。
ーー
関数の方はB列の、その番号が入ったセル内容を抹消(DEL)すれば該当行の○も消える。
丁寧に関数のやり方と、マクロの方法2パターンも回答していただきありがとうございました。
これを機会に少しVBAの勉強もしてみたいと思っています。
No.3
- 回答日時:
こんにちは。
>毎回コピーして値を貼り付ける作業を繰り返す以外で
それなら、マクロ以外にはないと思います。
画面の下のシート[タブ]を右クリックして、コードの表示で以下を貼り付けて、Alt + Q で画面を閉じます。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ret As Variant
If Target.Address <> "$B$1" Then Exit Sub '入力する場所
'レガシースタイル
ret = Application.Match(Target.Value, Range("A1", Range("A65536").End(xlUp)), 0)
If Not IsError(ret) Then
Application.EnableEvents = False
Cells(ret, 2).Value = "○"
Application.EnableEvents = True
End If
End Sub
No.1
- 回答日時:
ご質問の通りのやり方ではないのですが。
。。1クラス41人として、
・A2~A42 に出席番号を書いておき、
・B1~AP1 の範囲に宿題を提出した学生の出席番号を入力する(Tabキーでセルを移動します)
とします。
B2に、=IF(COUNTIF($B$1:$AP$1, A2)>0, "○", "")と書き、
B42までコピーすれば良いと思います。
入力し終わったら、B2~B42の範囲をコピーし、他の場所へ「形式を指定して貼り付け」(値を指定)すれば、また使えます。
本当ならAccessを使うところなのでしょうが、覚えるのが大変ですよね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) ある数値に対して、値を返す数式についてです 2 2022/09/13 22:06
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル vbaについて教えてく...
-
Excel 複数列 A列B列C列一致 D...
-
【マクロ】名前を保存する際に...
-
エクセルであるセルに数字を入...
-
エクセルファイルがファイルの...
-
Excelについて教えてください
-
エクセル マクロ チェックボックス
-
【Excel】数字を3倍にし、なお...
-
エクセルVBA、別ブックへ転記す...
-
Excel分析ツールでのポアソン回...
-
Excelでセルの値が同じか...
-
エクセルで年休を管理する方法...
-
エクセル共有したが、アクセス...
-
エクセルのデーターが2か月前の...
-
【マクロ】顧客番号にて一致さ...
-
(マクロ)データをAブックからB...
-
エクセルを使っていて2024/5/15...
-
エクセル②
-
UNIQUE関数が使えないバージョ...
-
【マクロ】その時、その時で変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報