• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル OFFSET関数での行数指定の方法)

エクセル OFFSET関数での行数指定の方法

bunjiiの回答

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.6

>A君~E君の5×5の行列にF列として1列×5行の有効無効フラグ列を追加して、そこの対応する行のセルが1である行の数のみをカウントするというようにする必要がある事がわかりました。 その条件は質問の文言の下記要件と食い違いがあります。 「例えばテーブルの行数(可変)がF1セルに入っていたとして、{}部分を置き換える表記はあるのでしょうか。」 COUNTIF(OFFSET(A1:E1,{1,2,3,4,5},0),">=50")の結果は5列×1行の配列値になります。 従って、F2:F6のフラグ(0と1の数列?)は1列×5行なので1つのCOUNTIFS関数で纏めることはできません。 SUM関数の配列内でIF(COUNTIF(OFFSET([省略]),[条件])>0,1,0)の戻り値とTRANSPOSE(F2:F6)の積を求めれば良いでしょう。 =SUM(IF(COUNTIF(OFFSET(A1:E1,TRANSPOSE(ROW(A1:A5)),0),">=50")>0,1,0)*TRANSPOSE(F2:F6)) 数式の確定時にShift+Ctrl+Enterの打鍵が必要です。 添付画像は5列×10行を対象に50以上の値でF列のFlagはA列からE列に10未満が無い行に1を立てたものです。 解1=SUM(IF(COUNTIF(OFFSET(A1:E1,TRANSPOSE(ROW(A1:A10)),0),">=50")>0,1,0)*TRANSPOSE(F2:F11)) 解2=SUM((MMULT(INDEX((A2:E11>=50)*1,0),TRANSPOSE(COLUMN(A1:E1)/COLUMN(A1:E1)))>0)*(F2:F11)) 解3=SUM(IF(COUNTIFS(OFFSET(A1:E1,TRANSPOSE(ROW(A1:A10)),0),">=50")>0,1,0)*TRANSPOSE(F2:F11)) 解4=SUMPRODUCT((MMULT(INDEX((A2:E11>=50)*1,0),ROW(A2:A6)/ROW(A2:A6))>0)*F2:F11) 解1、解2、解3の確定時にはShift+Ctrl+Enterキーの打鍵が必要です。 解4のみEnterキーで確定可能です。

lin3hayashi
質問者

お礼

BUNJIさん ありがとうございます。サンプルを5×10にしてもらったので式の意味の取り違えを排除できました。私の5×5サンプルは自分で分かり難くしていましたね。解4はエレガントですね。まだ理解しきっていない所もあるのでこの式で色々とstudyします。丁寧な説明、ありがとうございました。

