EXCELの計算式についてお教えください

このQ&Aのポイント
  • EXCELの計算式についてお教えください。
  • 条件は基本的にはC列は他の列より大きいか同じ、D列は他の列より小さいか同じです。
  • しかし、BD列に-が入ると×になりますが、C列だけ○になってしまいます。どのようにすればよいのか教えてください。
回答を見る
  • ベストアンサー

EXCEL の計算式についてお教えください

下記のようなシートに計算式入っています 条件は基本的にはC列は他の列より大きいか同じ・D列は他の列より小さいか同じ BDE列 - が入ると×になりますがC列だけ○になってしまいます 1    A     B    C    D    E 2   3月18日  4931  4939  4891  4897 3   3月20日  4938  4944  4895  4901 4   3月21日  4926  4934  4886  4891 5   3月23日  4938  -    4895  4901 G 列に =IF(AND(D2>=C2,D2>=E2,D2>=F2,E2<=F2,E2<=C2,E2<=D2),"○","×") 入れて下にコピーし計算して見ましたがうまくいきません。 どのようにすればよいのか・・・。 よろしくお願いします。

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

  • ベストアンサー
回答No.5

「-」は文字列なので、これを不等式で比較しようとすると、「どんな数値よりも大きい数」と判定されてしまいます。例えばどこかのセルに、「="-">10^100」(10^100 とは 10 の 100 乗)とでも記入してみてください。 というわけで、「-」は他の数値と混ぜて比較せず、別個に条件分岐したほうが誤りがないし、数式の可読性という意味でも好ましいと思います。 G2 =if(countif(b2:f2,"-"),"×",IF(AND(D2>=C2,D2>=E2,D2>=F2,E2<=F2,E2<=C2,E2<=D2),"○","×"))

yama0192
質問者

お礼

 希望どうりの結果になりました。  ありがとうございました。

その他の回答 (5)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.6

>データーに誤りがあってD列に-の入ったときG列に×印がほしかったのです 数値を入力するセルに対して入力規則で文字列が入らないように設定することで誤りを防げます。 文字列と数値の判定を全てのセルに対応させることもできますが関数式が複雑になるのでお勧めできません。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

タイプミスのため一部表示に不具合が出ました。 お詫びして訂正します。 C>=B D<=B C>=D D<=C ← これは同じ式の左右を入れ替えただけです。 C>=E D<=E

yama0192
質問者

お礼

 今回の質問には何度も丁寧な回答を  ありがとうございました色々勉強に  なりました。   質問をさせていただくとき良く考えて  注意を払うようにしたいと思います。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.3

>BDE列 - が入ると×になりますがC列だけ○になってしまいます 「BDE列 - が入ると」は何を言いたいのか分かりません。 G列に条件を判定する論理関数を入力すれば良いことであり、各列の値が論理に合っているか否かをチェックしてください。 =IF(AND(D2>=C2,D2>=E2,D2>=F2,E2<=F2,E2<=C2,E2<=D2),"○","×") 上記の式を個々にチェックしてみると次のようになります。 C>=B D<=B C>=D D<=C ← これは同じ式の左右を入れ替えただけです。 C>=E D<=E B、D、Eの値が正(+)でCの値が負(-)の時はG列の判定が"×"になります。 あなたの思惑と違う結果になるのはあなたの考え方に誤りがあります。

yama0192
質問者

補足

 No.2のTrick--o--様  No.3のbunjii様  大変ご迷惑をおかけしました。  質問の仕方間違えてしまい申し訳ありませんでした。  質問の趣旨はまずA列空白でありG列は判定結果を○×で表したかったのですが  データーに誤りがあってD列に-の入ったときG列に×印がほしかったのです 1    B    C    D    E    F 2   3月18日  4931  4939  4891  4897 3   3月20日  4938  4944  4895  4901 4   3月21日  4926  4934  4886  4891 5   3月23日  4938  -    4895  4901  大変失礼しました   以後質問をさせてもらうとき十分注意すようにいたします。   ありがとうございました。

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.2

