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

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

ご助言お願いします。

A 回答 (4件)

no1です。


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

いえいえ。こちらこそ言葉足らずで申し訳ない。
エクセルは、簡単な数処理を行う関数程度しか扱ったことが無かったので、このような単純な数値を扱うもの以外の関数では、いつもの自分の慣れた方法が使えないことや、条件指定の方法について、もう少し細かい説明が必要であることを忘れておりました。

だいたいにおいて、当初想像していた通りにできました。
重ねてお礼申し上げます。

お礼日時:2007/06/20 19:01

自分の慣れ親しんだ仕事のエクセルの表は、回答者にも判るという線で質問してますが、全くそんなことはないはずです。


具体的に表の実例を挙げて、的は自分で整理して、質問すべきです。
「表」という言葉は、エクセルの質問ではある程度回答者がイメージするものがあります。違う使い方をするなら注記すべきです。
1シート上に、諸所に表があるのでしょうか。
別シートにも同類の(カウントすべき表が)あるのでしょうか。
2箇所ぐらいなら
=COUNTIF(A2:D5,"*植田*")+COUNTIF(A10:D15,"*植田*")
のようにせざるを得ないと思います。
1つのCOUNTIF関数の中に、複数範囲を指定することはできないようです。
ーー
>表の名前は、セルの名前登録をしてありますので、ここでは仮に"表"とします。特定個人の名前は、"名前"とします。
この意味が良くわかりません。
A2:D5とあわせてA10:D15を「範囲」と名づけてみましたが、
=COUNTIF(範囲,"*bb*")はエラーになり結果が出ませんでした。
他の関数では(=SUM(A2:D5,A10:D13)など)可能なものもありますが。
    • good
    • 11
この回答へのお礼

説明不足で申し訳ございません。
COUNTIF関数は、完全に連続しているセルでなければ機能しないのですね。
事情により、そのようにすることが難しい(おそらく、アクセス等を使えばもっとスマートに処理できるのでしょうけれども)ため、データが連続していない形式のシートになっております。そこで、処理に困っていました。

ご意見大変参考になりました。大変ありがとうございます。

お礼日時:2007/06/20 19:13

条件にワイルドカードと参照を使用したい場合は



"*"&A1&"*"

のように指定してみて下さいネ。
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考になりました。

お礼日時:2007/06/20 19:13

次の方法は如何でしょうか。


=COUNTIF(表,"*名前*")
    • good
    • 6
この回答へのお礼

すばやいご助言ありがとうございます。
早速試してみたのですが、COUNTIF関数は、どうやら連続した表でなければなければいけないのですね・・・。
私が想定している名前定義した表というのが、いわゆる"表"というよりも、飛び飛びのセルの集合の状態であるためか、うまく行きません。

また、文字列から特定の個人名(本来であれば、セルごとに分ければよかったのでしょうが、スペースの関係でそれが困難なのです・・・。)を抽出するとき、個人名そのものではなく、個人名を含んだセルに対して、ワイルドカードを使用したいのですが、セルに対してワイルドカードをしようすることはできないのでしょうか?
(先ほどのご説明を借りると、*A1*というような遣い方ができればしたいのですが・・・)。

言葉足らずで申し訳ございません。
なんにせよ、一歩進むことができました。ありがとうございます。

お礼日時:2007/06/20 12:38

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

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

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

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

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

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

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

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

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

Aベストアンサー

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

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

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

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

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

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

Aベストアンサー

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

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

Q指定の文字を含むセルを数えたい。=COUNTIF(J3:J55,"A")

=COUNTIF(J3:J55,"A")

J3:J55の列セルの中から
A という文字を★含む★セルの数をかぞえたい

けど、たとえば「A」のみはカウントしても
「AB」はカウントしてくれない。
ABも、Aを含んでるからカウントにいれたい。

どうしたら良いのでしょう?

Aベストアンサー

=COUNTIF(J3:J55,"*A*")
こうすればカウントしてくれます
ただし2回入っても1としかカウントしません
AVAとかでも1
BBBBAでも1
AGV でも1

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

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

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

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

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

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

宜しくお願いします。

Aベストアンサー

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

でどうでしょうか?

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ある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む

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

QEXCELで、特定の文字を含むセルを抽出したいのですが。

仕入れ帳のようなシートで、B列に商品名があります。
商品名に特定の文字(数字又は文字)を含む時、空白列のC列に、その文字を抽出する方法をご教示ください。B列の商品名は変化させずにです。
意図は、当シート内で並べ替えをする時に、C列をキーとするためです。
商品名が、各種文字と数字で構成されており、そのままでは、希望する並べ替えができないのです。
宜しくお願い致します。

Aベストアンサー

「IF」関数、「ISERR」関数、「FIND」関数を組合せれば可能ですね。
たとえば、文字「a」を検索するなら、B2セルを対象として、C2セルに、

=IF(ISERR(FIND("a",B2)),"","aが入っています")

と入れます。

注意事項として、アルファベットを検索する場合、大文字と小文字を区別します。
つまり、上の例ではB2セルに「a」があれば、「aが入っています」、と表示されますが、「A」では表示されません。
(「FIND」を「SEARCH」にすれば「a」・「A」どちらでも表示される)

Q【Excel】特定の文字を含むセルをカウントしない方法

エクセルで特定の文字列(仮に「key」とします)を"含む"場合の関数は、

=COUNTIF(A1..A20,"*key)

で処理できるのは分かっているのですが、

特定文字列(key)を"含まない"場合の処理方法が分かりません。
VBAなどを介さずに関数だけで処理する方法がありましたら、ご教示願います。

Aベストアンサー

=COUNTIF(A1:A20,"<>*key*")
でできませんか?

Q複数の文字列のいずれかが含まれていたらTRUEを返す関数について

複数の文字列のいずれかが含まれていたらTRUEを返す関数について
エクセル2003を使用しています。
B列に例えば住所が入力されていて、「東京都北区」「千代田区」「東村山市」等いくつかの文字列のいずれかが含まれていたら、A列にTRUEを返すということをしたいのですが方法がわかりません。
単純なことのような気がするのですがどうしても思いつきません。よろしくお願いいたします。

Aベストアンサー

こうかなあ。。。
A2セル
=OR(SUBSTITUTE(B2,$D$2:$D$4,"",1)<>B2)
[Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる)
下へオートフィル

D2:D4に文字列を入力しておく


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

人気Q&Aランキング

おすすめ情報