• ベストアンサー

Excelで当選したくじを検索したい

Windows10、Excel2016を使用しています。 自治会の祭りでくじ引きがあり、その管理をすることになりました。 Excelで当選くじを一覧表にし、引換券を持ってきた人を待たせないように、 添付図のような「当選者検索」画面を作ろうと思っています。 【仕様】 1.当選者一覧表は既に出来上がっている 2.[当選者検索]の街区に、引換券の街区を入力して[検索実行]をクリック 3.当選者の当該シート(5等~特等)を表示し、フォーカスを当てる しかしExcelについては詳しくなく、皆様のお知恵を借りるしかありません。 どうかよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1734/2604)
回答No.4

検索実行ボタンのマクロに以下のコードを 画像のシートが画像の通り並んでいて当選者検索シートが左端だと考えています。 Sub ボタン1_Click() Dim i As Integer Dim c As Range Dim firstAddress As String For i = 2 To Sheets.Count Worksheets(i).Activate With Worksheets(i).Range(Cells(4, "C"), Cells(Rows.Count, "C").End(xlUp)) Set c = .Find(Worksheets(1).Cells(5, "B").Value, LookIn:=xlValues, lookat:=xlWhole) If Not c Is Nothing Then firstAddress = c.Address Do If c.Offset(0, 2).Value = Worksheets(1).Cells(5, "D").Value Then c.Resize(1, 4).Select MsgBox "該当", vbInformation Exit Sub End If Set c = .FindNext(c) If c Is Nothing Then Exit Do End If If c.Address = firstAddress Then Exit Do End If Loop End If End With Next i Worksheets(1).Activate MsgBox "該当なし", vbInformation End Sub

morinosatou
質問者

お礼

当選者にフォーカスまで当ててくださいましてありがとうございます! 今年の夏まつりはこれでバッチリです。 ありがとうございました!

その他の回答 (3)

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.3

こんにちは、No2です。 フォームのボタンにマクロを登録するとして、 Sub test()   Dim i As Long   Dim s As Variant   Dim v As Variant   For i = i To 6     If i = 6 Then s = "特" Else s = i     v = Evaluate("INDEX(" & s & "等!$F$1:$F$100," & _       "MATCH(1,INDEX((" & s & "等!$C$1:$C$100=$B$5)*(" & _       s & "等!$E$1:$E$100=$D$5),0),0))")     If Not IsError(v) Then       Worksheets(s & "等").Activate       Range("F:F").Find(v, , , xlWhole).Select       Exit For     End If   Next End Sub とかで。

morinosatou
質問者

お礼

ありがとうございます。 これでバッチリです!

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.2

こんにちは >3.当選者の当該シート(5等~特等)を表示し、フォーカスを当てる と、他の当選者も見えてしまうので、当選者検索シートに 当選者 特等 =IFERROR(INDEX(特等!$F$1:$F$100,MATCH(1,INDEX((特等!$C$1:$C$100=$B$5)*(特等!$E$1:$E$100=$D$5),0),0)),"") 1等 =IFERROR(INDEX('1等'!$F$1:$F$100,MATCH(1,INDEX(('1等'!$C$1:$C$100=$B$5)*('1等'!$E$1:$E$100=$D$5),0),0)),"") 2等 =IFERROR(INDEX('2等'!$F$1:$F$100,MATCH(1,INDEX(('2等'!$C$1:$C$100=$B$5)*('2等'!$E$1:$E$100=$D$5),0),0)),"") 3等 =IFERROR(INDEX('3等'!$F$1:$F$100,MATCH(1,INDEX(('3等'!$C$1:$C$100=$B$5)*('3等'!$E$1:$E$100=$D$5),0),0)),"") 4等 =IFERROR(INDEX('4等'!$F$1:$F$100,MATCH(1,INDEX(('4等'!$C$1:$C$100=$B$5)*('4等'!$E$1:$E$100=$D$5),0),0)),"") 5等 =IFERROR(INDEX('5等'!$F$1:$F$100,MATCH(1,INDEX(('5等'!$C$1:$C$100=$B$5)*('5等'!$E$1:$E$100=$D$5),0),0)),"") のように数式をセットしておくのはどうですか?

morinosatou
質問者

補足

さっそくありがとうございます。 >他の当選者も見えてしまうので、当選者検索シートに 他の当選者は見えてしまって全然構いませんが・・・ 出来れば当選者が載っている〇等のシートを表示させたいのです。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

おそらくマクロで作ることになりますので、できれば、全ての当選者一覧表を一つのシートにまとめ、フィルター機能を使ってハイフンで挟まれた2つの街区番号を探した方が、検索結果に安心感が有り、簡単なように思われますがいかがでしょうか。

morinosatou
質問者

補足

さっそくありがとうございます。 出来れば現在のままで検索できれば思っています。 よろしくお願いします。

関連するQ&A

専門家に質問してみよう