- ベストアンサー
リストに一致した列に同じ値か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に入れるというのを作ったのですが、 例のように数多くあると式が長くなりすぎるのかエラーになってしまいます。 マクロか関数などで何とか処理できないものでしょうか。 すみませんが、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
AA2は、「A2からZ2の中にAA1と同じものがあったら1」です。とい うことは、countif関数で =if(countif($A2:$Z2,AA$1),1,"") でいいんですよ。countif関数はcountif(範囲,条件)で範囲内の条 件に一致するものの数を数えます。これをif関数の条件のところに 書くと、0が偽で0以外が真という扱いなので、一致するものがあっ た場合は真になり、1を返します。
その他の回答 (1)
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
もう一案 =ISNUMBER(MATCH(AA$1,$A2:$Z2,0))*1 解説するなら A列からZ列までを左から検索して見つかった番号(数値)を返す 数値なら True *1で数値化
お礼
isnumberは、調べたもののピンとこなかったのですが、 こういった使い方ができるんですね! ありがとうございました!
お礼
なるほど!! countifを使うとは、盲点でした。 この数式なら簡単で済みますね。ありがとうございます!!