痔になりやすい生活習慣とは?

countif関数で離れた場所を検索範囲にしたいのですが、いい方法がありますか?

普通に範囲指定するとA1:F6のようにはできますよね。
2列おきに範囲指定するよい方法はないかと思っています。どなたか教えていただけませんか?


 A B C D E F





このQ&Aに関連する最新のQ&A

A 回答 (2件)

いくつか考えてみました。


 (COUNTIF1つで出来る方法は見つかりませんでした。)
気に入る方法があればいいですけど。

1.範囲毎に分ける
=COUNTIF(A1:A6,">5")+COUNTIF(D1:D6,">5")
又は
=SUMPRODUCT((A1:A6>5)+(D1:D6>5))

2.Mod関数とColumn関数を利用する。
  列番号を3で割った時の余りが1で、値が5より大きいセルの個数
=SUMPRODUCT((MOD(COLUMN(A1:F6),3)=1)*(A1:F6>5))
  (こちらは普通の関数。入力後、[Enter]で確定)
又は
=SUM((MOD(COLUMN(A1:F6),3)=1)*(A1:F6>5))
  (こちらは配列数式。入力後、[Enter]の代わりに[Ctrl]+[Shift]+[Enter])

3.VBAでユーザー関数を作成
=Countif2(">5",A1:A6,D1:D6)
(Countif2(条件,セル範囲1,セル範囲2,・・・・)

標準モジュール
Function COUNTIF2(条件, ParamArray セル()) As Long
  Dim i As Long
  For i = 0 To UBound(セル)
    COUNTIF2 = COUNTIF2 + Application.WorksheetFunction.CountIf(セル(i), 条件)
  Next i
End Function

すべて同じ結果になります。
・SUMPRODUCTと配列数式は列全体の指定は出来ません。A:F等
・2列分位なら範囲毎に指定してもいいと思います。
    • good
    • 2

CountIf関数は範囲を1つしか指定できないようですが


2つ以上の範囲指定をできるようにして見ました(ユーザー関数を作りました。)
ツール-マクロ-VBE(ここでVBE画面に変る)-挿入-標準モジュール-(ここで出ている画面に)下記のコードをコピペする。
Function countx(a As String, b As String)
d = Split(a, ",")
c = 0
For i = 0 To UBound(d)
c = c + Application.WorksheetFunction.CountIf(Range(d(i)), b)
Next i
countx = c
End Function
そしてワークシートに戻り、答えを入れたいセルに
=countx("A2:A9,C2:C9,D2:D9",">20")のようにいれて
下さい。
A2:A9,C2:C9,D2:D9の部分は(A)(前後)両端を””(半角)で括ること(CountIf関数と違う点)(B)範囲を並べるとき、区切りを半角カンマ(,)で区切ること
(C)カンマで区切って入れる数は10や20までなら制限なしと思う、でお願いします。範囲は列に拘ることなく、規則性なく、指定しても良い。
例 "A2:A3,C2:C9,E2:E9,D5:D5"など。
    • good
    • 1

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QCOUNTIF関数 離れたセルを選択したい

A列に
10
10
11
11
12
12

がはいっていて、
1行目、3行目、5行目が10以上の数を数えたいのですが
=COUNTIF(A1,A3,A5,">10")
のように離れたセルを選択することは出来ないのでしょうか?

エラーになるようです。
COUNTIF関数じゃなければ可能ですか?

Aベストアンサー

No.1 さん、No.2 さんのご回答で、正しい答えが出ます。No.3 さんの数式については、名前を付ける範囲が連続したセル範囲である場合には、COUNTIF 関数が正しく機能します。

そのほか、作業列を使って答えを出す方法もご紹介します。添付図では、次式を記入しています。

B1 1
C1 =(a1>10)*b1
C8 =sum(c1:c6)

1 行おきに「1」を記入する方法の一例。B1 セルに「1」を記入した後、B2 は空白のままの状態で、B1:B2 のセル範囲を選択。次いで、キーボードの Ctrl キーを押しながら右下隅の角を下方向にドラッグすることで、1 行おきに記入されます。

なお COUNTIF の仕様では、第 2 引数までしかありません。したがって質問文のように、第 4 引数まで持たせた数式を書くことはできません。定められた以外の方法で関数を使っても正しい答えが出ないというのは、ごく当然の結果です。

QExcelで飛び飛びのセルにある文字をカウントする

jcb3092と申します、教えて下さい。

Excel2002を使用しています

飛び飛びに離れた場所のセルに入っている特定の文字

例えば"○""×""△"等を指定してカウントする関数がありまし

らご教授頂けますようお願い申し上げます。

Aベストアンサー

関数と、ちょっとした応用で可能です。

カウントしたいセルを全部選択して、範囲名を設定する。
でもって、COUNTIF関数でカウントさせる。

例:
 A1:A5セル、B4セル、C1:D10セルを Ctrlキーを押しながら選択する。
 「名前ボックス」に "積算範囲" と入力し、選択した範囲に名前を定義付ける。
 =COUNTIF(積算範囲,"○")
 などと関数を入力する。

※ 名前ボックスは、A1セルを選択すると左上に A1 と表示される場所です。

定義付けした範囲名は、
 挿入 → 名前 → 定義
で編集できます。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで離れたセルを範囲指定

お世話になります。
以下のような表があるとします。

       項目1  項目2  項目3  項目4  項目5
サンプル1  ○          ○     ○
サンプル2       ○               ○

これらの右に列を設け、○の数をカウントします。
カウント1には項目1と項目3の列のみ。
カウント2には項目2と項目4と項目5のみの○をカウントしたいとします。
つまり以下のようにしたいわけです。


       項目1  項目2  項目3  項目4 項目5  カウント1 カウント2
サンプル1  ○          ○     ○         2      1
サンプル2       ○               ○     0     2


○をカウントするだけならCOUNTIF(B2:C4,"○")で出来ますが
今回のように飛び地を選択する方法がわかりません。
どのようにすれば多数の離れた範囲を選択できるのでしょうか?

Aベストアンサー

#04です。もしかしたら質問を読み違えたかもしれません。
実際のシートはもっと列が多いのかもしれませんね。
こんな式でもできますよ。

1行目のカウント1の式
=SUMPRODUCT({1,0,1,0,0}*(B1:F1="○"))

1行目のカウント2の式
=SUMPRODUCT({0,1,0,1,1}*(B1:F1="○"))

いずれも下方向にコピーです

Qエクセルでの指定文字 カウントについて

エクセルで並んだデータでの指定した名前だけの個数をカウントするにはどうすればいいのでしょうか?

山田 高橋 佐藤
高橋 梅田 赤田
 西 山田 梅田
佐藤 山田 梅田

名前が並んだデータで「高橋」という名前が何個あるのかをカウントしたいのですがどうすればいいのでしょうか?

Aベストアンサー

 データは入力されているセルの範囲を「A1:C4」とすれば、

=COUNTIF(A1:C4,"高橋")

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Q特定の文字列を含むセルの個数をカウントしたい

こんにちは。
現在、シフト表作りを任されているのですが、特定の文字列(個人名)を含むセルの個数をカウントして、表内のコマ数をカウントしたいと考えています。

表の名前は、セルの名前登録をしてありますので、ここでは仮に"表"とします。
特定個人の名前は、"名前"とします。
この条件下で、上記を行うにはどのようにすればよいでしょうか?

ご助言お願いします。

Aベストアンサー

no1です。
てっきり「表」という事で早合点していました、お詫びします。
安直ですが、検索範囲を適用範囲を含み連続セル範囲指定でお試し下さい。
=COUNTIF(連続セル範囲,"*"&名前セル&"*")

QVLOOKUP関数の範囲に、複数の範囲を指定したい

VLOOKUP関数の範囲に、複数の範囲を指定したいのですが方法がわかりません。
例えば同じシート内のC3:L8の範囲とM3:V8の範囲とW13:AF18の範囲を同時に
検索範囲として指定したいと考えております。

選択範囲に名前をつけて定義し、それを範囲として指定してみても、
なかなか上手くいきません。

効果的な方法があれば、御教鞭頂きたく思います。

Aベストアンサー

ごめんなさい。手抜きですね。
以下が条件です。

検索値がA1にある
検索範囲の中で検索値に合致する値が複数ない

=IF(ISERROR(VLOOKUP(A1,C3:L8,2,0)),IF(ISERROR(VLOOKUP(A1,M3:V8,2,0)),IF(ISERROR(VLOOKUP(A1,W13:AF18,2,0)),"",VLOOKUP(A1,W13:AF18,2,0)),VLOOKUP(A1,M3:V8,2,0)),VLOOKUP(A1,C3:L8,2,0))

最初の範囲で検索値に一致する物がなければ、次の範囲を探します。
その繰り返しです。
最終的にどこにもなければ空白です。

返す値の列番号は範囲の中で左から2番目です。
たとえば最初の範囲なら、D列の値が帰ります。

QExcel 指定の文字列を含むとカウントするようにしたい場合は?

ただいまエクセルと格闘中の初心者です。
関数等はオートSUMくらいしか使ったことがなく、必要時にいちいち調べているような状態です。
今回は文字列を含むとカウントするところで躓いております。

表の中から特定の文字列を含むとカウントするようにしたい時COUNTIFを使うと思うのですが、この場合正確にその言葉じゃなければカウントされませんよね?

例えば「ボールペン」「サインペン」「シャープペン」のようなペン類をまとめてカウントしたい時、ペンだけで認識してくれるようにすることは可能なのでしょうか?
COUNTIF関連で探してみているのですが、中々思うような検索ができていません(もしくはわからずに見逃しているのかも?)

エクセルにお詳しい方、アドバイスを頂ければと思います。
よろしくお願い致します。

Aベストアンサー

検索条件に「*ペン*」としてみてはいかがですか。

ちなみに上記は「ペン」がどこかにあるものを対象とする。
「*ペン」は文字列がペンで終わるものを対象にする。
「ペン*」は文字列がペンで始まるものを対象とする。

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング