• ベストアンサー

関数で2枚のシートを使ってscoreを出してますが…

2枚のシートを使って、1枚(DATA)にはパンチでデータが入力済みです。 もう一枚のシート(SCORE)にIF(DATA!A1=SCORE$A,1,0)と言う式を入れてDATAのA1セルにdと入っていたらSCOREのA1セルに1と返してそれ以外は0と返しなさい。となっています。 ところが、DATAのA1がCまたはDのときにSCOREのA1に1と返してそれ以外は0と返しなさい。と言うのがあり、色々やってみましたができません。どうしたらよいでしょうか。(この説明ではわかりづらいでしょうか) また、もっと簡単な方法があれば教えていただきたいです。 宜しくお願いします。

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

  • ベストアンサー
  • jindon
  • ベストアンサー率43% (50/116)
回答No.1

もう一枚のシート(SCORE)にIF(DATA!A1=SCORE$A,1,0)と言う式を入れてDATAのA1セルにdと入っていたらSCOREのA1セルに1と返してそれ以外は0と返しなさい。 ↑のIF(DATA!A1=SCORE$A,1,0)は IF(DATA!A1="d",1,0)では無いですか? DATAのA1がCまたはDのときにSCOREのA1に1と返してそれ以外は0と返しなさい =IF(OR(DATA!A1="d",DATA!A1="c"),1,0) で良いと思いますが。

tasuketegoo
質問者

お礼

ありがとうございました。うまくできました。 また、よろしくお願いします。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

別解を1つ。 普通はOR関数をつかって =IF(OR(DATA!A1="C",DATA!A1="D"),1,0) です。 別解は =IF((DATA!A1="C")+(DATA!A1="D"),1,0) でも良いと思います。 DATA!A1="C"とDATA!A1="D"はIF関数の中(注)ではTRUE(1)かFALSE(0)のどちらかを返すので 1+1=2 1+0=1 0+1=1 0+0=0 の最後のケース以外は1を返すで出来そうに思いやってみたら予想通りのようです。 (注)IF関数の中でなくても、=DATA!A1="C"だけでも TRUEかFALSEを返す。

tasuketegoo
質問者

お礼

ありがとうございました。わざわざ確認までしていただいて。参考になります。また、細かく説明していただき考えかたも少し理解できました。また、宜しくお願いします。

