【無料配信♪】Renta !全タテコミ作品第1話

素人で申し訳ないのですが、献立表・買い物リストを作成するのが難しく、質問します。
どなたか詳しい方、時間が空いた時にでもヒントを頂戴したく思います。(TT)

■したいこと
①N日ごとの献立を、メイン料理、副菜1、副菜2を、Sheet3に出してほしい。
※その時、気に入らなければ、再選出出来るように、メイン料理、副菜1、副菜2それぞれに、再選出ボタンを作りたい。
②献立が決定したら、決定ボタンを押すことで、Sheet4に買い物リストを表示させたい。


※/は、セルの区切りです。

Sheet1 献立データ
(料理名/メインor副菜/材料名-1/一人当たりの個数-1/材料名-2/~(略)~/一人あたりの個数-25)

Sheet3 N日ごとの献立算出

(N/日分算出する)

(1日目/X人分/メイン料理/再選出ボタン/副菜1/再選出ボタン/副菜2/再選出ボタン)
(2日目/X人分/メイン料理/再選出ボタン/副菜1/再選出ボタン/副菜2/再選出ボタン)
(3日目/X人分/メイン料理/再選出ボタン/副菜1/再選出ボタン/副菜2/再選出ボタン)
(4日目/X人分/メイン料理/再選出ボタン/副菜1/再選出ボタン/副菜2/再選出ボタン)
(5日目/X人分/メイン料理/再選出ボタン/副菜1/再選出ボタン/副菜2/再選出ボタン)
(6日目/X人分/メイン料理/再選出ボタン/副菜1/再選出ボタン/副菜2/再選出ボタン)
(7日目/X人分/メイン料理/再選出ボタン/副菜1/再選出ボタン/副菜2/再選出ボタン)

Sheet4 買い物リスト

私の知識はEXCEL中級程度で、数式と記録マクロしかできませんが、やはりこれを作ろうと思ったらVBAの知識が要りますよね…(TT)
再選出ボタンも、献立データに、献立ごとの管理番号をつけて、乱数でやればいいんでしょうか?
すみません、ご教授ください…

A 回答 (1件)

難しいことは考えず、まずは乱数で目的の値を表示できる数式を作ってみましょう。


でもって「F9キー」を押したり、セルに値を入れたりすると都度表示内容が変わるようなものにする。

記録マクロまではできるという事であれば、
作った数式の「値」をコピーして別の場所(一覧)に貼り付けるマクロを作る。
このマクロを実行するためのボタンと貼り付ける場所を変えたマクロを必要な数だけ用意すれば良い。

手順と考え方はこんなもので良いんじゃないですか?


・・・余談・・・

かつて自分はこの手の物を
 「ランダムな文字列を並べるパスワード生成器」
として作ったことがあります。
候補を3つほど並べて表示できるように作りましたね。
候補1が気に入らなければ候補1に対応するボタンを押すと候補1だけ生成し直すようなものです。
この頃は質問者さんと同じで「記録マクロ」程度しか分かっていませんでした。
それでもそれなりの物ができましたので、質問者さんにもできると思います。
    • good
    • 0
この回答へのお礼

ありがとうございます!
無事、再選出ボタンができました!
まだ買い物リストを出すボタンが、どう作ればいいのかわかりませんが…。

お礼日時:2019/02/11 20:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

QIF関数について

A1~Z1の列の間に、特定の文字(たとえば”りんごの文字”)がセル内に含まれる場合(あかりんごなど)にその下のA2~Z2の列の間に記入された日付を抜き出す方法をご存知でしたら
どなたか教えていただけませんでしょうか、よろしくお願いします。

A2にあかりんごがあれば、B2の日付を抜き出そうとしています。

Aベストアンサー

では、HLOOKUP関数か、抜き出すのが日付ならSUMIF関数でもできるかと思います。

りんごを含む文字を検索値にする場合で、直接式にいれるなら「*りんご*」のようにしてください。

Q【関数】複数条件に応じてポイントをつけたい

お世話になっております。

条件によってポイント付与する数式を組みたいのですが
条件が複雑で、どのような関数を組めば良いか、関数の知識も乏しく頭を悩ませております。
詳しい方教えて頂けないでしょうか?

