重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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 列に表示したいのですが、何度やってもできません。
     良い知恵をお持ちの方、よろしくおねがいします。

A 回答 (6件)

A5セルには次の式を入力してJ5セルまで横方向にドラッグコピーします。



=IF(A3="","",IF(COUNTIF($A1:$J1,A3)=0,"",INDEX($A2:$J2,MATCH(A3,$A1:$J1,0))))
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/05/28 19:08

少し解説を


=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」ですね。


如何でしょうか?
お役に立てていたならば幸いです。
    • good
    • 0

私も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までフィル、又はコピーください。


如何でしょうか?
お役に立てていたならば幸いです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/05/29 11:00

こんにちは!


すでに回答は出ていますので、参考程度で・・・

=IF(COUNTIF($A1:$J1,A3),HLOOKUP(A3,$A1:$J2,2,0),"")
という数式を入れ列方向にオートフィルでコピーでもOKだと思います。m(_ _)m
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/05/29 06:42

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),"")

質問時は使用しているソフトのバージョン記載は必須ですので、今後は記載下さいね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/05/28 19:16

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」ってエラー表示になりますが。
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/05/29 06:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!