• ベストアンサー

論理回路をEXCELの関数で組めるでしょうか

ある条件で、関数を組もうとしてますがうまくいきません。 <条件> 1.1000Lの水槽があります。 2.毎分5Lの速度で水が足されます。 3.水槽に900L溜まったら、水は止まります。 4.排水はランダムな量で、時間も不規則です。 5.水槽の残りが100L以下になったら、2.に戻り、水が足され始めます。 6.再び900Lになるまで足され続けます。 ※2~3の間もランダムに排水されます。 EXCELのシート上では、      A列  B列   C列   D列 1行目 時刻  足す量  減る量  =B1-C1 2行目 時刻  足す量  減る量  =D1+B2-C2 というようなイメージで表現したく、 B列の部分を関数で組みたいのですが、どうもうまくいきません。 条件の内容はフリップフロップ回路をくだいて表現したつもりです。 言葉では伝わり難いかと思いますが、この関数の組み方をご教授下さい。

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

  • ベストアンサー
  • knyi
  • ベストアンサー率23% (5/21)
回答No.4

IF文の使用ではいかがでしょうか? B列だけについて考えるとして, 例えばB2のセルには次のような式をいれることで, =IF((B1=5),IF(D1>=900,0,5),IF(D1<=100,5,0)) 水が出ている時には水槽が900L以上になれば止まり, 水が止まっている時には100L以下になれば水が出ます。

その他の回答 (4)

  • knyi
  • ベストアンサー率23% (5/21)
回答No.5

No.4の者です。追加で。 いちおう,最初は水を出すのだとすれば,初期値としてセルB1には5を入れておいてください。

kurosai
質問者

お礼

早々のご回答ありがとうございます。ご回答の関数でいけそうです。 水槽ですので累計が「マイナス」になることはないので、この辺は自分で努力します。 space_needle様、mshr1962様、knyi様、ありがとうございます。 誠に勝手ながら、代表としてNo.5の欄にお礼をさしあげます。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

#2のmshr1962です。 減る量の方ですがRANDBETWEENと言う関数がありました。 こちらなら RANDBETWEEN(最小値,最大値) を整数値で返します。 こちらならF1に最大値の設定は必要ありません。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

時刻は0から始まるのですよね。 減る量はランダムになっていますが最大値はありますよね。 減る量の最大値をF1に設定毎分XLとして A2での時間経過(分)は A2-A1 B2足す量は5*(A2-A1) C2減る量は$F$1*RAND()*(A2-A1) これに3,5の条件を加味するのだから D2現在の水量を比較してE2にスイッチを作成 E1=0 E2=IF(D2>900,1,IF(D2<100,0,E1)) B2=IF(E1=1,0,5*(A2-A1)) C2=$F$1*RAND()*(A2-A1) で計算できませんか? 時刻が時刻形式の場合は (A2-A1)*24*60 としてください。

回答No.1

例えば、 (1) ・12:00 の時点で、水槽には100Lの水が入っていた。 ・12:00~12:10の間、毎分10Lの速度で排水された。 (2) ・12:00 の時点で、水槽には100Lの水が入っていた。 ・12:09までは排水がなく、12:09~12:10の間、毎分100Lの速度で排水された の二つの例について考えてみますと、 (1) の例では、12:00から給水が毎分5L行われるので、12:10の時点では「足す量」が50Lになる (2) の例では、12:09から給水が毎分5L行われるので、12:10の時点では「足す量」が5Lになる と解釈するのでしょうか。 いづれにしても、Excelシート上にもう少し情報が無いと計算できない気がするのですが。 水量の初期値、計測開始時刻、排水開始時刻、単位時間当たりの排水量(あるいは排水量の関数)排水終了時刻あたりがあれば、計算できそうですが。

kurosai
質問者

補足