K列 担当者ID
L列 計画
M列 実績
N列 達成率
O列 達成額/未達額
P列 ポイント付与欄

上記のようなデータがあります。

下記条件で、O列「達成額/未達額」の降順にポイントを付与したいです。
その際、下記の条件でポイントを付与したいのです。

ポイント集計先
①黄色セル K5~K18:担当者ID
➁赤色セル K4:部門コード
※画像添付いたします。

ポイント付与条件別表
黄色セル E列:担当者ID ※上記①と紐づく
ピンクセル F列:担当者に紐づく主担当部門コード ※上記➁と紐づく
※補足へ画像添付いたします。

★条件★
・基本
O列
①「達成額/未達成額」が0以上なら降順に10Pからポイント付与
➁「達成額/未達成額」が0orマイナスならポイント付与せず
※ただし、マイナスでも実績があればポイント付与

上記、基本条件に加えて、下記条件も組み込みたいです。
①担当者ID+主担当部門コードが紐づけはO列に10PからポイントMAX付与
➁担当者ID+主担当部門コード以外だったら該当ポイントの1/2付与
かつ、「達成額/未達成額」が0orマイナスなら1/2のポイントの半分付与

何卒、よろしくお願いいたします。

お世話になっております。

条件によってポイント付与する数式を組みたいのですが
条件が複雑で、どのような関数を組めば良いか、関数の知識も乏しく頭を悩ませております。
詳しい方教えて頂けないでしょうか?

K列 担当者ID
L列 計画
M列 実績
N列 達成率
O列 達成額/未達額
P列 ポイント付与欄

上記のようなデータがあります。

下記条件で、O列「達成額/未達額」の降順にポイントを付与したいです。
その際、下記の条件でポイントを付与したいのです。

ポイント集計先
①黄色セル...続きを読む

Aベストアンサー

まず基本条件の方からいきます。
1.セルP5に 「 =IF($M5>0,MAX(10+1-RANK.AVG($O5,IF($M$5:$M$1000>0,$O$5:$O$1000,"")),0),"") 」を入力します。
2.必要なだけ下方向にコピーします。(完了)

*RANK.AVG関数で”達成額/未達成額”の順にランキング(1~)をつけ、11から差し引く、という方法をとります
*”実績”がマイナスのものはランキング付けそのものから除外するので、IF関数で検索対象の配列を絞り込みます
(IF関数に配列を入れたら答えも配列で返してくれるので、その絞り込んだ配列に対してRANK.AVR関数を使います。)
*マイナスのポイントは排除したいので、MAX関数でゼロと比較して正の値のみを採択します

追加条件込みの方は、以下です。
1.セルP5に 「 =IF($M5>0,MAX(10+1-RANK.AVG($O5,IF($M$5:$M$1000>0,$O$5:$O$1000,"")),0)*IF(VLOOKUP($K5,$E$3:$F$1000,2,FALSE)=$K$4,1,IF($O5>0,0.5,0.25)),"") 」を入力します。
2.必要なだけ下方向にコピーします。(完了)

*担当IDから担当部門コードの検索にはVLOOK関数を使います。VLOOK関数が正常に動作するには、担当IDに漏れがない事と番号順に並んでいる事が必要ですので、これ前提で考えて下さい。
*追加条件に準じ、ポイントを1倍したり、0.5倍したり、0.25倍したり、しました。

まず基本条件の方からいきます。
1.セルP5に 「 =IF($M5>0,MAX(10+1-RANK.AVG($O5,IF($M$5:$M$1000>0,$O$5:$O$1000,"")),0),"") 」を入力します。
2.必要なだけ下方向にコピーします。(完了)

