• 締切済み

excel関数教えてください

横1行で、以下のような条件でデータが入っています。 AV・AZ・BD・BH・BL・BP 空白または文字列 AW・BA・BE・BI・BM・BQ 空白または文字列または数値 AX・BB・BF・BJ・BN・BR 空白または0~4の整数値 AY・BC・BG・BK・BO 空白または数値 BS 数式 基本的に最初の列が空白の場合は、4列セットで空白が続きますが、 BS列のみ全ての行に数式が入っています。 これで、BT・BUに、 ・AX・BB・BF・BJ・BN・BRが4の場合のAY・BC・BG・BK・BO・BSの平均 ・AX・BB・BF・BJ・BN・BRが0~3の場合のAY・BC・BG・BK・BO・BSの平均 を出したいです。 =SUMPRODUCT((MOD(COLUMN(AY10:BS10),4)=3)*(AX10:BR10<=3)*(AY10:BS10))/SUMPRODUCT((MOD(COLUMN(AY10:BS10),4)=3)*(AX10:BR10<=3)) こんな関数を入れてみましたが、 空白の場合もカウントしてしまうので0~3の場合の平均がおかしくなったり、 AW・BA・BE・BI・BM・BQに文字列が入った場合にエラーが出たりします。 解決する関数を教えてください。 よろしくお願いいたします。

みんなの回答

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

