• ベストアンサー

エクセル 関数の質問

いうも回答して頂きありがとうございます。 入力用シートの A1セルに a又は b又は c ・・・ と入力 A2セルに a又は b又は c ・・・ と入力 A3セルに a又は b又は c ・・・ と入力 みたいな感じに入力されていたとします。 で、他の設定用シートの B1セルに a に対応した時間が入力 B2セルに b に対応した時間が入力 B3セルに c に対応した時間が入力 上記の時 入力用シートのC1にA1~A?までの時間の合計を出したいのですが どのような関数を使えばよろしいのでしょうか? 御指導の程、宜しくお願い致します。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

手抜きせずに。 設定用シートのA1に「a」と記入しておいて、その隣のB1に対応する時間数を記入します。 A2,A3にb、cとそれぞれ記入しておいて、隣のB2,B3に対応する時間数を記入します。 入力シートでは =SUMPRODUCT(SUMIF(設定!A:A,A1:A99,設定!B:B)) のように合計します。

kero1192kero
質問者

お礼

さっそく使わせてもらいました。自分が思っていた関数があったんですね。とても感謝しています。ありがとうございました。ネットでSUMPRODUCT関数も調べましたが、あまり理解できませんでした・・・。今後使えるようになれたらいいなと思っています。 追加で質問なんですが、 教えて頂いた式を加味して、入力用シートに a と入力したら、設定用シートのB列の時間を選択し、a の入力がなかったら、設定用シートのc列の時間を選択するようにしたい場合、どのようにしたらよろしいでしょうか?

その他の回答 (4)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.5

>追加で質問なんですが、 ついでに聞いちゃえと思いつきでチョコチョコっと追加するモノだから,ご質問がとってもイミフメイになってしまっています。 >入力用シートに a と入力したら、設定用シートのB列の時間を選択し、a の入力がなかったら、設定用シートのc列の時間を選択するようにしたい たとえばどういう状況でしょうか。 入力シート:   列 行 A 1 aと入力 →aの時間で計算 2 aと入力 →aの時間で計算 3 bと入力 →bの時間で計算 4 xと入力 →aじゃないのでcで計算 5 何も入力されていない →aじゃないのでcで計算 6 cと入力 →cの時間で計算 7 何も入力されていない →aじゃないのでcで計算 8 : 「aの入力じゃない」だけでは,じゃぁ「どうなってた時に」そうしたいのか,さっぱり要領を得ません。 たとえば上述のサンプルのA4セルのように,aでもbでもcでもない「何かが入力されている」のも「aは入ってない」ですし,A5やA7のように「まだ何も記入してない」のも「aは入ってません」。 このご質問は一回解決で打ち切って,新しく「こういう事が次にしたくなりました」なら新しいご相談として,キチンとヤリタイ事を添えて新たに投稿し直して下さい。

kero1192kero
質問者

お礼

続けて質問した方が分かり易いのかなと思いまして・・・。 読んでもらえばわかるとおり、自分は文才がないので、相手に分かり易く書くのがかなり苦手なんです。一から書けば更に分かり難くなるのかと思い、続けて質問した次第ですが、御指摘を受けたので一旦締め切らせて頂きます。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

作業列を作って簡単な方法で対応することができます。 シート2の設定用シートのA列にはa,b,c・・・などと下方に入力し、B列には対応する時間を入力します。 その上で入力用シートのB1セルには次の式を入力して下方にドラッグコピーします。 =IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2,FALSE),"") C1セルには =SUM(B:B) セルの表示形式はユザー定義で [h]:mm のようにします。 なおシート1のB列が目障りでしたらB列を選択して右クリックし「非表示」を選択すればよいでしょう。

kero1192kero
質問者

お礼

新たに式を作り直して頂きありがとうございました。 関数を組み合わせる事で色々出来るんですね。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

シート1に入力用シート、シート2に設定用シートが有るとして、C1セルへの入力の式は次のような簡単な式で良いでしょう。 =COUNTIF(A:A,"a")*Sheet2!B1+COUNTIF(A:A,"b")*Sheet2!B2+COUNTIF(A:A,"c")*Sheet2!B3 又は =SUM(COUNTIF(A:A,"a")*Sheet2!B1,COUNTIF(A:A,"b")*Sheet2!B2,COUNTIF(A:A,"c")*Sheet2!B3) セルの表示形式はユーザー定義で [h]:mm のようにします。