言葉では伝わり辛いことを痛感しています。 (1)の場合 12:01時点で残量が90Lになるので、毎分5Lで足し始めます。 分単位で行を区切ると、12:00のB列は「0]、12:01、12:02、12:03・・・のB列は「5」が入るようにしたい。 (2)のような場面は想定していませんでしたが、12:09のC列に[0」、12:10のC列が「100」としましょう。 したがって、12:10のB列に「5」、D列の累計が「5」となればよい訳です。 また、初期値ですが、D1のセルは式の通りでなく、 自由に0や500、900といった数値を直接入力してもかまいません。 排水量は毎分1~20L位を適当な時刻に直接入力でよいです。 この辺までは、なんとか出来そうなのですが、900Lを超えたあと、100Lを下回るまでは給水を再開しな条件をどう組んだらいいのか、というところで固まってます。 フリップフロップでのset信号が「100Lを切る」、reset信号が、「900Lを上回る」に相当するのでは、と考えています。(逆かもしれませんが) あと、E列以降は、条件を外だしする為に自由に使ってよいことにしています。 伝わりましたでしょうか?

関連するQ&A

  • エクセルの検索・関数

    お分かりの方、教えて下さい!! エクセルにて、 A列に13桁の数字がランダムにあり、 C列にも13桁の数字がランダムにあり、 E列には1桁~3桁の数字がランダムにあります。 B列に同じ行のA列の13桁と一致するC列の13桁を見つけ、 そのC列のと同じ行のE列の数字を入れたいのです。 上記の内容が出来る関数を教えて下さい。 分かりにくくてすみませんが、よろしくお願いいたします。

  • エクセルの関数についてです

    大変恐縮ですが、エクセルの関数について教えていただきたいと思います。 例 A B C D 1 175 141 210 98 2 47 70 417 39 3 64 845 32 626 4 79 194 54 85 5 224 68 85 110 上記A列からD列の数字が1行目から5行目まで5セットあります。 その中でAはBより大きくCより小さい(B<A<C)なおかつBはAより小さく Dより大きい(A>B<D)。 と、この条件を両方満たしている行だけを抽出したいと考えております(例では1行目が該当します)。 手元に約6万行分のデータがあり、何とか関数で処理したいものの詳しく分からず困っています・・・。 お忙しいところ申し訳ございませんが、どなたか関数をご存じでしたら 教えてくださると幸いです。 よろしくお願い致します。

  • エクセルの関数について

    A列に1,2,3・・・と回数があり、B列に一桁の数字(0~9)がランダムにあり、C列(C1)には『=IF(B1=1,"○","")』とあり、C2以降オートフィルでコピーされています。 B列の数値が『1』の時にだけC列に『○』が入りますが、D列に『C列の○と○の間隔』を数字で表示したいのですが、『=IF(B10=1,COUNTBLANK(C2:C9)+1,"")』としても、オートフィルで全てのD列にコピーしても参照セル範囲がランダムなので上手く行きません。 ○印が出現したら直前回の○印からの出現間隔を関数で自動表示したいのですが、関数が分かりません。あるいは関数の組合せ方法が思い浮かびません。 分かりやすく言うと、例えばナンバーズなどのある桁の0から9までの数字のうち、任意の数字が出現するたびにその横の列に○印を付け、さらにその横の列に出現した間隔を自動で表示できる関数が知りたいのです。 言葉で上手く表現できませんが、分かる方教えて下さい。お願いします。

  • EXCELの関数で...

    以下のようなことが関数でできないでしょうか。 L1~L10に文字 M1~M10に文字 N1~N10に日付け が、入ってます。 K1~K10は空白ですがここに1~10の数字をランダムに入れます。 そのとき、Kに1の入った行(L,M,N,)の内容をA5,B5,C5に、 Kに2の入った入った行(L,M,N,)の内容をA6.B6,C6にと Kに10が入ったところまでを順次行いたいのですが できるでしょうか? どなたか、よろしくお願いいたします。

  • エクセルの数をかぞえる関数のAND

    EXEL2003を使用しています。 A列には空白セル、「Y」「B」がランダムに入っています。 B列には、人物の名前「中村」「高橋」「村田」がランダムに入っています。 A列が「Y」で、B列が「高橋」の行の数だけをカウントする条件付関数はどうなるでしょうか? COUNTIFとAND関数を使用すると思うのですが、使い方がわかりません。 よろしくお願いします。

  • エクセルの関数について

    A列1行からB列1行を引き算して、+になれば○を、-になれば×をC列1行に入れる関数を教えて下さい。    A       B      C 1 20050621   20050623     × わかりにくくですみませんが、教えて下さい。

  • エクセル関数で教えてください。

    例えば、A列の1行目からA列の100行目まで社員の名前が重複せずに100人分あります。B列1行目からW列100行目までにランダムに数字が入っています。数字は重複していません。この、数字(例えば5という数字)のセルの場所を特定したいのですが、関数でこの場所を特定する方法を教えていただけませんか? 結果的に必要なのは、5という数字が何行目にあるかだけですので、それだけ分かれば良いのですが。良い方法が見つかりません。 今回はマクロは一切使わない条件です。よろしくお願いいたします。

  • エクセルの関数について

    エクセルの関数の作り方について教えてください。 A列が曜日、、月、火、水、、、、土、日 B列が5人の名前がランダムに入っている 田中 鈴木、小泉、佐々木、、、 とします。それがずっと、、約1000行あります。 日曜日の鈴木さんの数をカウントする式は作れるでしょうか。

  • エクセル関数

    二つの条件から抽出する関数INDEXとMATCHをつかって作ってみたのですが行と列からの抽出ではなく二つの列からの抽出を行いたいと思います。 シート1 (データが既に入っております。)    A   B   C 1 \100 a123 tana 2 \200 h456 taka 3 \120 k789 yogi 4 \250 b456 ume シート2    A   B   C 1  k789 yogi シート2のC列に¥120と抽出する関数をご教授ください。 宜しくお願いいたします。

  • 中学理科の問題です。宜しくお願いします。

    図1のように、2つの水槽A.Bがある。どちらの水槽にも毎分一定の量で排水できる栓がついており、その量は変えることができる。また、水槽Aからの排水は全て水槽Bに入ることとし、2つの水槽は十分に大きく、水があふ れることはないとする。2つの水槽の栓を閉じて、2つの水槽に水を入れた状態から、同時に排水することを2回行った。排水を始めてからx分後の水槽Bの水の量をyリットルとする。以下の問いに答えてください。 (1) 水槽Aに150L,水槽Bに110Lの水を入れた状態から、水槽Aは毎分6L,水槽Bは7Lの割合で同時に排水を始めた。水槽Aの水がなくなった後しばらく時間が経ってから、水槽Bを毎分4Lの割合で排水を変えたところ、同時に排水をはじめてから40分後に水槽Bの水がなくなった。水槽Bの排水を毎分4Lに変えたのは、同時に排水を始めてから何分何秒後か? 答えは→33分20秒です。

専門家に質問してみよう