はじめまして、ShirasuSalaD(もりもー)と申します。
もともと小さい頃パソコンぽちぽちしていて、そこにブラッディマンディが好きが乗じて人並み以上にパソコンをいじいじするようになった人間です。
よろしくお願いします!
TL;DR
所属している大学のサークルでの作業の一環として最近触るようになったExcel。
取り扱うデータテーブルが大きめ。(某バカ田大学のシラ○ス)
身内向けにいい感じで検索できるやつがほしいなあということで作ってみました。
これを作るにあたって調べたことを備忘録としてメモしておきます。
製作当初
Rの方に少し経験があってはじめはR/Shinyでやってみようと思いました。
ですが絞り込み検索するにあたって、
ドロップダウンリストから候補を選択し、該当データの行を表示
→selectInputでごにょごにょ
「」を含む検索
→searchInputでわちゃわちゃ
でやっていたのですがselectInputまわりで選択内容が結果に反映されないエラーに直面し苦戦。。。(現在は解決しました)
R Shiny データ 絞り込み検索 selectInputまわりがうまくいかない?? 選択と同時に連携して表を表示させる
(Teratailでぼかすかに叩かれて泣いた図↑)
加えて他のサークル員に使ってもらいたくてもわざわざこれをサーバーにあげて...というのも面倒なため、Excelへ変更するのでした。。。
VBAわかんないよう
アルバイト先で今後向き合わないといけないと分かっていながらまともに勉強していなかったVBAへの挑戦。
リボンの「開発」タブから「Visual Basic」への行き方も忘れかけていた醜態。。。
お先真っ暗。。。と思いきや!
①スライサー : 候補から選択して絞り込み
Excelのスライサー。テーブル・ピボットテーブルのデータをタッチで瞬時にフィルタリング
きたあああああ!!!!
無知なのが恥ずかしいですがExcelの標準の機能で【スライサー】というものがありました。
画像の通り、RのselectInputをカンタンクリック操作で実現できちゃいました!
いやー、これが便利機能過ぎて。スライダー要素が今回多いため小さめのサイズで配置していますが、スライダーを大きく設置しておけばモバイル端末向けにはとても操作しやすいパネルになっています。
② : 候補から選択して絞り込み
Excelのオートフィルターを文字列、数値、日付の複数条件で使う
すっごーい!!!!
これがRのsearchInputに相当するもの!
Sub 講義名()
If Range("C2").Value = "" Then
MsgBox "講義名を入力してください(あいまい検索)。"
Exit Sub
Else
Worksheets("data").Range("E8").AutoFilter Field:=2, Criteria1:="*" & Worksheets("data").Range("C2").Value & "*"
Worksheets("data").Select
End If
End Sub
リンクを参考にいろいろいじくったもの。
といえどIf文は単にセルが空白状態だったらアラートを出すだけだし
Criteria1にて ***** を2つ分はさんでやることで検索結果は「を含む」といった柔軟な検索に対応できる。
あとはこれを「教員名」なり取り出したいテーブルの列に合わせてコピペで増やしまくって各実行ボタンに「マクロの登録」をしてやるだけ!
できあがり
https://gyazo.com/50c39b534585520641e9423996d802b3
スライダーを動かしている様子
検索の様子
まとめ
文化祭委員の仕事を中高生時代にしていたときに先輩がExcelで各委員の役割やダンスグループがどれで出演時間がこれで、、というデータ操作を匠に扱っていたファイルを昔触らしてもらったことがあり、そのときのことを思い出しました。(でもたしか機能はVLOOKUP関数のみだったような)
なので未だに高校生でも余裕で実現可能なことなのにこんな喜んでいて少し恥ずかしいですが、【アウトプットは大事】と信じて頑張っていきます
感想やこうしたほうがいいよ的なコメントをお待ちしています!