• ベストアンサー
  • 困ってます

EXCELのIF関数について

9セルA1~J1に1~15の数のうちの10個が一つずつ入っており、セルA3~J3にも1~15の数が入っています。またA2~J2には、A~Jまでの英字が入っています      1 2 15 9 7 6 5 4 11 3        A B C D E F G  H  I  J       2 3 5 7 9 10 11 12  13 15   のとき                                          B J G E D    I        C   のようにA3列の値と同じ1列の数字の下の値を            A5 列に表示したいのですが、何度やってもできません。      良い知恵をお持ちの方、よろしくおねがいします。

共感・応援の気持ちを伝えよう!

  • 回答数6
  • 閲覧数169
  • ありがとう数5

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

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

A5セルには次の式を入力してJ5セルまで横方向にドラッグコピーします。 =IF(A3="","",IF(COUNTIF($A1:$J1,A3)=0,"",INDEX($A2:$J2,MATCH(A3,$A1:$J1,0))))

共感・感謝の気持ちを伝えよう!

質問者からのお礼

申しわけありません。64歳EXCEL勉強中のものにつき理解できないことが・・・ 勉強します。

関連するQ&A

  • Excel:IF関数について

    以下のような条件付けのものを、Excelで関数にしたいと思います。どなたかお知恵を拝借できないでしょうか? 1)内容 「A1セル、A2セル、A3セルにランダムの数字が入ります。もしA3セルの数字がA1セルとA2セルとの数字の間にある時は、A4セルにA3セルの数字を表示させ、もしA3セルの数字がA1とA2セルの数字の間に入っていない場合は、A1・A2・A3セルの数字の中央値をA4セルに表示させる。」 2)自分なりに考えたが、分からない点 IF関数を使い、「=IF(AND(A3>A1,A3>A2)またはAND(A3<A2,A3<A1),median(A1:A3),A3)」で表現できるかと思いました。ただ、この中で「または」と書いたところのexcelでの関数の作り方がわかりません。

  • エクセルの関数(最後の値を返す)

    A1からJ65までの範囲のなかで (計算式などが入ってるセルも含まれてます) J列の最後に表示されている値を返したいのですが どんな計算式をしていいか 調べてもわからず困っています。 J35のときもあればj40のときもあります。 ちなみにJ列にはすべて 計算式がはいってます。 その計算結果が表示されているセルと空白のセルがあります。 (J1からJ40まで値表示J41からしたは空白表示のときJ40を返したい このときA列はA1からA40までは値が入力されてますがA41からしたはまったくの空白です)

  • EXCELのIF関数の入れ子について

    すみませんよろしくお願いします。 EXCELでセル(A1)~(L1)までに不特定の文字列が入力されており、(M1)に「もし(L1)が入力されていたら(L1)の値を表示、もし(L1)がブランクなら(K1)の値を表示、もし(K1)がブランクなら(J1)の値を表示、もし(J1)がブランクなら(I1)の値を表示・・・・」といった具合で関数を作成したいのです。また、(A1)~(L1)のセルで穴あき状態で入力されていた場合は最も(L1)寄りのセルを表示させたいです。 EXCEL2003のIF関数だと、 =IF(L2="",IF(K2="",IF(J2="",IF(I2="",IF(H2="",IF(G2="",IF(F2="",IF(E2="","",E2),F2),G2),H2),I2),J2),K2),L2) で最後の(A1)までの入れ子を作ることができせん。 EXCEL2007を使用すると、 =IF(L2="",IF(K2="",IF(J2="",IF(I2="",IF(H2="",IF(G2="",IF(F2="",IF(E2="",IF(D2="",IF(C2="",IF(B2="",IF(A2="","",A2),B2),C2),D2),E2),F2),G2),H2),I2),J2),K2),L2) と作成できます。 EXCEL2003で作成するいい方法はありますでしょうか? ご指南の程よろしくお願いします。

その他の回答 (5)

  • 回答No.6
  • Nouble
  • ベストアンサー率18% (330/1780)

少し解説を =IF(SUMPRODUCT(($A$1:$J$1=A$3)+0)<1,"",OFFSET($A$2,0,MATCH(TRUE(),INDEX($A$1:$J$1=A$3,,),0)-1,1,1)) ですが、 まずは SUMPRODUCT(($A$1:$J$1=A$3)+0)<1 からいきます。 ($A$1:$J$1=A$3) は A1:J1の範囲にA3と同じ物があるか1つ1つ確認させています 回答は同じな場合TRUE、違う場合FALSEです お示し頂いた例になぞらえると A1はA3と同じではないのでFALSE B1はA3と同じなのでTRUE C1はA3と同じではないのでFALSE D1はA3と同じではないのでFALSE ……… …… … … … J1はA3と同じではないのでFALSE となります。 実際の値としては {FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FLSE,FALSE,FALSE} です。 ところで、 Excelでは FALSEは0に、TRUEは1に置換される作用があります。 また 0+0は0,1+0は1,0*1は0,1*1は1ですから 従って {false,true,false}+0 は、 {0,1,0} に、置換されます。 ($A$1:$J$1=A$3)+0 は、 {0,1,0,0,0,0,0,0,0,0} と、成るわけです。 本来の使い方ではないですが、 =SUMPRODUCT({0,1,0,0,0,0,0,0,0,0}) と、した場合 SUMPRODUCTは此等の総和を計算してくれます。 回答はこの場合「1」ですね。 総じていえば 「TRUE」が1つ以上あれば SUMPRODUCTは1以上を返します。 SUMPRODUCT(($A$1:$J$1=A$3)+0)<1 とすれば、一致しているものが無いか調べられるわけです。 さて、後半部分の OFFSET($A$2,0,MATCH(TRUE(),INDEX($A$1:$J$1=A$3,,),0)-1,1,1) ですが、 OFFSETについてはヘルプやネットをご参照ください 単純な物です。 MATCH(TRUE(),INDEX($A$1:$J$1=A$3,,),0) ですが、 キモは $A$1:$J$1=A$3 です。 先程の説明通り、 {FALSE,TRUE,FASE,…} Excelがよこす答えはこうですね。 所で Excelでは「FALSE」より「TRUE」の方が大きい と、いうことになっています。 「TRUE」をMATCHに探させているとき MATCHはTRUEが出た時点でそれ以降の検索を止めます。 従って MATCHにとって =MATCH(TRUE,{FALSE,TRUE,False,False,False,False},0) =MATCH(TRUE,{FALSE,TRUE},0) この双方は 「TRUE」の時点以降を見ないので 同じ扱いとなります。 つまり どちらも昇順に並んでいることになるわけです。 因みにExcelのよこす回答は「2」ですね。 如何でしょうか? お役に立てていたならば幸いです。

共感・感謝の気持ちを伝えよう!

  • 回答No.5
  • Nouble
  • ベストアンサー率18% (330/1780)

私もHLOOKUPと思ったのですが先行回答があるようで、… 滝汗 しかも、よく見ると昇順とも限らないようで… ならば… と、OFFSETを使ってみます。 =IF(SUMPRODUCT(($A$1:$J$1=A$3)+0)<1,"",OFFSET($A$2,0,MATCH(TRUE(),INDEX($A$1:$J$1=A$3,,),0)-1,1,1)) これだと順不同でも、いやいやそもそも値そのものが無くても平気ですね。 A5に入力後 J5までフィル、又はコピーください。 如何でしょうか? お役に立てていたならば幸いです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

本当に、本当に申し訳ありません。頭がチンプンカンになってしまいました。頭を冷やしてから再度挑戦してみます。皆さん、ありがとうございました

  • 回答No.4
  • tom04
  • ベストアンサー率49% (2537/5117)

こんにちは! すでに回答は出ていますので、参考程度で・・・ =IF(COUNTIF($A1:$J1,A3),HLOOKUP(A3,$A1:$J2,2,0),"") という数式を入れ列方向にオートフィルでコピーでもOKだと思います。m(_ _)m

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。みなさんは、どんな勉強をしているのですかね? これからは、勉強の仕方を勉強します。

  • 回答No.3
noname#203218

