• ベストアンサー

リストに一致した列に同じ値か1を返す方法

散々調べましたが、一向に解決しないため教えて下さい。 セルAA1~AZ1に『あ』から順に『は』まで入っているとします。 たとえば、   A  B  C  D  E  F  G・・・ 1 2 い  さ  た 3 く  す  て  に  は 4 た  ぬ 5 あ  え  か  け  さ  せ  と 6 こ このような状態になっているとき、 2行目の『い、さ、た』を、リストAA1~AZ1と一致する同じ行内(この場合、AB2、AK2、AP2)に それぞれ『い』『さ』『た』か、若しくは1を返したいと思っています。 量が少ないのなら手作業でやってもいいかな・・・と考えたのですが、 1000件ぐらいあるため、何かいい方法はないものかと思っています。 関数で『=if(A2="あ",1,if(B2="あ",1,if(C2="あ",1,if(D2="あ",1,if(…省略…)』 というのをAA2に入れるというのを作ったのですが、 例のように数多くあると式が長くなりすぎるのかエラーになってしまいます。 マクロか関数などで何とか処理できないものでしょうか。 すみませんが、よろしくお願いします。

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

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

AA2は、「A2からZ2の中にAA1と同じものがあったら1」です。とい うことは、countif関数で =if(countif($A2:$Z2,AA$1),1,"") でいいんですよ。countif関数はcountif(範囲,条件)で範囲内の条 件に一致するものの数を数えます。これをif関数の条件のところに 書くと、0が偽で0以外が真という扱いなので、一致するものがあっ た場合は真になり、1を返します。

JFBJ
質問者

お礼

なるほど!! countifを使うとは、盲点でした。 この数式なら簡単で済みますね。ありがとうございます!!

その他の回答 (1)

回答No.2

もう一案 =ISNUMBER(MATCH(AA$1,$A2:$Z2,0))*1 解説するなら A列からZ列までを左から検索して見つかった番号(数値)を返す 数値なら True *1で数値化

JFBJ
質問者

お礼

isnumberは、調べたもののピンとこなかったのですが、 こういった使い方ができるんですね! ありがとうございました!

関連するQ&A

専門家に質問してみよう