excel subproduct 関数での不具合
生物実験で、シグナルをカウントし、その個数をDCOUNT、SUBPRODUCTを使って、分類していま。具体的には、一つの細胞に緑のシグナルが10個、赤のシグナルが20個、青のシグナルが30個、次の細胞には緑が15個、赤が20個、青が2個と細胞を順次数えていきます。
A B C D E
1細胞 緑 赤 青 個数
2 10 20 30
3 15 20 2
4
そこで、緑が5個以上、赤が10個以上、青が20個以上の細胞の個数は、SUBPRODUCT(($A$2:$AB$1000>=5)*($B$2:$B$1000>=10)*($C$2:$C$1000>=20))として求めてきました。
今回、シグナルのパターンで1個ずつバラバラにあるのと、シグナルが5個、10個と塊である分を生物学的に分けなければならなくなりました。
具体的には、20個のシグナルがある場合、それが一つずつバラバラである場合は、20とそのまま、5個の塊が1つ、10個の塊が1つ、そして、バラバラに5個がある場合は、5c+10c+5のように記載します。
塊がある分は、別途、集計するのですが、今までと同じように表で5c+10c+5と記載した分も、cを除いて、5+10+5=20として、緑が5個以上、赤が10個以上、青が20個以上の細胞の個数を求めたいのですが、F2=SUBSTITUTE(A2、"c"、"")として、あらたに変換しても、数式ではないので、5+10+5と文字として標識されるだけだし、これをVALUEで、式に戻るかと考え、VALUE(SUBSTITUTE(A2、"c"、""))としてもエラーとなります。
何か良い方法は無いのでしょうか?
と前回質問し
標準モジュールに
Function eval(s As String)
eval = Evaluate(s)
End Function
を用意。セルに
=eval(SUBSTITUTE(A2,"c",""))
回答を頂きました。
そして、excelでtool、macro、VBEとして、insertからmoduleとして、
Function eval(s As String)
eval = Evaluate(s)
End Function
を入力しました。
そして、D2=eval(SUBSTITUTE(A2,"c",""))と入力すると上手く行かず、PERSONAL.XLS!eval(SUBSTITUTE(A2,"c",""))としたら、うまく行きました(どこかで、入力手順がおかしかったのでしょうか...)。さらに、空白セルに###とでるのを嫌い、=IF(A2="","",PERSONAL.XLS!eval(SUBSTITUTE(A2,"c","")))としました。これをD、E、F列に1から1000までコピー、ペーストしました。A、B、C列をそれぞれ、D、E、F列に返還して計算しました。これを用いて、Dが2個以上、F、Fが4個以上を
=SUBPRODUCT(($D$2:$D$1000>=2)*($E$2:$E$1000>=4)*$F$2:$F$1000>=4))で求めると、個数が異様に多くなります。
おそらく、D、E、F列に上記のIF関数を用いてることが影響しているのだと思いますが、何かよい回避方法は無いでしょうか?
お礼
ありがとうございます。 って事は、赤から青に変わるのは独自じゃないけど、日本だけなんですね。 と言うより日本がその方法を採用してるのですね。 ここに刷り込みが感じられますね。