- ベストアンサー
エクセルで表の検索方法を教えてください。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
=MATCH(A18&B18&C18&D18,A1:A16&B1:B16&C1:C16&D1:D16,0) 【お断り】上式は必ず配列数式として入力のこと
その他の回答 (6)
- imogasi
- ベストアンサー率27% (4737/17069)
すでに、もっと進歩した方法の解法が出ていますから、今更ですが理解がむつかしい。 下記は配列数式を素直に適応した方法です。 こういうのはVBAで考えれば、無理なく、また複数該当でも拾える。 質問者に多いが、関数へなぜそんなにこだわるのか。 ーー 空いているセル範囲の16行を範囲指定し 数式バーへ=IF((A1:A16=$A$18)*(B1:B16=$B$18)*(C1:C16=$C$18)*(D1:D16=$D$18)=1,ROW(A1:A16),"") と入れて、SHIFT+CTRL+ENTERを同時押しする。 本件の場合は、3(番目の)行目に 3と出ます。 A3にあることを示しています。
お礼
ありがとうございます。 残念ながら正しい答えは返りませんでした。
- chayamati
- ベストアンサー率41% (260/624)
添付は4ビットのコード表ですね この表は必要りません ですので0~15 「=A18*8+B18*4+C18*2+D18+1」
お礼
ありがとうございます。 残念ながら正しい答えは返りませんでした。
- imogasi
- ベストアンサー率27% (4737/17069)
回答ではないのですが、添付画像のセルに見えて居る「TRUE、FALSE」は真理値なのか、2種類の文字列「A,B」の代わりと言えるものなのか、はっきりさせるべきです。あるいは例としてはTRUE等は適当では無い(大げさ)のかも。 普通にTRUEを入れると下記実行では-1が返る。 ’trueなら方が一致しませんと返る。 Sub test01() MsgBox Range("A1") * 1 End Sub Sub test02() MsgBox VarType(Range("A1")) End Sub test02()では、A1セルにTrueと入れると、11=ブール型と返る。 ーー ブール型ならそれ相応な回答もありそうなので、注意してほしい。
お礼
ありがとうございます。
- masnoske
- ベストアンサー率35% (67/190)
E1に以下の数式を入力し,E16までコピー =AND(A1=$A$18,B1=$B$18,C1=$C$18,D1=$D$18) TRUE が一致した行です. 一致する行が複数あっても対応可能です.
お礼
ありがとうございます。
- msMike
- ベストアンサー率20% (364/1804)
- bunjii
- ベストアンサー率43% (3589/8249)
18行目の組み合わせが1行目から16行目の組み合わせで複数見つかることはありませんか? また、18行目の組み合わせが見付からないときの処理をどうしますか? 複数の組み込み関数を併用すれば作業列を使わなくても検出可能です。 MAX関数、INDEX関数、MMULT関数、ROW関数を組み合わせる方法で良いと思います。 =MAX(INDEX((MMULT((A1:D16=A18:D18)*1,{1;1;1;1})=4)*ROW(A1:A16),0)) 一致する組み合わせが複数のときは最下行の値になります。 見付からないときは0が戻ります。
お礼
体調がわるく、お礼が遅くなりました。申し訳ありませんでした。 MMULTは初めて見る関数です。 求めていた結果が出ました。 ありがとうございます。
お礼
体調がわるく、お礼が遅くなりました。申し訳ありませんでした。 求めていた結果が出ました。 ありがとうございます。