条件がよくわかりません。 「どういうときに」、「どうしたいか」を書いてください 参考: C列は他の列より大きいか同じ → B~E列で一番大きいのがC列 → MAX(B2:E2)=C2 D列は他の列より小さいか同じ → B~E列で一番小さいのがD列 → MIN(B2:E2)=D2 BDE列 - が入ると → OR(B2="-",D2="-",E2="-")

yama0192
質問者

お礼

大変失礼しました   以後質問をさせてもらうとき十分注意すようにいたします。   ありがとうございました。

  • lilam001
  • ベストアンサー率49% (289/579)
回答No.1

どうしてF列の値が無いのに、数式にはF2が出てくるのでしょう。 この質問からでは、G列に○か×を入れたいということしか分かりません。

yama0192
質問者

補足

 大変ご迷惑をおかけしました  質問の仕方間違えてしまい申し訳ありませんでした。  質問の趣旨はまずA列空白でありG列は判定結果を○×で表したかったのですが  データーに誤りがあってC列に-の入ったときG列に×印がほしかったのです 1    B    C    D    E    F 2   3月18日  4931  4939  4891  4897 3   3月20日  4938  4944  4895  4901 4   3月21日  4926  4934  4886  4891 5   3月23日  4938  -    4895  4901  大変失礼しました   以後質問をさせてもらうとき十分注意すようにいたします。   ありがとうございました。