やや強引ですがこんな感じでどうでしょう? ・AX・BB・BF・BJ・BN・BRが4の場合のAY・BC・BG・BK・BO・BSの平均 =AVERAGE(IF(AX10=4,AY10,$A$1),IF(BB10=4,BC10,$A$1),IF(BF10=4,BG10,$A$1),IF(BJ10=4,BK10,$A$1),IF(BN10=4,BO10,$A$1),IF(BR10=4,BS10,$A$1)) ・AX・BB・BF・BJ・BN・BRが0~3の場合のAY・BC・BG・BK・BO・BSの平均 =AVERAGE(IF(AX10<=3,AY10,$A$1),IF(BB10<=3,BC10,$A$1),IF(BF10<=3,BG10,$A$1),IF(BJ10<=3,BK10,$A$1),IF(BN10<=3,BO10,$A$1),IF(BR10<=3,BS10,$A$1)) A1を空白セルとして使って居ます。A1以外を使う場合は変更してください。 なお、このままだと、全てが空白だったような場合エラー(#DIV/0!)になりますので、それぞれを空いている列(例:CA10、CB10)に入れて、BT10、BU10には次の様に入れます。 BT10 =IF(ISERR(CA10),"",CA10) BU10 =IF(ISERR(CB10),"",CB10) 無理やり一行にまとめるのも可能ですが、見づらくなるのでやめました。

関連するQ&A

  • excel vba 2000 rangeの範囲指定でGlobalエラー

    はじめて質問させていただきます。 excel 2000のvbaでRange("B:C,D:E,F:G,H:I,J:K,L:M,P:Q,T:U,V:W,Z:AA,AB:AC,AD:AE,AF:AG,AL:AM,AN:AO,AP:AQ,AR:AS,AT:AU,AV:AW,AX:AY,AZ:BA,BB:BC,BD:BE,BF:BG,BH:BI,BL:BM,BN:BO,BP:BQ,BR:BS,BT:BU,BV:BW,BX:BY,BZ:CA,CB:CC,CD:CE,CF:CG,CH:CI,CJ:CK,CL:CM,CN:CO,CP:CQ,CR:CS,CT:CU,CV:CW,DB:DC,DD:DE").Select のように非常に長い文字列で範囲を指定した場合、「Rangeメソッド失敗'_Global'オブジェクト」というようなメッセージが出ます。 最後のDD:DEをやめたり、連続する列をまとめるとエラーになりません。 どうも文字列に制限があるように思いますが、回避方法をご存知の方ご教示ください。

  • Application.InputBoxで疑問

    アクティブセルの文字列を求めるVBAのコードをお願いします。 マクロを実行した後で、処理するセルを選択したいので 下記コードを利用するとします。 Sub Sample1() Dim Target As Range Set Target = Application.InputBox("セルを選択してください", Type:=8) End Sub 例えば、 sheet2の2行目列の61列目(BJ)から65列目(BN)までをアクティブセルに指定したとして (Sheet2のrange("BJ2:BN2")相当) 前提として 検索する文字列は、1セルに1文字ずつしか記入されていません。 下記の場合では、 BJ BK BL BM BN 2 R a n g e 上記の場合は、Rangeが求める文字列です。 Targetで求めるアドレスは最初の「$BJ$2」だけで 必要な文字列としては Selection.Addressで「$BJ$2:$BN$2」です。 どう変換すれば良いのか良く判りません。

  • 1列おき2列選択

     指定範囲(I9:CW40)の中で1列おきに2列選択したいのですが 、当然ですがマクロで記録はできても実行できませんし2行1列には関数式が入っているのでこれを除いて他の範囲(I71:CW99)に同じように1列おきに2列に「形式として貼り付け」ー「値」としたいのですが、お教え願えませんでしようか? Sheets("メイン").Select Range( _ "J9:K40,M9:N40,P9:Q40,S9:T40,V9:W40,Y9:Z40,AB9:AC40,AE9:AF40,AH9:AI40,AK9:AL40,AN9:AO40,AQ9:AR40,AT9:AU40,AW9:AX40,AZ9:BA40,BF9:BG40,BI9:BJ40,BL9:BM40,BO9:BP40,BR9:BS40,BU9:BV40,BX9:BY40,CA9:CB40,CD9:CE40,CG9:CH40,CJ9:CK40,CM9:CN40,CP9:CQ40,CS9:CT40,CV9:CW40" _ ).Select Range("CV9").Activate Selection.Copy End Sub

  • 表中の記号から行と列の値を取り出すには

    表の列(月)行が(年)の表があります。中央の記号を探し、年月を読み取りたいのですがどのようなマクロを組めばいいのか見当がつかず質問させてもらいます。         1   2   3   4   5   6   7   8   9   10    11   12 2009  aa ab ac ad ae af ag ah ai aj ak al 2010  ak ba bb bc bd be   bf bg bh bi bj bk 2011  bl bk ca cb cc cd  ce cf cg ch ci cj                               2012 ck cl ck da db dc   dd de df dg dh di 2013 dj dk dl ea eb ec   ed ee ef eg eh ei 表の中から”cc”を選ぶと2011年5月と出るようなマクロを組みたいのです。 1つづつならばvlook upを使いできるのですが、10個を一括入力で変換し転記するマクロの見当がつかず悩んでいます。教えていただけないでしょうか。

  • ゲーム理論

    第3価格オークションの定義 入札b=b1,b2,...,bn(ただし、n≧3)において、最高額を入札したプレイヤーiが勝者となる。ただし、そのようなプレイヤーが複数いた場合は、その中でプレイヤーの番号がいちばん若いプレイヤーが勝者となることとする。しかし、勝者であるプレイヤーiが支払うのは自分の付け値biではなくて、b1,b2,...,bnの中で、3番目に大きな付け値とする。(より正確には、同じ大きさの付け値が複数ある場合を期して、「3番目に大きな付け値」を以下のように定義する:n個の付け値b1,b2,...,bnの中で、ある付け値bjが3番目に大きな付け値であるとは、bk≧bjとなるような付け値bkが(k=jの場合も含めて)3つ以上存在し、かつ、bk>bjとなるような付け値bkが2つ以下しか存在しないことを言う。)その他のプレイヤーは0を支払う。 いま入札者(プレイヤー)が3人だけで、各プレイヤーの財に対する評価額がv1=100,v2=80,v3=60であると仮定する。 入札者2が勝者となるような純粋戦略ナッシュ均衡が存在するかどうか答えよ。さらに、もし存在する場合はその例を一つ挙げよ。 分かりません。。教えてください。

  • エクセルVBAで結合セルなどの色が一部消えません

    色を付けてある結合セルセルが一部消えません。下のはマクロ記録してそのまま使っているものですが、なぜ消えないのか分かりません。 ちょっとたくさんありすぎてゴチャゴチャしていて恐縮ですが、消えない部分は。 AM42:AO43,AR42:AX43,BD42:BJ43,F45:T46,V45:AJ46の部分です。 使用上のクセとかなんかあるんでしょうか? Union(Range( _ "F57:T58,V57:AJ58,AM57:AO58,AR57:AX58,BD57:BJ58,F60:T61,V60:AJ61,AM60:AO61,AR60:AX61,BD60:BJ61,AV7:BC8,AU9:BC10,D16:AC17,G18:H19,O22:P23,W24:AE25,R32:AV34,F42:T43,V42:AJ43,AM42:AO43,AR42:AX43,BD42:BJ43,F45:T46,V45:AJ46,AM45:AO46,AR45:AX46,BD45:BJ46,F48:T49" _ ), Range( _ "F51:T52,V51:AJ52,AM51:AO52,AR51:AX52,BD51:BJ52,F54:T55,V54:AJ55,AM54:AO55,AR54:AX55,BD54:BJ55" _ )).Select Range("BD60").Activate Union(Range( _ "F57:T58,V57:AJ58,AM57:AO58,AR57:AX58,BD57:BJ58,F60:T61,V60:AJ61,AM60:AO61,AR60:AX61,BD60:BJ61,G65:T66,AM65:AO66,BD65:BJ66,G69:T70,AM69:AO70,BD69:BJ70,BB76:BJ78,AI80:AM81,AV7:BC8,AU9:BC10,D16:AC17,G18:H19,O22:P23,W24:AE25,R32:AV34,F42:T43,V42:AJ43" _ ), Range( _ "AM45:AO46,AR45:AX46,BD45:BJ46,F48:T49,V48:AJ49,AM48:AO49,AR48:AX49,BD48:BJ49,F51:T52,V51:AJ52,AM51:AO52,AR51:AX52,BD51:BJ52,F54:T55,V54:AJ55,AM54:AO55,AR54:AX55,BD54:BJ55" _ )).Select Range("AI80").Activate Selection.Interior.ColorIndex = xlNone

  • EXCEL2003 別シートを参照する条件付書式のINDIRECTの使

    EXCEL2003 別シートを参照する条件付書式のINDIRECTの使い方 いつもお世話になっております。 別シートを参照する条件付書式のINDIRECTの使い方について教えてください。 現在シートが2枚(表とLIST)あり表のH列がブランクではない時に I5:U6に条件付書式を入れたいと思っています。 シート構成は以下の通りです。 -------------------------------------------------------------- 設定したい条件(例:I4/4月度の氏名:「ああ」の場合) H5がブランクではない時 シート:表のI5の値(320)が シート:LISTのBK3より(設定された値/4月度の氏名:「ああ」は293)より 大きい場合に赤の太文字にしたい -------------------------------------------------------------- ブランクではない場合はH5<>"", LISTの値を見る(ああの4月の値を出す)数式は 以下の式を使ったことがあるのですが =SUMPRODUCT((LIST!$BF$3:$BF$147=F5)*(LIST!$BK$2:$BV$2=I4)*(LIST!$BK$3:$BV$147)) この組み合わせ方や別シートを参照するINDIRECTの使い方がわかりません。 設定したい条件を可能にするにはどのようにしたらいいのでしょうか? ご教示お願いいたします。 シート:表(I4:U4は4月:3月の意味です)       F     G    H      I    ・・・   U 4 No.   氏名   区分    4       5   ・・・   3 5 11    ああ   AA    320    310  ・・・   300 6 12    いい   AB    295    200  ・・・   280 シート:LIST(BF2:BV147で1ヶ月の制限の値が入った表です)   BF   BG    BK   BL・・・  BV 2   No.   氏名    4     5・・・   3 3  11   ああ    293    263・・・290 4  12   いい    295    300・・・293

  • 三角関数の問題です。

    質問をさせていただきます。 二次元平面上に△ABCがあり、頂点の座標はそれぞれ (Ax,Ay)、(Bx,By)、(Cx,Cy)となっています。 また辺ACと辺BCの長さは等しく、二等辺三角形となっています。 (∠ACBの角度×1/4)の正接の値をTとした場合、 Cx、Cyの値をそれぞれ求めたいのですが、 どのようにすればよいでしょうか。 (ちなみに全ての辺は、X軸やY軸に必ず平行というわけではありません) Cx=~、Cy=~ といった形でご回答頂けると幸いです。 よろしくお願いいたします。

  • 関数を使用して計算しているセル同士を比較することは可能ですか?

    エクセルで表計算をしています。 1件のデータの中で、if関数とsum関数を使用して計算しているセルが2ヶ所あります。 そのセル同士を比較して条件を充たしたらセルに色をつける。 ということをしたいのですが、可能なのでしょうか? 可能ならば、どのようにすれば良いのか教えていただけませんか? よろしくおねがいします。 例)・1行が一人の会員の1年度分になっている。   ・年初4月に預り金が発生し、毎月、月額分を引いていく。   ・月掛数と月単価が増減することで月額は変化する。   ・BE列の計算式は(下図2行目の場合)     if(b2="","",sum(BC2*BD2))   ・BF列の計算式は(    〃   )     if(b2="","",sum(AZ2+BA2-BE2)) ※AZ列には7月の残高があります。   ・預り金の残高が少なくなってきて、今月と同掛数以上になると    残高不足となる場合は残高セルに色をつけて注意を促したい。    下図の場合はBF3とBF4      A ・・・  BA    BC    BD    BE    BF 1  預り金  8月入金 8月掛数 8月単価 8月月額 8月残高 2  10000    10000    10    50    500   9500 3   5000        0     5    50    250    200 4  50000       0     20    80   1600   1500

  • 関数によって空白したのを数値「0」に置き換える

    A.............B...............C 1 ZZ............6..............× 2 AA........... 1 3 BB 4 CC............3 B列にはそれぞれ関数が入っています。 セルB1には、B2、B3、B4の数値の合計です。 C1のセルには、C1数値とB2、B3、B4の数値の合計が一致しているか否かの判定する関数が 入っており、一致していなければ、"×"が表示させるようにしています。 しかし、ここで問題が起きました。 「VALUE」というエラーが表示されました。 上記の表では、セルB3は、空白になっております。 本来は、セルが空白になっている場合は、「0」が格納されていると思うのですが、 ここには、関数によって、文字列?の「空白」に置き換えられています。 例えば = IF((Z5) ,5, "") ようにです。 多分、関数によって文字列として認識される空白("")を置いたためと思います。 関数によって置き換えた空白("")を数値「0」として認識できる関数を教えてください。 いろいろな方法があると思いますが、「関数」のみで教えてください。 C1には、以下の関数が入っています。 =IF((B1) = (B2+B3+B4) ,"○","×")

専門家に質問してみよう