ISERROR 又はIFEROOR使用出来ますが、バージョンにより利用制限があります。IEERRRORは2007以降でも利用可 2003以下のバージョン A5=IF(ISERROR(HLOOKUP(A3,$A$1:$J$2,2,0)),"",HLOOKUP(A3,$A$1:$J$2,2,0)) 2007以降のバージョン A5=IFERROR(HLOOKUP(A3,$A$1:$J$2,2,0),"") 質問時は使用しているソフトのバージョン記載は必須ですので、今後は記載下さいね。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

申しわけありませんでした。 やはり、これも難しそうです。 勉強します。

  • 回答No.2

IF関数だと面倒すぎますね。HLOOKUP関数を使うべきです。 A5=HLOOKUP(A3,A1:J2,2,FALSE) B5=HLOOKUP(B3,A1:J2,2,FALSE) C5=HLOOKUP(C3,A1:J2,2,FALSE) : : J5=HLOOKUP(J3,A1:J2,2,FALSE) のように入力すればOKです。ただし該当する値が無いセルは「#N/A」ってエラー表示になりますが。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。私なりになんとか出来た?? ように思うのですが でも、少し違うような感じです。 関数の初歩の勉強が足りないようです。急ぎすぎですね!

関連するQ&A

  • IF 関数についてです。

    IF 関数についてです。 教えてください、お願いします。 例えば A1でエラーメッセージでたらA1セルは1と認識、 A2でもエラーメッセージがでたらA2セルを1と認識し、 A1とA2のどちらかで正常な数字がでたなら、その数字を使用する。 A3にA1とA2の両方を足した数字を答えでだしたい場合には どのような関数をつくればいいのでしょうか? みなさま、お知恵をお貸しくださいませ。

  • MATCH関数について

    A1  B1 C1 1 ○   3 2 × 13 3 × 44 4 ○   4 5 ○ 5 A列に色んな数字が入っています。A1セルの数がC列の数字の中にあれば、B1に○、なければ×を表示させるにはどうすればいいのでしょうか。MATCH関数を使うのだと思っているのですが・・・。 順番にA1の数がC列にあれば○、A2の数がC列にあれば○A3の数がC列にあれば○とA列にもC列セルに大量の数字があります。一気に処理できないでしょうか。

  • VBAを用いた数値の並び替え

    VBAで入力されたデータを大きい順に並び替えるのですがやり方がわかりません。 1、A1からJ1のセルに任意の数を入力 2、A3からJ3のセルに並び替えた数字を出力(A3が最も大きい、J3が最も小さい) プログラミング初心者で初歩的な質問ではありますが困っております。 どうぞよろしくお願いしますm(__)m

  • EXCELで、別のセル位置が文字列として入っているセルを、関数の引数として使用したい

    ややこしいのですが、よろしくお願いします。 例えば、以下のように a1の値:1(数字) a2の値:2(数字) a3の値:3(数字) c1の値:a1(文字列) d1の値:a3(文字列) が各セルに入っている場合、a1からa3までの和(=6)を求めるのに、 c1とd1を引数に使わないといけないのですが、この場合どのようにしたら良いのでしょうか? お詳しい方どうぞよろしくお願いいたします。

  • エクセルの関数を教えてください

    A1からAE1に日付としまして数字の1から31を入れます A2からAE2の任意のセルに○がいくつか入ります このとき例えばE2、J2、O2のセルに○があったときのA1からAE1の値(日付)を A3に最初の日付(5)と、A4に最後の日付(15)を表示させたいのですが どの関数で求められるか分かりませんのでどなたかご教授ください。

  • Excelの関数『IF』にて・・・

    EXCELにて、関数IFを使って一覧表から 自動入力をしたいと考えています。 例えば、以下のようにしてセル『C1』の数字に 応じて、自動を試みたい時 =IF($C$1>80,"=A1",IF($C$1>70,"=B1","=C1")) =A1,=B1,=C1 の場所を文字列としてしか読み取ってくれません =A1,=B1,=C1では無く=A1,=B1,=C1のセルに入力されてる 数式(他のセルの値)を、表示したいんですが どのようにすれば可能でしょうか? 何度やっても「=A1」と、そのまま文字列として出て来ちゃいます。

  • IF関数について

    いつもご親切にお教えいただき、ありがとうございます。 初心者にわかりやすくお教え下さり、とても助かっています。 今回も関数について、お尋ねしたいことがございます。    A   B  C 1  100 400 2  200 3  300 4  =" "&A1&"千円-("&A2&"千円+"&A3&"千円+"&B1&"千円)" 上記の通り、セルA4にA1・A2・A3・B1の数字を表示させています。 このB1に限っては入力する時としない時があり、B1に数字がある時は 数字を表示させ、数字がない時(もしくは0の時)は表示させない 方法はどのように入力したらよいのでしょうか。 既にこのようなご質問が出ておりましたら、本当に申し訳ありません。 お教え下さいますと助かります。 どうぞよろしくお願いします。

  • IF関数で・・ただし・・・

    教えてください。 表があります。セルA1に数値があります。セルA2に他の場所での合計が入ります。A3にA1とA2の小さい方の値が入ります。A3の関数は、MIN(A1,A2)。隣のB3に別の合計数があり、C3にA3+B3の値がきます。 B4に関数で、IF(A3<A1,B3,IF(A3>A1,0))と入れてます。そこで少し問題の場合が出てきたんです。B4に「但しC3がA1より大きくなる場合はA1-A3の値にするという条件」を付け加えたいのです。どうすればいいのでしょうか? 説明もややこしくてすみませんが、よろしくお願いします。

  • エクセルのIF関数とVLOOKUP関数について教えてください。

      A B C 1 A1 B1 C1 2 A2 B2 C2 ・ ・ ・ 上記のような表があり、セルX、Yに入力した値が2つの条件に合致した場合、セルZにC列の値を返すような数式を作っています。 たとえば、セルXの値がA1より小さく、かつ、セルYの値がB1より小さい場合にはセルZにC1の値を表示する、という数式を作りたいのです。 (ちなみにAn、Bn、Cnにはそれぞれ数字が入ります) =IF(AND(X<=A1,Y<=B1),C1,IF(AND(X<=A2,Y<=B2),C2,・・・ AND関数を利用してこのように数式を入れると、途中まではうまくいくのですが、引数が多いため途中からエラーが出てしまいます。 (引数の数は10個以上あります) IF関数とVLOOKUPを組み合わせればいいというところまではわかるのですが、どのように条件設定をすればいいのかがわかりません。 エクセル初心者で恐縮ですが、どなたか詳しい方いらっしゃいましたらご回答よろしくお願いいたします。

  • エクセルの関数を教えて下さい

    エクセルの関数が思いつかないのでどなたか教えて頂けませんでしょうか 書きたい関数は一つなんですけど、いくつかの条件があるんです。 1つめの条件 指示数がα セルA1からセルA5までの中に数字があればその合計数からαを引く 但し、表示させたい数字はα 数字を入れるとこんな感じになります 【指示数は20 セルA1からセルA5までの合計数は30 その場合表示させたいのは20】 2つめの条件 指示数は20 セルA1からセルA5までに数字がなければA6の数字からαを引く ただし表示させるのはα 【指示数は20 セルA1からセルA5までの合計数は0 セル6には30ある その場合表示させたいのは20】 3つめの条件 指示数はα セルA1からセルA5までの合計数がαより小さい場合にはセルA6の数字から残りの数を引く その場合表示させたいのは セル1からセル5の合計数からαを引いた数とその残りの数 【指示数は20 セルA1からセルA5の合計数は12 セルA6は20 その場合表示させたいのは 12と8】 4つめの条件 指示数はα セルA1からセルA5の合計数を足した数よりも、A6の数字よりもαが大きい その場合表示させたいのは セルA1からセルA5の合計数とA6の数からαを引いた数 【指示数は20 セルA1からセルA5までの合計が3 A6の数は6 その場合表示させたいのは11】 こんな4つの条件を兼ね揃えた関数なんてありますでしょうか? 1つの関数ではなく 条件1がダメなら条件2 条件2がダメなら条件3 という様に次々と計算していく様な連続した関数でも構いません。 分かりにくい表現だとは思いますが どなたか知恵を貸して頂けませんでしょうか 宜しくお願い致します。