Excelの有識者に聞きたい

  • 1二次元好きの匿名さん23/04/19(水) 15:24:56

    サークルライブの出演順を決めたいんだけど
    三バンドに一回換気の時間が必要
    バンドメンバーが被ってるバンドは間に三バンド分空きが必要(換気の時間は一バンド換算)
    総バンドは20程度
    この条件で簡単に出演順を作れるマクロとか知ってたら教えて欲しい

  • 2二次元好きの匿名さん23/04/19(水) 15:26:53

    ChatGPTに聞け

  • 3二次元好きの匿名さん23/04/19(水) 15:27:23

    >>2

    それな

  • 4二次元好きの匿名さん23/04/19(水) 15:29:28

    >>2

    その方が早いかな

  • 5二次元好きの匿名さん23/04/19(水) 15:36:11

    >>4

    これぐらいならマクロじゃなくて

    「この条件でバンドの出演順を決めてください」ってChatGPTに提示したら出してくれると思う

  • 6二次元好きの匿名さん23/04/19(水) 15:42:43

    >>5

    バンド名簿ってどうやってgptに投げるの?

    Excelのリストから文章に起こさないとダメ?

  • 7二次元好きの匿名さん23/04/19(水) 15:45:12

    自分で使う分には組めるけど
    それを回線越しに説明するのクソ難しいから自分で試して直してを繰り返す方がマシでは?

  • 8二次元好きの匿名さん23/04/19(水) 15:46:38

    20組くらいのバンド数なら律義にバンド名をChatGPTに投げるんじゃなくて、「A」「B」「C」って仮の名前20個投げればいいんじゃないの?よく分からないけど

  • 9二次元好きの匿名さん23/04/19(水) 15:49:26

    >>8

    サークルライブだからそれぞれのバンドで結構被るメンバーがいて、それをどうすればいいかってことが知りたい

  • 10二次元好きの匿名さん23/04/19(水) 15:51:09

    >>7

    ライブが二回あって直近の方は20前後だから気合で何とかなるんだけどもう一回の方は40前後出るからめんどくさい

    今まではプルダウンでバンド名+換気で選択できるようにする+バンド名を入力したらバンド名簿を参照してバンドメンバーが自動で表示される+前後で被りがあったら条件付き書式で赤くなる

    ってして後は気合で作ってた

  • 11二次元好きの匿名さん23/04/19(水) 15:52:30

    これはもうマクロ考えるより手作業した方がはやくないか…?

  • 12二次元好きの匿名さん23/04/19(水) 15:58:51

    >>11

    今後も使うだろうからマクロで作って使いまわせたらと思って考えてみたけど思いつかなかったからここで聞いてみた

  • 13二次元好きの匿名さん23/04/19(水) 16:01:29

    そもそも被りを探すのがめんどくさいってことか

  • 14二次元好きの匿名さん23/04/19(水) 16:03:10

    重複なしバンドのほうが数が多ければ演奏順を重複あり、なし、なし、換気って風に定型化したほうが楽なんだけど
    それをやらないってことは重複ありバンドの方が多いのか?

  • 15二次元好きの匿名さん23/04/19(水) 16:04:56

    >>14

    アカペラサークルで結構気軽にバンドが組めるからどのバンドも何処かしらのバンドと重複してるんだよね

    そういう意味じゃなかったらごめん

  • 16二次元好きの匿名さん23/04/19(水) 16:07:20

    全部のバンドで最低一人は重複してる感じ?

  • 17二次元好きの匿名さん23/04/19(水) 16:08:01

    >>15

    それは被るし間隔を開ける必要もめちゃくちゃあるな


    バンド間で一番被りの多い人を出して、その人達が問題なく出場できるバンドの配置からはじめる

    って思ったけどこれ自動化じゃねーな?

  • 18二次元好きの匿名さん23/04/19(水) 16:09:28

    数学の問題かな?
    まあそんなマクロなさそう

  • 19二次元好きの匿名さん23/04/19(水) 16:10:06

    >>16

    まだバンド名簿揃ってないから確実じゃないけど9割以上は最低一人被ってると思ってもらっていい

  • 20二次元好きの匿名さん23/04/19(水) 16:10:21

    今度からメンバーが重複するの禁止にした方がよくね?バンド数増える度にキツくなっていくやん

  • 21二次元好きの匿名さん23/04/19(水) 16:13:38

    マクロでやるにしても処理に結構時間かかりそうじゃない?

  • 22二次元好きの匿名さん23/04/19(水) 16:15:54

    >>20

    大学のサークルだから卒業した人から抜けてくし、それぞれの人にキャパがあるから多い人でも3バンド位だし、文化祭以外のライブはオーディションで出演バンド絞るからどうにかなるんだよね

    学園祭の時だけ無制限に出れるから面倒になるんだけど

  • 23二次元好きの匿名さん23/04/19(水) 16:16:12

    >>18

    >>21

    無理そうなら諦めるかな

  • 24二次元好きの匿名さん23/04/19(水) 16:17:26

    ソート系の処理は自前でやろうとすると難しいんだよね

  • 25二次元好きの匿名さん23/04/19(水) 16:18:02

    マクロなんだから自分で組もうよ

  • 26二次元好きの匿名さん23/04/19(水) 16:19:01

    まぁやりようはあるなーと思いつつやる気にはならん

  • 27二次元好きの匿名さん23/04/19(水) 16:19:52

    >>26

    発想だけでも教えてくれると助かる

  • 28二次元好きの匿名さん23/04/19(水) 16:20:19

    実はExcelマスターがいまマクロを作ってくれてたりしないかな?

  • 29二次元好きの匿名さん23/04/19(水) 16:21:22

    >>27

    とりあえずあれだよ

    表の上から取っていってアウトになるのを入れ替える作り方か、

    乱数で適当にチョイスしていって実行のたびに順番違うのかでもやり方はだいぶ変わる

  • 30二次元好きの匿名さん23/04/19(水) 16:21:57

    ExcelよりPythonにぶん投げた方が速そう

  • 31二次元好きの匿名さん23/04/19(水) 16:21:59

    名簿が出揃ったらそれを見せて「この条件でシフト表を作ってください」みたいなスレ立てればやる人いそう
    個人名とかを適当にマスクしとけば問題ないじゃろ

  • 32二次元好きの匿名さん23/04/19(水) 16:23:15

    ソートではないが昔チームのメンバー表から特定のメンバー抽出して該当チーム表示するの作ったことあるからできることはできそう

  • 33二次元好きの匿名さん23/04/19(水) 16:25:42

    このレスは削除されています

  • 34二次元好きの匿名さん23/04/19(水) 16:26:10

    「Pythonでこういうことができるプログラムを作って」ってChatGPT先生にお願いした方が早そう
    Excelでやるには条件が複雑すぎる気がする

  • 35二次元好きの匿名さん23/04/19(水) 16:45:33

    GPTとPythonで頑張ってみるかも

  • 36二次元好きの匿名さん23/04/19(水) 16:48:52

    今日の仕事終わって残ってたらロジック考えてみよ

  • 37二次元好きの匿名さん23/04/19(水) 17:02:00

    各バンドごとにメンバのデータ入れて、換気データの(全員0)項目をセット

    まず乱数で適当なバンド①を1番目に入れて、そのメンバーに換気3を与える
    その後、「換気0」のみのメンバーのバンド②を取得。換気の値を1減らす。0の場合はスキップ。②のメンバーに換気3を与える
    「換気0」のみのメンバーのバンド③を取得。換気の値を1減らす。0の場合はスキップ。③のメンバーに換気3を与える
    換気時間になったので全員から換気1減らす

    を繰り返す感じか?
    既に選んだバンドは除外リストに放り込む感じで

  • 38二次元好きの匿名さん23/04/19(水) 17:07:04

    バンドが何人かも誰が被ってるかも分からんから他人には無理じゃね

  • 39二次元好きの匿名さん23/04/19(水) 18:31:33

    ついでに参加する人間のリストも管理しやすいように一から作ったほうが速そう

  • 40二次元好きの匿名さん23/04/19(水) 19:26:18

    こういうのはまず三バンドに一回換気の時間が必要
    バンドメンバーが被ってるバンドは間に三バンド分空きが必要(換気の時間は一バンド換算)
    これまずさ、メンバー各人が可能な出演順を出力してみたら?
    例えば総バンド12でAが4つ掛け持ちの場合↓
    A、待ち、待ち、換気、A、待ち、待ち、換気、
    A、待ち、待ち、換気、A、待ち、待ち、終了
    間は絶対詰められないから、ここからのバリエーションはAの開始順が1〜3番目の3パターンが最大
    掛け持ち数多い人ほど絶対不可能なシフトっていうのが出てくるからまずそこ洗い出してから詰めてく感じで

  • 41二次元好きの匿名さん23/04/19(水) 19:31:44

    現時点でのメンバーの総数とバンドの総数と組み合わせの内訳を明記しないとかナメてんのか?

  • 42二次元好きの匿名さん23/04/19(水) 19:34:34

    >>41

    用件定義をちゃんとしないとダメっすね

  • 43二次元好きの匿名さん23/04/19(水) 20:10:06

    100人もいないなら適当にマクロ作ってボタン実行できるようにすりゃいいかな
    もちろんそのマクロ用にデータシートは作るとして

  • 44二次元好きの匿名さん23/04/19(水) 20:37:40

    >>37

    これが一番良さげだけど終盤どのバンドも入れられないタイミングが生じそう

  • 45二次元好きの匿名さん23/04/19(水) 21:04:37

    >>44

    それ考えたがそのパターン考えてると永遠に終わんなそうだから、その場合はエラー吐いて再試行

    →一定回数エラー吐いたら強制停止


    とかかな

  • 46二次元好きの匿名さん23/04/19(水) 21:09:51

    もう諦めて入れれない時は換気休憩を多めに取ればいいんじゃない?

  • 47二次元好きの匿名さん23/04/19(水) 21:12:03

    掛け持ちがある限りどうしても無理な組み合わせは出るだろうからなぁ
    ある程度諦めるケースを含めて作ったほうが楽そう

  • 48二次元好きの匿名さん23/04/19(水) 23:48:19

    Edgeのチャット君にダミーデータ食わせてやってみたけど、直接やらせるのはダメだわ
    うまくいかない

  • 49二次元好きの匿名さん23/04/20(木) 11:16:35

    >>41

    出演順を決めて欲しいんじゃなくて決め方が欲しいって感じなので……

  • 50二次元好きの匿名さん23/04/20(木) 11:26:19

    マクロに簡単もクソもなくない?

  • 51二次元好きの匿名さん23/04/20(木) 11:35:19

    >>47

    正解1個作るよりランダムで順番作ってどこがダメか判定表示する方が楽かもなあ

  • 52二次元好きの匿名さん23/04/20(木) 11:37:49

    換気の時間を3バンド分にしたら解決だな

  • 53二次元好きの匿名さん23/04/20(木) 11:39:43

    マクロは何度も行う処理を簡略化するために有効な手段であって(事務仕事的な)
    一回しかしないことなら頭と手動かしたほうが早いぞ

  • 54二次元好きの匿名さん23/04/20(木) 11:46:18

    >>53

    これ。

    脳死作業の簡略化だけだしな。

  • 55二次元好きの匿名さん23/04/20(木) 12:13:18

    3枠+換気の計4枠を1ブロックとする(20バンドとするとA〜Gブロック)
    Aブロックの1枠目とBブロック1枠目は換気枠含め3枠離れることになるので、メンバーが被っている組み合わせをランダムなブロックの同枠番に放り込む
    あとは残りのバンドを空いている枠にランダムでぶちこめばOK

    これが一番シンプルじゃないかな

  • 56二次元好きの匿名さん23/04/20(木) 12:30:12

    >>53

    自分は一回だけどバンド名簿だけ変えて使いまわせたら後輩が便利だから

  • 57二次元好きの匿名さん23/04/20(木) 13:16:30

    マクロを組む前に手作業で作業行程をマニュアル化してからだな。じゃないと予期しないエラーやる。

  • 58二次元好きの匿名さん23/04/20(木) 15:37:18

    どうしてもExcelでやりたいんならVBAでいちから書いた方が早い

  • 59二次元好きの匿名さん23/04/20(木) 15:40:55

    AIを使うにはその前提知識としてプログラム設計が必要って例っぽい

  • 60二次元好きの匿名さん23/04/20(木) 15:57:48

    1ブロック(3バンド)の組み合わせ作る3重for文の関数作って次の1ブロック作る時には前のブロックのデータも一緒に渡してその条件下で…ってやれば出来る

    もしこういう単純なやり方するなら処理時間の問題からC++とか使うといいけどExcelマクロがこういうのに向いてるのかは知らん

    というかそもそもプログラミングの知識はあるのか?

  • 61二次元好きの匿名さん23/04/20(木) 16:05:44

    >>56

    自分用ならともかく後輩に引き継いでいきたいってなると、条件変わって応用できなくなったりで早々に使われなくなる気がする

    大学とか専門学校とかで、マクロ使える人が集まってるとかなら大丈夫かもしれないけど

  • 62二次元好きの匿名さん23/04/20(木) 16:21:57

    確かに今ある機能のここをこう変えたい!ってマクロ使ってるとよくある話で
    後輩がマクロに積極的じゃないと便利じゃなくなるかもね

  • 63二次元好きの匿名さん23/04/20(木) 16:25:35

    >>61

    いっそ仕様書作って仕様変更(メンバー変更や換気時間など)した際はどこいじるのかとか手順書作っちまえ

    大学で作業簡略化のためこうしましたって実績になるだろ


    まぁプログラミング系の学科なのかも知らんが

    というか普通に>>37を元に計算用データをどう置くかとか考えるだけでは?

  • 64二次元好きの匿名さん23/04/20(木) 16:27:42

    順番だけ作るなら楽だと思う
    マクロ一発で表完成で印刷直行とかはやりたくないけど

  • 65二次元好きの匿名さん23/04/20(木) 18:44:43

    1、まず条件とか考えず全パターンのバンド出演順を出力する
    2、次に3バンド分空いてないパターンをチェックしてグレーアウトすれば条件を満たす出演パターンが残る
    1はバンド名簿、2はメンバー名簿と1の出力結果を入力にする

    これでいけるだろ

  • 66二次元好きの匿名さん23/04/20(木) 19:46:42

    後輩に残しても使われなくなるのは間違いないだろうけど心意気はとても立派だと思います(こなみ)

  • 67二次元好きの匿名さん23/04/21(金) 00:07:38

    マクロは魔法じゃない
    この条件ならまず掛け持ちしてる人を基準に順番決めて残りを穴埋めで決めていくといい

  • 68二次元好きの匿名さん23/04/21(金) 00:34:30

    関係ないけど仕事の募集とかで「Excel使える人」ってたまにあるけどどのくらいできればいいの?

  • 69二次元好きの匿名さん23/04/21(金) 00:48:34

    チャットGPTで直接作らせるんじゃなく
    エクセルでこれこれこういう条件でマクロ組むに必要な事柄はなにか聞いたほうが早いんじゃね?

  • 70二次元好きの匿名さん23/04/21(金) 00:54:34

    以下の条件で出演順を作ってください
    必要な情報が不足していたら指摘してください

    #メンバー

    #条件
    ・三バンドに一回換気の時間が必要
    ・バンドメンバーが被ってるバンドは間に三バンド分空きが必要(換気の時間は一バンド換算)
    ・総バンドは20程度
    ・表形式で出力


    こんな感じでチャットGPTに聞け

オススメ

このスレッドは過去ログ倉庫に格納されています