Excelが大好きだ!スマートフォン用の表示で見るExcelが大好きだ!Excel大好き経理マンがExcelの事を書き綴っていきます。スポンサードリンク2019-02-03ビット演算を数式の条件判定に使えないか検証してみたVBA前回2進数とビット演算について検証をしてみた。www.excellovers.com今回はビット演算の考え方をExcel関数の条件判定に使えないかと検証してみた。sumproductの代替パッと思いついたのがこれだ。A列からC列はテーブルに変換している。J列K列で名前定義をしている。この名前定義で2進数の各ビットを表現している。数式は以下のようになっています。順に数式を追ってみます。E列はBITAND関数。BITAND関数の第一引数部分。INDIRECT(出身地[@性別])+INDIRECT(出身地[@出身])これはこの数式を入力しているセルと同じ行にある、性別と出身を参照している。データの一行目であれば「男性」と「大阪」です。今回、「男性」と「大阪」は名前定義を行っているので男性⇛1大阪⇛4と読み替えることができる。男性⇛1兵庫⇛8と読み替えることができる。12進数の1が導き出され、最終的に10進数の1が返り値として表示されます。同様の計算を各行に行ったものがE列に表示されている。この中で言えば9と表示されている3行目が条件に完全に一致している。sumproductの方がわかりやすいどうにかビット演算を関数の条件判定に使えないかと試してみたが、出来上がった関数がわかりにくい。同じ条件判定をsumproduct関数で表現してみると下記のようになる。・sumproduct関数のほうがどのような判定を行っているかわかりやすい。・sumproduct関数のほうが式が短い。・BITAND関数は名前定義を行う前準備が手間。・BITAND関数は条件との完全一致以外にも、部分一致も判定することができる。ちなみにIF文だと下記のようになるBITAND関数を条件判定に使用するなら、最後の部分一致ができる利点を活かすことになるのだろうか。まとめそもそもビット演算のことがよくわかっていないとご指摘が飛んできそうな内容だが、気になったので自分なりに調べてみた。何かのご参考になれば。Tumblr関連記事2019-01-27ファイル属性の判定方法(2.ビット演算でファイル属性判定)前回はGetAttr関数を使ってファイル・フォルダの属性値をVBFile...2018-11-29CDと本の管理システムをExcelで作成する(5.SQLite3データベースへのデータ入力フォーム2...前回は入力フォームに設置しているテキストボックス等の設定を...2018-11-24CDと本の管理システムをExcelで作成する(3.SQLite3データベースへのデータ挿入)前回はCD・本データを格納しておく、SQLite3データベースを作...2018-11-04配列のセルへの一括転記(3.転記の方法と大量データの並び替え)前々回で配列の並び方、前回で行列の並び替えについて調べてみ...2018-09-29Text関数の「0埋め」についてふと思ったことTEXT関数、ちょいちょい使います。(1)月別アーカイブはてなブログをはじめよう!ExcelLoverさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。