関連するQ&A

  • エクセル2003で勤務時間計算をしたいのですが、

    エクセル2003で勤務時間計算をしたいのですが、 現状は下記のように、H列の計算式が30分単位なのですが、 5分単位で給与計算して、小数点以下を切り捨てするには、 H列の計算式のどこを訂正するとよろしいでしょうか? ■現状(時給880円の場合) C列     D列     E列     F列     H列 始業時刻  終業時刻  休憩時間  実働時間  日給 10:00    17:30     0:45    6:45     5720円 H列の計算式 =IF(OR(C9="",D9=""),"",G9*HOUR(F9)+IF(AND(MINUTE(F9)>=0,MINUTE(F9)<=29),0,IF(AND(MINUTE(F9)>29,MINUTE(F9)<=59),G9/2,G9)))

  • Excelの計算式

    同一のファイル内で↓の事をしたのですが、ご意見をいただけませんか? Sheet1; (A列) (B列) (C列) (D列) 1 fileA 10K   ● 対象外 2 fileB 20K ▲ 3 fileC 30K  ×  対象外 4 fileD 40K  ■ . . Sheet2; (A列) (B列) (C列) (D列) 1 fileA 10K   0 n/a 2 fileB 20K   1 ▲ 3 fileC 30K   0  n/a 4 fileD 40K   1   ■  . . 1. (Sheet2)D列の作成です。 Sheet1, Sheet2共に行の並びは例のように順序正しくなくランダムです。 (Sheet1)A列を検索して、同一ファイルが存在すれば、ヒットした行番号の(Sheet1)C列の記号をコピーします。 ただし、(Sheet1)D列が「対象外」のときは、「n/a」をコピーします。 セル(D, 1)の定義ですがエラーになります。 =IF(Sheet2!A1 = Sheet1!A:A, IF(Sheet1!D:D = "", Sheet2!C:C, "n/a") ) 2. (Sheet2)C列の作成です。 今後、(Sheet2)D列と同じデータ項目の列がE,F,G..と増えます。 記号が存在すればカウントして、「n/a」はカウントしません。 汎用的に最終列を検索して、合計を求める方法はございますか? セル(C, 1)の定義はどのようになりますか? 以上 宜しくお願い致します。

  • エクセルでの計算式を教えて下さい!

    下記の表を製作しているのですが、計算式がわかりません。 教えて下さい! 宜しくお願いします。 Sheet1 B列(摘要) E列(入金) F(出金) あああ      100 いいい            200 ううう      300 Sheet2 B列(金額) D列(摘要) 100      あああ 200       いいい 300       ううう Sheet2のD摘要とSheet1のB摘要が同じであれば、Sheet1のE入金・F出金の金額がSheet2のB金額に自動リンクさせたいのです。 Sheet1のEとFに同時に数字がはいることはないです。

  • 勤務表の計算式で困っています

    勤務表で A列に日付 B列に曜日 ---------- Xさん C列 出勤は◎ 休みは空欄 D列 D1=IF(C1=0,"",COUNTIF(C1,"◎")+COUNTIF(E1,"◎")+COUNTIF(G1,"◎") ---------- Yさん E列 出勤は◎ 休みは空欄  F列 F1=IF(E1=0,"",COUNTIF(C1,"◎")+COUNTIF(E1,"◎")+COUNTIF(G1,"◎") ---------- Zさん G列 出勤は◎ 休みは空欄 H列 H1=IF(G1=0,"",COUNTIF(C1,"◎")+COUNTIF(E1,"◎")+COUNTIF(G1,"◎") ---------- といった表での計算式につきまして 日付行の例えば1日(A1行)の出勤が 3名出勤の場合 C1◎E1◎G1◎となり D1F1H1にはそれぞれ「3」と出力 2日(A2行)の出勤が Xさん1名の場合 C2◎ 、E2と G2 は空白となり D2には「1」と出力 F2H2は空白 とさせる場合 D1セルの計算式を =IF(C1=0,"",COUNTIF(C1,"◎")+COUNTIF(E1,"◎")+COUNTIF(G1,"◎") としていますが計算式エラーとなり数字だけ残って表示されてしまう場合があります その場合には下記の式に書き換えると表示が消えることもあるのですが =IF(C1="","",COUNTIF(C1,"◎")+COUNTIF(E1,"◎")+COUNTIF(G1,"◎") 毎回手作業でエラーを見つけて式を入れなおしています 計算式が違うのか根本が間違っているのか改善策をご教授ください ◎自体は別シートの方から参照コピーしております

  • エクセル・計算式のコピーについて

     A     B      C D E F G 1 3213    3213 2 4566    4566 3       4566 4       4566 5 1234   1234 上記のようにA列に数字が入っていますがところどころ空欄があります。 B列に=IF(A2="",B1,A2)という式を入れて下までコピーし 空欄を全部穴埋めしたいですが 計算式を下までコピーするとき空欄があるのでダブルクリックしても 空欄の前で計算式のコピーがとまってしまいます。 A列の一番下までポインタをもっていってコピーしてるのですが 行が多く時間がかかります。 空欄があっても、もっと手軽にコピーできる方法はないでしょうか? ご存知の方宜しくお願いします。

  • エクセルについての質問です。こんなことはできるのでしょうか?

    エクセルについての質問です。こんなことはできるのでしょうか? まず「データ」という名前のシートのA列に動詞,名詞など品詞が入っています。B列に高1,高2など学年が入っています。C列に数字(2や3など)が入っています。D列に英単語が入っています。E列に日本語訳が入っています。F列は作業列でF2のセルに=IF(AND(A2=問題作成!$A$2,B2=問題作成!$B$2,AND(C2>=問題作成!$C$2,C2<=問題作成!$D$2)),ROW(A1),"")が入っており,以下のセルに数式がコピーされています。 次に「問題作成」というシートのA5セルに=IF(COUNT(データ!$F$2:$F$2294)<ROW(A1),"",INDEX(データ!D$2:D$2294,SMALL(データ!$F$2:$F$2294,ROW(A1))))が入っており,以下のセルに数式がコピーされています。B5セルには=IF(COUNT(データ!$F$2:$F$2294)<ROW(B1),"",INDEX(データ!E$2:E$2294,SMALL(データ!$F$2:$F$2294,ROW(B1))))が入っており,以下のセルに数式がコピーされています。 「問題作成」のシートのA2セルは動詞や名詞など品詞が選択できるようになっています。B2セルは学年が選択できるようになっています。 この後,C2セルにWordでページを指定して印刷するときのように,2-3,6,8のように入力すると,「データ」のシートからそのページに該当する単語のみを「問題作成」のA5,B5以下に引っ張ってくるようなことはできますでしょうか? また,入っている数式に問題があれば,お教え願いたいのですが。 よろしくお願いいたします。

  • 【関数】エクセルでの時間の計算

    いつもお世話になっております。 エクセルでの時間の計算に関する質問です。 下記のような30行ぐらいの表があり、A,B,C,D列は手打ち、E,F,G列は関数が入力されています。 この場合D2は空白ですが、両方に15ずつ入力されている場合もあります。  A  B  C D    E     F        G 8:00 8:30 30 _ =(B2-A2)*24 =(C2+D2)/60 =IF(E2=F2,"〇","×") 結果、判定をしたいG列が〇になったり×になったりしますが、それがなぜなのか教えてください。

  • 計算式において

    お世話になります。 なかなかエクセルは難しいです。 B列に品番が50個程度あります。 C列にはその単価を入れました。 D列からM列までは週ごとの納品数を打ち込みます。 D列に個数を入れたら、C列の単価と掛け算して、D列の一番下の行に金額を表示させています。 D60=D1×C1+D2×C2+・・・ これをE列にもF列にも同じことをしています。 ものすごく計算式が長くなっています。 しかもD60の計算式をコピーしてE60に貼り付けても、掛け合わせたい単価がC列ではなくD列となってしまいます。 何かいい計算式を教えて下さい。 よろしくお願いいたします。

  • Excel計算式 条件によって計算範囲を変えたい

      A     B    C     D    E     F    G    H   ・・・  1 日    月    火    水    木    金    土    日   ・・・ 2 100              500         200         100  ・・・ 3 2000  5000   6000  7000   4000  3000   5000  3000 ・・・ 4 上記の表において、4行目に下記の計算をしたいです。 どのような計算式を組めば可能でしょうか? ・1行目が”日”または”月”→(3行目の数値)-(4列前までの2行目の合計) 例)H4=3000-(500+200+100)=2200 ・1行目が”日””月”以外→(3行目の数値)-(3列前までの2行目の合計) 例)G4=5000-(500+200)=4300 OR、IFなど組み合わせてみましたがうまくいきません。 回答よろしくお願いいたします。

  • エクセルで時間を起点として集計

    A列に開始時間、B列は~という文字 C列は終了時間、D列は種類名、E列は値(経過時間)が記載されています 1行目はタイトルで、2行目から始まっています。 A B C D E 07:00 ~ 07:12 バナナ 12 07:20 ~ 07:40 りんご 20 09:00 ~ 09:12 りんご 12 09:20 ~ 09:22 ぶどう 2 09:30 ~ 09:42 メロン 12 13:00 ~ 14:12 すいか 72 このDセルの種類名のカウントと、Dセルに対してEセル経過時間の値の合計値を計算する関数というと物を以前教えて頂きました。 下記の物を使わせて頂いております。 >Sheet1のデータをSheet2に表示するようにしてみました。 >↓の画像で左がSheet1・右側がSheet2とします。 >Sheet1に作業用の列を1列設けます(今回はF列にしています) >F2セルに >=IF(COUNTIF(D$2:D2,D2)=1,ROW(),"") >という数式を入れ、これ以上データはない!というくらいまでしっかり下へオートフィルでコピーしておきます。 >Sheet2のA2セルに >=IF(COUNT(Sheet1!F:F)<ROW(A1),"",INDEX(Sheet1!D:D,SMALL(Sheet1!F:F,ROW(A1)))) >B2セルに >=IF(A2="","",COUNTIF(Sheet1!D:D,A2)) >C2セルに >=IF(A2="","",SUMIF(Sheet1!D:D,A2,Sheet1!E:E)) >という数式を入れA2~C2セルを範囲指定 → C2セルのフィルハンドルで下へオートフィルでコピー! 回答者様のお知恵を借り、とても楽に計算する事ができ、感謝しております。 贅沢な者で、もう少し楽をしたいと欲を出してしまいまして・・・。 この集計で朝の7時~19時までと夜19時~7時までで分けて集計する事は可能でしょうか? 基本的には19時で一度〆るので、19時前と19時後を跨ぐ事はないのですが(18:50 ~ 19:10)←こんな感じには基本ならないのです。 たまに作業が停止する時は(14:00 ~ 6:59)という形で、跨いでしまう事があります。 この場合は19時を跨いだ時点で一度朝の時点での経過時間の計算をし、再度19:00~夜の経過時間を再計上という形をしたいのですが可能でしょうか? 長々となりましたが、お知恵をお貸し下さい。

専門家に質問してみよう