関連するQ&A

  • エクセルでの行数カウント

    エクセルで A列 B列 1行 ●1 C ⇒カウント 2行 X1 D  3行 ●2 E 4行 X2 F 5行 ●3 C ⇒カウント 6行 ●4 D 7行 X3 E A列で「●」を含み、なおかつB列で「C」である行の数(例でいうと「2」)を求める 数式を教えてください。 ちなみに A列 B列 1行 ● C ⇒カウント 2行 X1 D  3行 ● E 4行 X2 F 5行 ● C ⇒カウント 6行 ● D 7行 X3 E であればA列が全く「●」に等しいものでカウントする場合は、下記の関数で計算できます。 {=SUM(IF(B1:B7="C",IF(A1:A7="●",1,0)))} COUNTIF関数では、"●*"のように「任意の文字」を指定することが可能ですが、IF関数の 中ではできないようです。

  • EXCELで行数が変わる場合のカウントについて

    「EXCEL2010」で、行数が変わる場合のカウント方法について 教えて下さい。 例の場合で説明すると、大分類「AAA」「BBB」毎に「中分類」の数と「有無」の 数をカウントしたいのですが、「AAA」と「BBB」の行数が増減してしまいます。               中分類   有無  添付イメージでは「AAA」  5     3          「BBB」  3     1 カウントする時の範囲を、可変にすることは可能でしょうか。 よろしくお願いします。

  • Excel

    O列の◯(丸)の数をカウントしていきたいです。 行はO10より始まります。行は日々により追加されて行きます。今は10行のみしかありません。 行が日々により追加されて行くので自動で◯の数をカウントして行きたいです。 =COUNTIF(OFFSETの後の数式がわからないので教えて頂きたいです。

  • エクセルで、条件を指定した行数のカウントについて

    エクセルにて、条件に合致する行数のカウントを行うことは出来ますでしょうか。 添付画像のようなエクセルファイルにて、各日毎に「AAA」を含む行は何行あり、「BBB」を含む行は何行あるかをカウントしたいです。 添付のエクセルであれば、A列が「10月1日」でB列に「AAA」を含む行は○行という条件でカントが出来れば実現可能とは思いますが、 こういったカウントの仕方がそもそもエクセルで出来るのかどうか知りたいです。 もし、エクセル以外の方法で可能なのであれば、その方法も教えていただけるとありがたいです。

  • エクセル、行数をカウントしたい。

    エクセル初心者です。 よろしくお願いいたします。 エクセルでこのような表を作っています。   A  B  C 1 10 15 2 20 3    10 4    15 5 10 6 10 10 7 8 この時、データの入っている行数をカウントしたいのです。 上の例では 「6」 です。 途中に空白の行はありません。 A列、B列にはどちらにも数字が入る場合と、どちらかにしか 入らない場合があります。 なので COUNT は使えないですよね? 今まではデータを入力後、下の空白の行を削除し、C列で COUNTBLANK として求めていたのですが、表の長さ(行数)が一定でないため、 体裁が悪くなってしまっていました。 希望としては。 最終行のC列に「終了」などと入れると、その文字列を判別 してくれて、それより上の行数をカウントしてくれる。 または 例えば OR を使って、A列B列どちらかにデータがある 場合のみ、カウントしてくれる。 こんなワガママなことができたら、と思っております。 補足が必要ならばいたします。 それと、遅くなるかもしれませんが、お礼は必ずさせていただきます。

  • Excel 関数でcountifの複数条件

    Excelで条件にあった個数をカウントする関数はcountifですが、 複数の条件にあった個数をカウントする場合、countifの式はどうすればよいのでしょうか。 例えば A列の1行から20行で"○"が入っている個数のカウントは =countif(a1:a20,"○")ですが A列の1行から20行で"○"が入っていて、なおかつ B列の1行から20行に"1"が入っている個数のカウントを知りたいです。 =countif(a1:a20,"○")and(b1:b20,"1")ではないですよね。 よろしくご教授願います。

  • Excel OFFSET関数とCOUNTA関数

       A     B     C      D      E      F      G      H     I 1                                        ABC商会   合計   9,200 2 3 4 連番  出荷日   型     部品代   製品代   合計 5    1     10    aaa     1,000    1,850     2,850 6  2      12    bbb      650     900     1,550 7  3      18    ccc      800    2,000     2,800 8  4      30    ddd      500    1,500     2,000 9       10             合計     2,950   6,250     9,200   契約者毎にA1:F10ような集計表を作成しており、5行目以降行は追加されていくので、 可変の表になります。 各契約者集計シートのPrint Areaをコピーし、A1セルに貼るとG1、H1、I1に契約者名と 合計がABC商会 合計9,200と表示できる上記のような表になるようにしたいと思っています。 関数で対応したいのですがうまくいきません。 =VLOOKUP(H1,OFFSET(C4,0,0,COUNTA(C:C)-4,4),2)ではエラーにはなりませんが、合計を 表示できませんでした。 また、他の契約者集計シートのPrint AreaをA1セルに貼ると エラーになります。 どうかご教示お願いいたします。

  • Excelで入力のある最大行数を取得できますか?

    こんばんは。 Excelの関数で以下の値を取得できますか? 行は可変です。 行を追加して、行に入力のある時、 その行の行番号を知りたいのです。 やりたいことは D1の位置にA1からAnまでの合計を 入れたいのですが。 D1=sum(a1:??) ??に関数にて入力のある最大のn番目を取得できれば できるきがするのです。 A : B:C:D 1:100: : :ここにA1からAnまでのSumをいれたい。 2:150: 3:80 n:100 お分かりの方宜しくお願いします。

  • Excel

    できません。お助けください。 O11列のテーブルの追加したセルのみの空白を集計したいです。 今Oの11列のみあります。 日々により列は増えて行きます。 増えますが、空白ではなく◯[丸]が入る列もあります。 空白のみを集計しR11に自動でカウントしたいです。 =COUNTIF(O11:OFFSET(O11,COUNTA(O$11:O1048577),0),””) Q11では◯[丸]数をカウントしてますので、=COUNTIF(O11:OFFSET(O11,COUNTA(O$11:O1048577),0),”◯”)こちらは、問題なくできます。空白はできないでしょうか?

  • この場合の関数を教えてください。IF関数とCOUNTIF関数?

      A      B    C  D  F  G 1 12300 2 9800 3 14500 上記の様な表($a$1:$d$3) がある時、 B1 ◎      D1 △   F1◎     C2◎         F2△ B3△      D3◎ F1 に◎を入れた時に、 もし、A列の値が10000より大きいなら(注)、範囲$a$1:$d$3の◎の数を数え結果をG1に2と表示させたいです。(F2に△と入れたら2と表示) (注) 1行目は、12300(A1)なので1行目はカウントの範囲。 2行目は、9800で10000より小さいのでカウントの範囲から外れる。 3行目は、14500はカウントの範囲。 2行目の◎(C2)はカウントされないようにするには、 G1にどのようなCOUNTIFの関数を入れればよいのでしょうか? いつも教えているので、考えたのですが? =IF(A1>10000,COUNTIF($B$1:$D$3,F1),"0")では、間違いとは気づいたのですが? (A1>10000が間違い)どの様にして良いか解りません。 どなたか教えてください。宜しくお願いいたします。 (見にくい表で申し訳ありません)