関連するQ&A

  • シートの非表示について

    マクロを始めたばかりで解読はできるのですが、まだまだ自分で文書を作ることが出来ません。どなたか教えて下さい。 (1)まず、A,B,C,Dのシートを作ります Aシート = 入力シート Bシート = 入力シートで入力したデーターを表にして表示されるシート Cシート = 入力シートのセルA1~A15までのデーターがCシートのA1~A15に表示されるシート Dシート = 入力シートのセA16~A30までのデーターがDシートのA1~A15に表示されるシート (2)マクロボタン『非表示』を押す (3)シートが下記のように非表示される Aシート = 表示 Bシート = 表示 Cシート = シートのセルA1に入力があれば表示、無ければ非表示 Dシート = シートのセルA1に入力があれば表示、無ければ非表示 (If Sheets("Cシート").Range("A1").Value <> "" Then)みたいな というマクロを作りたいのですが。

  • エクセル 関数の参照セルの変更

    ご教示お願いします。 =IF(C5=1,A5/B5,0)という式のC5の部分をD5,E5,F5・・・と変更したいのですが、式の中を手入力で変更するのではなく、他のセル(例えばセルA1)にD5,E5,F5・・・入力すると式C5の部分が変更されるようにしたいです。 例)セルA1にD5と入力すると関数=IF(C5=1,A5/B5,0)が=IF(D5=1,A5/B5,0)に変わるみたいにしたいです。セルA1にD5と入力するのが正しいやり方なのかはわかりませんが。

  • エクセル関数について(IF関数)

    エクセルの関数について教えて下さい。 セルに1と入力した場合Aと出てきて、2と入力した場合B、3と入力した場合Cとなるような計算式を入れたいのですが、どのような式を入れればよろしいのでしょうか? 別のシートから呼び出す(?)というような方法でもいいのですが、どんな式を入れればよいのか、全く分かりません。 自分で調べてみた結果、IF関数を用いるということは解りました。 『IF(A1="1","A",IF(A1="2","B",IF(A1="3","C")))』 上記のような式を入れてみて、実際に実践してみたところ、結果としては入力した数字が表示されるだけで、計算式は消えてしまいました。 どうしたらいいのか解りません。 素人故に恥ずかしい質問ですが、お知恵を貸して下さい。 よろしくお願いします。

  • 別シートで利用している関数を使って、関数の一部分だけを変更したいのです

    別シートで利用している関数を使って、関数の一部分だけを変更したいのですが、 どのようにすればできるのかわかりません。教えてください。 (イメージ) Sheet1 A1セル: 1 ←Aとする A2セル: 2 ←Bとする A3セル: 3 ←Cとする B1セル: =SUM(A1:A3) Sheet2 A1セル: 4 ←Dとする A2セル: 5 ←Eとする A3セル: 8 ←Fとする。 やりたいこと Sheet2_C1セルに、Sheet1_B1セル「 =SUM(A1:A3) 」 (意味:A+B+C)の関数をコピーして、その関数のA1(意味:A) 部分をSheet2_A1のDに変更したい。 ∴Sheet2_C1セルには、( =(D+B+C) )という計算式になり、結果である数値(9)を表示させたい。 (実際には、IF文でちょっとややこしいのですが、イメージはこんな感じです) 現象 (1)Sheet2_C1で「 =SUM( 」としてSheet1_B1をダブルクリック。 Sheet2_C1に、 「 =SUM(Sheet1!B1) 」と表示される。 こうなると、どうやって関数を変更することができるのでしょうか? 関数については、ほとんど皆無に等しい知識しかなく、やればやるほど混乱しています。 質問の説明が悪くて理解しづらいかもしれませんが、ご教示いただけると助かります。 よろしくお願いします。

  • 2つの条件からシート2に抽出

    シート1 A1は手入力D4手入力、H2は=D2&C2 担当者と週で検索して抽出する式を教えて下さい。何度もすみません。 上手く出来なくて1行しか抽出しないんです。 上記の表から1週目だったら、1週目の担当者のデータをシート2の表に抽出 週2だったら2週目の担当者データを抽出 A1・D1は手入力 A3は=IF(COUNTIF(Sheet1!D$2:D$1000,B$1)=0,"",MATCH($B$1&$D$1,Sheet1!$H$2:$H$1000,0)) 上記の様にシート2に表示したいんです。 細かく教えて下さい。何度やっても1行目のデータしか抽出しないんです。 A3=IF(COUNTIF(Sheet1!D$2:D$1000,B$1)=0,"",MATCH($B$1&$D$1,Sheet1!$H$2:$H$1000,0)) B3=IF($A3="","",IF(VLOOKUP($A3,Sheet1!$A$2:$H$1000,COLUMN(B1),0)="","",VLOOKUP($A3,Sheet1!$A$2:$H$1000,COLUMN(B1),0))) A4の2行目以降1になってしまって同じ物しか出ないんです。 Aの番号の抽出方法の式を教えて下さい。

  • エクセルのシート1のある行をシート2に入力

    お世話になります。 エクセル2010を使っています。 たとえばシート1に、以下のような行があったとしましょう。     A       B       C    D 1(  1  )(2011/11/11)(にんじん)(100) ()はセルを表し、()内がセル内のデータです。 この行を、シート2に自動入力する方法を教えてください。 よろしくお願いします。

  • Excel INDIRECT関数の使い方が分からない

    表という名前のSheetがあります。  A 4 1 5 2  : のように、表SheetのA4から下に連番で、    1~400まで数字がふってあります。 式という名前のSheetが式~式(399)まで、400Sheetあります。 400Sheetある式というSheetには表があり、入力されて文字は違いますが、表の配置は全く同じです。 式  のD6セルには 1。Q9セルには「あいうえお」と入力、 式(1)のD6セルには 2 Q9セルには「かきくけこ」と入力されています。 式Sheetが400枚あるので、D6セルには、400まで数字が連番で入力されています。 表SheetのA4セルが、もし空という前提で、1と入力した場合、式~式(399)までのSheetの中から一致した数字が合った場合、そのSheetのQ9のセルの値を返しなさい‥と関数を入れたいと思い、 「INDIRECT」関数を使用しました。 =INDIRECT("式(" & A4 & ")'!D6"  しかし、何度入力しても、REFと出てしまいます。 この関数を使用するのは初めてで、戸惑っています。 どうかご教授ください。

  • セルの内容を別のシートのセルに呼び出す。

    Sheet1のあるセルを「セルの書式設定」の表示形式の「ユーザー定義」で [=1]"○";[=2]"◎";"有"  と設定し、  1や2や3で「○」 「◎」 「有」 を呼び出すように定義し、 1を入力すると○、2を入力すると◎・・・ が問題なく返って来ているのを確認した上で、 =IF(ISERROR(VLOOKUP(A2,Sheet1!$A$4:$C$33,3,FALSE)),"",IF(VLOOKUP(A2,Sheet1!$A$4:$C$33,3,FALSE)=0,"",VLOOKUP(A2,Sheet1!$A$4:$C$33,3,FALSE))) 以上のような式を入れて、そのセルの内容をSheet2のセルに呼び出したところ、 帰って来た値が「○」 「◎」 「有」ではなく、入力した1,2、3しか返って来ません。 解決方法があれば、どなたかご教授願えないでしょうか。 よろしく、お願い致します。

  • Excel2003で最初のシートからいくつかのシートへ順番で反映させるには?

    Excel初心者なのですが、どなたか分かりやすく説明をお願い致します。 シート1のA1セルに名前、B1セルに生年月日、C1セルに性別、D1セルに身長、E1セルに体重などと横に個人データを入力していき、A2、A3と名前の順で100名分のデータを主で管理するとして、シート2にはその個人表として違う書式のものにA1からE1までのデータが反映するものを作り、シート3にはA2からE2、シート4にはA3からE3と同じ名前の順で100名分反映させたいのですがどなたか良い方法を教えて下さい。m(_ _)m

  • エクセルのシート別のリンク

    拙い説明になりますが宜しくお願いします。 同じファイル内の別のシート(1~31まであります)から数値を引っ張ってきたいと思っています。 1~31の数値を集計というシートにまとめたいと思っています。 集計のシートセルに 「='1'!C$10:D$10」 という数式を入れました。 下のセルに 「='2'!C$10:D$10」 「='3'!C$10:D$10」 と続けていきたいのですが、セルの右下にあわせて黒十時にして下にコピーでは1、2、3のところの数字がプラスになっていきません。 今のところ地道に手入力しているのですが、簡単に式を入力する方法はありませんか? 分かりにくい説明ですが宜しくお願い致します。

専門家に質問してみよう