kero1192kero
質問者

お礼

回答ありがとうございます。 設定シートの項目が増えると、記述が長くなるのが気になりますが、項目毎に増やせば思い通り計算出来るので別の時に使わせてもらいます。 貴重な時間をこの質問に使って頂きありがとうございました。

  • GADNET
  • ベストアンサー率35% (7/20)
回答No.2

入力用シートをSheet1 設定用シートをSheet2 とします。 簡単な方法は、 別途時間検出用の列をB列などにつけます。 式は、 B1 =IF(A1="a",Sheet2!B1,IF(A1="b",Sheet2!B2,IF(A1="c",Sheet2!B3,"??"))) B2 =IF(A2="a",Sheet2!B1,IF(A2="b",Sheet2!B2,IF(A2="c",Sheet2!B3,"??"))) B3 =IF(A3="a",Sheet2!B1,IF(A3="b",Sheet2!B2,IF(A3="c",Sheet2!B3,"??"))) B1からB3=sum(B1:B3)で合計時間が出ます。 文章が長くなりますが、時間検出のセルをつけたくない場合は、単純に上記の式を 足し算します。 =IF(A1="a",Sheet2!B1,IF(A1="b",Sheet2!B2,IF(A3="c",Sheet2!B3,"??")))+IF(A2="a",Sheet2!B1,IF(A2="b",Sheet2!B2,IF(A3="c",Sheet2!B3,"??")))+IF(A3="a",Sheet2!B1,IF(A3="b",Sheet2!B2,IF(A3="c",Sheet2!B3,"??"))) その他シート2のA1にa A2にb A3にcと入れ =VLOOKUP(A1,Sheet2!A1:B3,2,FALSE)+VLOOKUP(A2,Sheet2!A1:B3,2,FALSE)+VLOOKUP(A3,Sheet2!A1:B3,2,FALSE) でもできます。 後MATCH関数+INDEX関数でもできるみたいです。 予断ですが、関数での複数の条件分岐は、文章が長くなりがちなので、VBAを利用したほうが 文章が短くすみ、わかりやすいと思います。

kero1192kero
質問者

お礼

回答ありがとうございます。 さっそく試させてもらいましたが、結果が思うように出なかったので修正を試みましたが、式が長すぎて挫折しちゃいました。貴重な時間を使ってもらいながら、こちらの理解不足で無駄にしてしまい申し訳ありませんでした。

