- ベストアンサー
ExcelのHLOOKUPに類似した関数はないですか?
現在、Excelにて、 O列からT列までのセルに、本日行った作業に○をつける表を作っています。 (○は1行に対して必ず1つです。) 例) A・・・N O P Q R S T 1 配置図 平面図 立面図 展開図 矩計図 鳥瞰図 2 8/1 ○ 3 8/1 ○ 4 8/2 ○ 5 8/2 0.3 6 8/3 0.7 7 8/6 ○ ・ ・ 101 係数 1 2 3 4 5 6 という感じなのですが、別表に A B C D E 1 8/1 8/2 8/3 ・ ・ 2 配置図 1 "0.3" "0.7" ←これがチャント表示されるようにしたい! 3 平面図 4 立面図 1 5 展開図 6 矩計図 1 7 鳥瞰図 となる表を作成し、前表の101行目の係数に対して =IF(COUNTA(O2:T2)=1,HLOOKUP("○",O2:T101,100,0),"") という式を入れ、 その係数と日付を DSUMを用いて別表のB2に1 を入れたり、B4に1を入れたり... となるように作ったのですが、 (○は1と同じ意味です。図面が1枚完成すれば○としたものです。) しかし、1日では完成しきらなかった図面は小数点で入れるということになり、 前表の5,6行目のように、 0.1~0.9の何が入るのか分からない為、○に対するHLOOKUP関数では 処理出来なくなったのです。 長々と書き分かりにくくなっちゃいましたが、 AA1=IF(COUNTA(O2:T2)=1,HLOOKUP("○",O2:T101,100,0),"") を入れたとして、 AA5の場合 AA5=IF(COUNTA(O2:T2)=1,HLOOKUP("○",O2:T101,100,0),"") ↑ここが0.3でないと係数が帰らない。 しかし、いつも0.3とは限らない為、それに変わる言葉、 もしくは、 HLOOKUPに変わる何か良い関数は無いでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
可能ですが結構面倒な式になります 別シートのB2(配置図、8/1)に以下の式を貼り付け、右方向にコピーします。 =IF(SUMPRODUCT((Sheet1!$O$1:$O$100<>"")*(Sheet1!$A$1:$A$100=B$1)*ROW(Sheet1!$A$1:$A$100))>0,INDEX(Sheet1!$O:$O,MAX(INDEX((Sheet1!$O$1:$O$100<>"")*(Sheet1!$A$1:$A$100=B$1)*ROW(Sheet1!$A$1:$A$100),))),"") B3には =IF(SUMPRODUCT((Sheet1!$P$1:$P$100<>"")*(Sheet1!$A$1:$A$100=B$1)*ROW(Sheet1!$A$1:$A$100))>0,INDEX(Sheet1!$P:$P,MAX(INDEX((Sheet1!$P$1:$P$100<>"")*(Sheet1!$A$1:$A$100=B$1)*ROW(Sheet1!$A$1:$A$100),))),"") です。 B3がB2と違うのはSHeet1のO列を参照するところをP列を参照するように変更しただけです。同じようにB4はQ列、B5はR列…を参照するように修正してください。 もう少し手を入れればB2を右方向、および下方向にコピーすればよいようにできるのですが、その分、式も複雑になるので見送りました。
その他の回答 (1)
- dokinhime
- ベストアンサー率30% (4/13)
少し質問とはずれるのですが この際 ○を1に変えてみてはいかがでしょうか? ただし、やはり完成したということが ひと目でわかるように 条件付き書式で、セルの値が1の場合は、セルに色をつけるなどして 目立たせます。 シンプルで、○よりも完成したことがよくわかると思います。 いかがでしょうか? ちょっと横道にそれたお返事でスイマセン。
お礼
そうなんですよねぇ、出来たか出来ていないかを判断するだけで、 数字を入れるつもりは無かったので、 出来上がったものには○を!っていう感覚だったんです。 もともと1にしておけば良かったんですよねぇ。 今後の参考に致します。 また何かありましたら、ご助言下さいませ。^^ ありがとうございました。
お礼
なるほどです。参照せずにそのまま別表に反映できました。 しかし、上記表を入れると前表データが入るので、 1 ではなくて ○ が入るのですね。 でも上記の式を利用して、無事作り変えることが出来ました。 ありがとうございました。 また何かありましたら、宜しくお願い致します。