*RANK.AVG関数で”達成額/未達成額”の順にランキング(1~)をつけ、11から差し引く、という方法をとります
*”実績”がマイナスのものはランキング付けそのものから除外するので、IF関数で検索対象の配列を絞り込みます
(IF関数に配列を入れたら答えも配列で返してくれるので、その絞り込んだ配列に対してRAN...続きを読む

QExcelで数値が入っているセルにおいてその数値を表示せず、代わりに任意の文字列を表示したいのですが

Excelで数値が入っているセルにおいてその数値を表示せず、代わりに任意の文字列を表示したいのですが何か方法はありますか?

あるセルに元の数値があってそれをベースに別のセルで計算を行っています。但しその元の数値を印刷時に見えなくし、代わりに任意の文字列を表示したいのです。

例えば社内でのみ閲覧可能な定価相当の数値があり、これにある掛け率で売価を計算しているとします。当然この売価は印刷時において見える必要があります。一方元の数値の入ったセル部分には実際には社内定価の数値が入っているのですがこれを表示するのではなく「オープン価格」として表示したいケースです。
いい方法はありますか?

Aベストアンサー

「セルの書式設定」-「ユーザ定義」で、”オープン価格” と定義してみては。

QエクセルのIF関数について教えてください

エクセル2007を使用しているのですが、IF関数について分からない事があるので分かる方アドバイスをお願いします。

A2には「お急ぎ便」「通常便」「日時指定便」のいづれかの文字が入力されています。
A3には「出荷予定日」  2018/12/1 など入力されています。
A4には「=A3+1」と入力して出荷予定日の翌日の日付が入力されるようにしています。 
     例えばA3が2018/12/1の場合には2018/12/2と表示されます。

私がやりたいことですが、A5のセルに下記の情報を入力したいです。

A2のセルに「お急ぎ便」という特定の文字が含まれている場合には、出荷予定日の翌日に到着させなければいけない為、A4の日付をA5セルに表示させるようにしたいです。

反対に「通常便」「日時指定便」の文字が含まれている場合には、A5セルに何も入力せずに「空白」にしたいです。

私も色々と試行錯誤しながら下記の関数がつかえそうだと考えてみましたが、この文字列はお急ぎ便という文字がはいっている場合は○を表示させて、入っていない場合は×と表示させるものですよね。

=IF(COUNTIF(A2,"*お急ぎ便*")=1,"○,"×")

上記の○の部分に、A4のセルで表示されている文字を表示させるようにしたいのですが、可能でしょうか?×の部分は単純に削除して空白にすればいいと思うので問題がないのですが、○の部分に=A3+1とかA4とか色々と入力しましたが、入力した内容がそのまま表示されてしまって、A4の日付をA5のセルに表示させるのはできないようです。

分かる方がいらっしゃったらアドバイス頂ければ助かります。どうぞよろしくお願いします。

エクセル2007を使用しているのですが、IF関数について分からない事があるので分かる方アドバイスをお願いします。

A2には「お急ぎ便」「通常便」「日時指定便」のいづれかの文字が入力されています。
A3には「出荷予定日」  2018/12/1 など入力されています。
A4には「=A3+1」と入力して出荷予定日の翌日の日付が入力されるようにしています。 
     例えばA3が2018/12/1の場合には2018/12/2と表示されます。

私がやりたいことですが、A5のセルに下記の情報を入力したいです。

...続きを読む

Aベストアンサー

>○の部分に=A3+1とかA4とか色々と入力しましたが、入力した内容がそのまま表示されてしまって

まずは、A5のセルの表示形式を日付にしましょう。

それから、A2には
>「お急ぎ便」「通常便」「日時指定便」のいづれかの文字が入力されています。
なので、部分一致にしなくても

A5=IF(A2="お急ぎ便",A4,"")

でよくないですか?それとも他に文字がプラスされることがあるのですか?

QINDIRECT関数の代替方法は?

先に本スレッドで下記数式を教わり問題を解決することが出来ました。
  =SUM(INDIRECT("E"&MATCH("AAA",A:A,0)&":"&"E"&MATCH("AAA",C:C,0)))
ただ、このINDIRECT関数により、ブックに変更がなくても終了時にブックの保存の要否が尋ねられます。
これを回避するためにINDIRECT関数の使用を止めたいのですが、その方法をお教えいただきたくお願いします。

Aベストアンサー

ちょっと気になったので一言だけ。
別の人がこのシートを使って試算をしたとします。保存しなければいいやと思ってバッテンをクリックしたら「保存しますか」のメッセージが出ずに、いきなり保存されてしまいました。ってことのなりませんか。
ここは作業列を作ってシンプルな式で対応した方が安全な気がします。

Q何故このようなプログラムだとエクセルに書き込めないのか教えてください。

何故このようなプログラムだとエクセルに書き込めないのか教えてください。

Aベストアンサー

私もPythonは研究を始めたばかりですが、まさかopenpyxlとかのExcel操作ライブラリがインストールされてないなんてオチはないですよね?

あとsheet1.write(str… ってなってますが、ここはセル番地の指定だからstrでは文字列になっちゃうのでまずいと思います。変数countは数値なんだから、そのまま sheet1.write(count, 0 ,str(inputvale)) でいけるのでは?

QVLOOKUPの一部が参照しません、どのように直したら良いでしょうか

INDEX(価格表の参照範囲,MATCH(検索値,会社名の列),MATCH(検索値,商品名に行))
で商品価格を読みに行く関数をセルに入れました。
ほぼ問題なく価格を拾ってくるのですが、一部会社名がアルファベットの会社だけ参照されず#N/Aエラーが出てしまいます。
参照先の会社名をそのままコピーしてもやはりエラーが出てしまうのでアルファベットか否かが問題なのかなと思うのですが、何でできないのでしょうか?
会社名を変える以外で何か設定の部分で参照するようにできるでしょうか?

Aベストアンサー

全角半角は合ってますか?
後、余分なスペースなど入ってませんか?

Qエクセルで、通し番号を入力すると一覧表から該当の内容だけ抜きだせるようにしたい

番号 名前 電話番号 住所 備考
1 山田 000-0000 ◯町0-0 備考◯◯
2 田中 111-1111 ×町1-1 備考××
3 佐藤 222-2222 △町2-2 備考△△

このような、先頭に通し番号があり横に情報を入力している一覧表が《シート1》にあるとします

《シート2》に別の表組があり、特定の箇所に通し番号「1」を入力するとシート1に入力していた情報が各項目に自動反映する、といったエクセルを作成したいです。

この説明でわかるでしょうか…。
シート2は枠組みと各項目のタイトル(名前とか電話番号とか)と空欄がある状態で、通し番号を入力することで空欄に該当の内容が自動反映されるような表です。
多分「ここに1と数字を入れるとここのセルにはどのシートのどの情報が入る」といった関数を入れればいいと思うのですが、その関数がわかりません。


今現状、全て手入力で各ファイルやシートに入力しているので、こっちの表はあっているのにあっちの表は誤字脱字がある変更されていないなど、微妙な問題が発生しています。
通し番号管理ができれば大元に必要情報を集めておき、各々必要な情報を呼び出すようにして内容のズレを防げると思うので、どなたか上記関数がわかる方がいらっしゃいましたらご助力ください。
よろしくお願いします。

番号 名前 電話番号 住所 備考
1 山田 000-0000 ◯町0-0 備考◯◯
2 田中 111-1111 ×町1-1 備考××
3 佐藤 222-2222 △町2-2 備考△△

このような、先頭に通し番号があり横に情報を入力している一覧表が《シート1》にあるとします

《シート2》に別の表組があり、特定の箇所に通し番号「1」を入力するとシート1に入力していた情報が各項目に自動反映する、といったエクセルを作成したいです。

この説明でわかるでしょうか…。
シート2は枠組みと各項目のタイトル(名前とか電話番号と...続きを読む

Aベストアンサー

VLOOKUP関数で十分です。

とりあえず同じシートのG列に数字を入れて、H,I,J,K列にそれぞれ値を表示させるとして考えてみましょう。

H2セル
 =VLOOKUP(G2,A2:E4,2,FALSE)
I2セル
 =VLOOKUP(G2,A2:E4,3,FALSE)
J2セル
 =VLOOKUP(G2,A2:E4,4,FALSE)
K2セル
 =VLOOKUP(G2,A2:E4,5,FALSE)

これが基本になります。
前の回答者さんはVLOOKUP関数の中にCOLUMN関数を使っていますが、それは3番目の引数が連続した数値になる事を考慮した応用です。

・・・
では、別のシートから値を参照する方法。
同じシートのセルを参照する場合は
 =セル番地
 =A1
のように指定しますが、
別のシートの値を参照するときは
 =シート名+!+セル番地
 =Sheet2!A1
のように指定します。
シート名が ”データベース1” なら
 =データベース1!A1
になるということです。
(全角半角大文字小文字は正確に記述しましょう)
質問の例では
 A2:E4
の範囲がこれに当たりますので
 シート1!A2:E4
のようにしてい参照します。

すると
H2セル
 =VLOOKUP(G2,シート1!A2:E4,2,FALSE)
I2セル
 =VLOOKUP(G2,シート1!A2:E4,3,FALSE)
J2セル
 =VLOOKUP(G2,シート1!A2:E4,4,FALSE)
K2セル
 =VLOOKUP(G2,シート1!A2:E4,5,FALSE)
となります。
質問文にある「特定の箇所」のセルをこの式の「G2」のところに指定してください。

あとはエラー対策や数式を入力したセルをコピーすることを考慮して若干の修正を加えるだけです。
するとNo.3の回答者さんの示す数式になりますね。

このように一つずつ考えて数式を【組み立てる】ようにしましょう。
いきなり全部作れるようになってもこの考え方は変わりません。

VLOOKUP関数で十分です。

とりあえず同じシートのG列に数字を入れて、H,I,J,K列にそれぞれ値を表示させるとして考えてみましょう。

H2セル
 =VLOOKUP(G2,A2:E4,2,FALSE)
I2セル
 =VLOOKUP(G2,A2:E4,3,FALSE)
J2セル
 =VLOOKUP(G2,A2:E4,4,FALSE)
K2セル
 =VLOOKUP(G2,A2:E4,5,FALSE)

これが基本になります。
前の回答者さんはVLOOKUP関数の中にCOLUMN関数を使っていますが、それは3番目の引数が連続した数値になる事を考慮した応用です。

・・・
では、別のシートから値を参照する方法。
同じシートの...続きを読む

QExcelの変更方法について教えて下さい!!

今までExcelの2003のバージョンのものを使用していましたが
パソコンを変えて、Officeを2016に変更しました。

その際、仕事で使っていた資料をExcelの2016で開くと
変わっていることが多く、何点か面倒なことがあります。

①前までリストボックスの形式になっていたものが
 チェックボックスの形式に変わっていました。
 チェックボックスが使いづらいので、リストボックスに変更したいです。
 やり方はありますか?

②塗りつぶしの色に『ローズ』というカラーが前までは
 あったのですが、2016にはありません。
 また、ユーザー設定した場合、どれにすればいいのか
 そしてそれを規定(毎回ユーザー設定せずにスムーズに使える)するには
 どうすればいいのか。


パソコンがあまり得意ではないので、
表現や言葉があっているかわかりませんが、困っていますので
わかる方、どうかお力を貸してもらませんでしょうか。

宜しくお願い致します。

Aベストアンサー

オートフィルターについては慣れるしかないと思いますよ。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter.htm
以前よりも直感的作業ができると思いますしね。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter.htm

塗りつぶしの色については、仕様変更で探すのが大変ですよね。
http://yamagen.hatenablog.com/entry/2015/06/26/135718
https://hongopc.exblog.jp/7619758/
アドインを使う方法もあるようです。
https://www.aruse.net/entry/2018/09/13/015550

QExcelで有休休暇の表を作成していますが、ご意見頂けると助かります。

年に1度20日間の有休が与えられます。
前年の繰越と合わせ1年間で最大40日間が与えられます。

その為G4セルには
=MIN(E4+F4,40)の関数を入れています。

その他のセルには
E4セル→1=C4-D4
I4セルには→=G4-H4……
と有休残を毎月確認したいため3月まで入れてあります。

そこで問題なのが
毎月有休残を入力して確認したいのですが
添付表のようにD4セルに有休消化1を入力し、F4セルに付与日数20日を入力すると
3月までズラーっと有休残がでてしまいました。

毎月々入力して残を見たいのですが、例えば今が4月なら4月以降は表に有休残が表示されないようにしたいです。

このような表以外にもスッキリする表などありましたら教えて頂けると助かります。

分かりづらくスミマセン。。。

Aベストアンサー

はじめまして

IF関数で使用日数がなければ空白にすればよいのではないでしょうか。

I4セルには→=G4-H4 ではなく =IF(H4="","",G4-H4)
にすれば、H4が空白の場合は残の欄は空白になりますよ。


人気Q&Aランキング