関連するQ&A

  • エクセル関数の質問

    いつも回答して頂きありがとうございます。 設定用シートの A列 動作内容が入力されている 例)a b c d e... B列 A列の動作内容に対応した動作時間が入力されている 例)0:250:00 0:60:00 ... ※セルの書式設定で分で表示 C列 A列の動作内容に対応した動作時間が入力されている 例)0:250:00 0:60:00 ※セルの書式設定で分で表示 入力用シートのA列に動作内容を入力するとB6に動作内容に応じた動作時間の合計(設定用シートのB列を参照)が表示されるようにしたいと前回質問させて頂きましたが、この時、入力用シートのA列にaが含まれていた場合、設定用シートのC列を参照し合計をだす方法はあるのでしょうか?御教授お願い致します。

  • エクセル関数について

    エクセル関数について質問です。 簡単に説明すると特定のセルに特定の数値を入力するとその行の別のセルの数値を別のセルに表示させたい。 たとえば     A      B       C 1  100            2  200      1      100 3  300      1      300 4  400 5  合計            400 上記の様になっていた場合 A列は定数で固定です。B列のセルに1と入力(1でなくてもよい)した行のA列の数値を Cに表示したいのですが、 C列にどの様な関数を使ったらいいんでしょうか?宜しくお願い致します。

  • Excel 関数について

    Excelの関数で例えば、セルのC1にA1とB1の合計を表示させたければ、C1のセルに「=A1+B1」と入力すれば表示できますよね。 そこで質問なのですが、C1のセルに「=A1+B1」と入力したとして、A1とB1に数値を入力していない場合にC1には0と表示されます。その0を表示させたくない場合にはどのような作業をすればよいのでしょうか? 教えてください!(^^)!お願いします!!

  • エクセルでの関数

    質問させていただきます。 シート1のA1、B1、C1セルのどれかに文字が入った場合、シート2のA1セルに入力された文字をそのまま表示するにはどういった関数をしようすればよろしいでしょうか?お願いいたします。 (例) シート1のA1セルに○が入り、B1、C1セルには何も入らない場合、シート2のA1セルには○と表示される

  • エクセル関数の質問

    エクセル関数で教えてください。 シート2のA1セルにシート1のB1セルの内容をコピーする。 但し、シート1のB1がスペースでないときに行う。 「=シート1!B1」として入力したのですが、スペースのときに「0」が出てしまい困ってます。

  • エクセルについて質問をしたいのでよろしくおねがい

    エクセルの計算式について質問をしたのでよろしくお願します。 一日にかかったとある、時間を分で入力したいと考えております。 例えば、A1セルに50、B1セルに300、C1セルに360等と入力し、最後にD1セルにその合計の 時間を自動的に、上記でいくと、11時間50分などと自動的に入力する方法は無いでしょうか? どなた様か、ご教示の程よろしくお願いします。

  • エクセルの関数について教えて下さい。

    シート1    A    B    C 1 コード  品番  店番 2 日本   韓国  中国 シート2    A    B    C 1 品番  店番  コード 2 韓国  中国  ※1  上記の様に設定していた場合、 シート2のC2セル(※1)に日本と表示するにはどの様な 関数を設定すれば宜しいのでしょうか? vlookupでは左側の検索が出来ないので、 方法が御座いましたら、教えて下さい。

  • Excelの関数について

    Excelの関数について 今表を作っていて 1日数回データを取って それを1ヶ月ぐらい続ける予定で その結果をExcelの表に入力したいと思っています。 A列に現在値 B列に増加分 C列にA+Bの値を入れたいと思っています。 なので、C列には、C1には=SUM(A1,B1)として セルの右下にポインタを合わせて十字で下まで引っ張って関数をコピーしています。 で、そうするとC列に0が表示されてしまい それはなんとか、ツール→オプション→表示→ゼロ値のチェックを外して解決したのですが C列の合計値は次の行のAのセルに表示したくて 例えば C3の数値はそのままA4に C7の数値はそのままA8にといった感じで で、A2のセルに=C1とかA5のセルに=C4とかしたのですが いちいち関数を埋め込むのは面倒くさいので 下のほうまで関数をコピーしたところ 関数が埋め込まれているので A列とB列にしたの方まで同じ数字が表示されています。 これって消すことはできないのでしょうか? 現在は 最初のA1セルだけに数値を入れたのですが関数を埋め込んだことにより A列とB列すべてにA1セルの数値が表示されています。 まだデータを取っていないのでB列は空白です。 ただ、できれば、下の方に数値が表示されないようにしたいんです。 言葉で説明すると A列とB列に数値が入力されない限り、C列の合計値は表示されない設定にできれば 私の言っているような状況になると思うのですが、そういう事はできないのでしょうか… 教えてください。

  • エクセルでIF関数について教えていただきたいです

    よろしくお願いします。 A1セルに「5/20」と入力してあり、これは日付を意味します。 A1セルには上記の形式で日付が入力されるとして C1セルに「A1が5月だったらB1を参照」というIF関数を設定したいのですが、わかりません 教えていTだきたいです。 なんとなく =IF(A1="5#",B1,"")かな、と思ったのですが違うようでした。

  • Excelの関数について教えてください。

    Excelの関数について教えてください。 シート1に顧客表があります。 そこから検索をかけてシート2に該当する顧客を表示させたいです。 検索項目が一つならばVLOOKUPなどを使えばいいのですが、 検索に必要な項目が3つあります。 例えば   A B C D… 1 1 1 1 企業A 2 1 1 3 企業B 3 1 2 1 企業C のような感じで1000くらいのデータが並んでいます。 シート2にて   A B C D 1 1 1 1 企業A 2 それぞれのセルに1-1-1と入力するとD1に『企業A』と表示させ、 1-1-3と入力すれば『企業B』というようにA1~C3に入力する数値によりD1の表示を変えていきたいです。 そして該当がなければ『該当無し』と表示したいです。 この場合の関数は何を用いてどのような式を作ればいいのでしょうか? 関数に詳しい方、ご協力お願いいたします。

専門家に質問してみよう