【復活求む!】惜しくも解散してしまったバンド|J-ROCK編 >>

お世話になります。
下記の数式を教えてください。

A列に「もみじ」が入力されている、かつ、
B~D列のいずれかに、「い」を含む文字が入力されている(「あい」「いえ」など)

上記に該当する行数をカウントしたいのです。

よろしくお願いいたします。

A 回答 (4件)

=COUNTIFS(A:A,"もみじ",B:B,"*い*")

    • good
    • 0

とりあえず、配列数式なら、


 =SUMPRODUCT((A1:A3="もみじ")*(IFERROR(SEARCH("*い*",B1:B3&C1:C3&D1:D3),0)>0))
かな?

・・・解説・・・

まずは、
 A列に”もみじ”という文字があるかを検査し、あれば”TRUE”、なければ”FALSE"。
 (A1:A3="もみじ")

続いて、
 B列とC列とD列のセルを結合してその中に”い”という文字を含むかを検査し、あれば結合した文字列の先頭からの文字数。なければエラー。
 SEARCH("*い*",B1:B3&C1:C3&D1:D3)

 エラーなら0。
 IFERROR(SEARCH("*い*",B1:B3&C1:C3&D1:D3),0)

 結果が0より大きければ”TRUE"、大きくなければ”FALSE"。
 IFERROR(SEARCH("*い*",B1:B3&C1:C3&D1:D3),0)>0

最後に、
 二つの結果を掛け算して、どちらも”TRUE"なら「1」、どちらかに”FALSE"が含まれれば「0」。
 (A1:A3="もみじ")*(IFERROR(SEARCH("*い*",B1:B3&C1:C3&D1:D3),0)>0)

 それを行単位で検査した後たし算して個数を求める。
 SUMPRODUCT((A1:A3="もみじ")*(IFERROR(SEARCH("*い*",B1:B3&C1:C3&D1:D3),0)>0))

ただし配列数式なので数式を Ctrl+Shift+Enter で確定すること。
配列数式で確定されると数式バーには
 {=SUMPRODUCT((A1:A3="もみじ")*(IFERROR(SEARCH("*い*",B1:B3&C1:C3&D1:D3),0)>0))}
と、付けた覚えのない[{ }」で囲まれた数式になって表示されます。


・・・余談・・・

面倒なことをやっていますが、配列数式について理解できれば難しくは無いはずです。
理解できなければスルーしてください。
理解できないまま使わないほうが良い事例です。

条件が一致したり一致しない場合の”TRUE"と”FALSE"を四則演算すると、
”TRUE"は「1」、”FALSE"は「0」として扱われます。
これを使い、すべての条件が一致したら「1」、一致しなければ「0」となるよう工夫しています。

SUMPRODUCT関数は横方向に掛け算、その結果を縦方向に足し算する関数です。
    • good
    • 0

No.1です。



作業列を使うのであればもっと簡単な数式で大丈夫でした。

E1セルの数式を
=COUNTIF(B1:D1,"*い*")
にしてください。
(配列数式ではありません。)

そして結果を表示したいセルは
=COUNTIFS(A:A,"もみじ",E:E,">0")

になります。m(_ _)m
    • good
    • 0

こんばんは!



VBAだと簡単にできますが、
数式だと結構厄介そうですね。

作業用の列を使ってはダメですか?
仮にE列を作業列とします。
E1セルに
=OR(ISNUMBER(FIND("い",B1:D1)))

配列数式なのでCtrl+Shift+Enterで確定!(←必須★)し、フィルハンドルで下へずぃ~~~!っとコピーしておきます。

そして表示したいセルに
=COUNTIFS(A:A,"もみじ",E:E,TRUE)

としてみてください。

※ 作業列が目障りであれば、遠く離れた列にするか
非表示にしてください。m(_ _)m
    • good
    • 0

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

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

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

QExcelで表と文書の作成について

Excelが苦手で、計算を必要としない表と文書の作成をWordでしています。Wordは白紙状態から作成できますが、Excelはセルがあり文書もセルがあると入力が手間に感じます。Excelでスムーズに作成できる方法を教えていただきたいです。

Aベストアンサー

エクセルにテキストボックスのようにワード文書を置くことができます。
テキストボックスでは大したことはできませんが、これならワードの機能が使えます。

◆手順
1.メニュー → 挿入 → オブジェクト で、別のウインドウが開く 
2.『新規文書』タブ(選択されているはず) → 『Microsoft Office Word 文書』をクリック → OK
3.編集する
4.一旦、別のセルなどを選択した場合は、ボックスをダブルクリックで編集モードになります。

Qエクセルについて。

次の数式を求める関数(下の方のプラン表)は、どんな数式を打てば良いのでしょうか?教えていただけると幸いです。

Aベストアンサー

単純な足し算ですよね。
添付画像のように作ったとして

[C8]=SUM($B$2,C$7,$B8)

これを[C8:F12]の範囲にコピーすればOK。

通常、数式のセルは、コピー貼り付けすると、移動先に応じてセルアドレスが変わってしまいますが、
「$」をつけることで、固定することができます。

上の式だと、どこに移動しても

$B$2 は B2 を参照するように固定される。

C$7 は 7行目 を参照するように固定される。
(式を下にコピーしても、7行目に固定される)

$B8 は B列 を参照するように固定される。
(式を右にコピーしても、B列に固定される)

ということになります。
$をつけて参照先を固定するのを「絶対参照」、
つけていない普通の場合は「相対参照」、
と言います。
より詳しいことは、このキーワードで検索して調べてみてください。

金額表示については、セルの書式から、
分類:通貨
記号:\
にしてあります。
実際のセルに「\」は入力されていません。

QExcelにて引き算の質問

Excelで

横並びに並んだ数字で
左端、又は0の隣の数字から引き算をする ような関数はありますか?

画像で言うと

E5セルに 5 が入力されたら

➀B4セル 1 から引き算。
その結果B4セルの値を 0 と表示したい 余りが4
(E5セル 5 - B4セル 1 =4)

②C2セル 2 と E5セル - B4セルの余り4を引き算。
C2セルの値を 0 余りが2
(➀の計算結果 4 - C2セル 2 = 2)

次にD3セル 3 と先ほどの余り2 と引き算
D3セルの値は 1 が残る。
(②の計算結果 2 - D3セル 3 = -1)

ここで結果がマイナスになるのですが、
D3セルには 1 と表示する。

次またE列に値が入力された場合は D3セルの1 から引き算をスタートし
上のように計算を繰り返し…

分かりづらい説明で申し訳ございません。

分かる方よろしくお願いいたします。

Aベストアンサー

在庫確認という事を考慮して、こんなことがしたかったのかな?
どうかしら?

Q月末の自動計算

月末火曜日の日付をスタートとして稼働日数を求めたいと思っています。

10月なら9/25~10/30まで
11月なら10/30~11/27まで
12月なら11/27~12/25までの日数を計算したいです。

月末水曜日になると当月の日数に自動で計算が切り替わるよう計算することは可能でしょうか。

わかる方がいれば教えていただきたいです。
※土日は日数に含んでOKです。

Aベストアンサー

No1です

>先程試したところ8と表示されるのですが11/28~今日までが8日という計算でしょうか?
はい。下に示しますように『今日』を対象に計算する式として作成してしまいましたので、12/5(=本日)は11/27(=最終火曜日)から数えて8日目という意味になります。
(シートが自動計算の設定になっていれば、明日になると9と表示されるはずです)

私の勝手な勘違いだったかもしれませんが、「今日が月末火曜日から何日目かを計算する」関数式として考えていましたが、対象が「今日」とは限らなかったのでしょうか?
その場合は、式中の「TODAY()」の部分を対象の日(=シリアル値)に置き換えればそのまま同じ計算が可能なはずです。
例えば、対象の日がA1セルに入力されているとするなら、TODAY()を全てA1に置き換えればよいといった感じです。

>ただ、水曜日になったら前日の火曜日分も含めて計算してほしいです。
翌日の水曜日を2日目と計算したいという意味でしょうか?
(No1の説明を読んでいただければわかりますが)現在の式は、水曜日は1(日目)と表示される式になっています。
修正したい場合は、No1の式より常に1日多い値になれば良いだけなので、式の最後に「+1」を加えれば、お求めの結果になると思います。

>とても複雑な回答で解読できなかったので教えていただけると幸いです
式は少々長いですが、全体としての構成は、単純にIFで場合分けした式になっています。
ご参考までに、大雑把な構成を言葉で示すならば・・・
『対象日(今日)がその月の最終火曜日より前なら、前月の最終火曜日からの日数を数え、後ならその月の最終火曜日からの日数を数える』
という式になっています。

No1です

>先程試したところ8と表示されるのですが11/28~今日までが8日という計算でしょうか?
はい。下に示しますように『今日』を対象に計算する式として作成してしまいましたので、12/5(=本日)は11/27(=最終火曜日)から数えて8日目という意味になります。
(シートが自動計算の設定になっていれば、明日になると9と表示されるはずです)

私の勝手な勘違いだったかもしれませんが、「今日が月末火曜日から何日目かを計算する」関数式として考えていましたが、対象が「今日」とは限らなかったのでしょう...続きを読む

Qエクセルについて。

質問なのすが、連続するセル範囲にデータを入力する場合は、あらかじめセル範囲を選択してから
入力すると効率的です。とはどういうことでしょうか?
教えていただけると幸いです。大変恐縮ですが。

Aベストアンサー

Enterキーを押すと、選択した範囲のセルにのみ移動する。

A1セルからB5セルまで選択したとすると、
A1セルが入力可能な状態になりますが、ここでEnterキーを5回押すと、
 A2セル
 ↓
 A3セル
 ↓
 A4セル
 ↓
 A5セル
 ↓
 B1セル
と、A5セルの次にA6セルではなくB1セルが入力可能な状態になる。

離れた範囲を選択する(Ctrlキーを押しながらマウスでセルまたは範囲を選択)すると
選択した順に入力可能なセルを移動する。
A1セルからA2セル、D1セルからD5セル、C1セルからC2セル、の順に選択したとすると、
C1セルが入力可能な状態になりますが、ここでEnterキーを5回押すと、
 C2セル
 ↓
 A1セル
 ↓
 A2セル
 ↓
 D1セル
 ↓
 D2セル
と、離れた範囲に入力可能なセルが移動する。

素直に試してみると良い。

QExcelのセル内文字の並び替えについて

Excelのセル内文字の並び替えについて質問があります。

セル内に名前のデータがカンマで区切られて入ってくるのですが、順番を変えたいのですが、どのような数式を使えばいいかご教示いただけませんか?

A1のデータをB1に変更できる数式はありますか?
A1=Last Name,First Name,Title 
B1=Title First Name Last Name

※A1ではLast Name First Name Titleの間にはカンマ(,)がありそれぞれの間にスペースはありません。
※B1では、可能であればそれぞれの間にスペースを入れたいです。

(例)
A1=Nihon,Hanako,Ms.
B1=Ms. Hanako Nihon

複数の処理するので、できれば数式をコピーしただけで出来るようにしたいのですが、どなたか教えてくださいませんか?

宜しくお願い致します。

Aベストアンサー

こんばんは!

手っ取り早くVBAでの一例です。
データはA列1行目からあるとします。

Sub Sample1()
 Dim i As Long, k As Long
 Dim myStr As String, myAry
  For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
   myAry = Split(Cells(i, "A"), ",")
    For k = UBound(myAry) To 0 Step -1
     myStr = myStr & myAry(k) & " "
    Next k
   Cells(i, "B") = myStr
   myStr = ""
 Next i
End Sub

※ 関数で出来るかどうか判りませんが、
考える気力がないのでVBAにしてみました。

どうしても関数でやりたい!という場合は、この質問限定の関数(ユーザー定義関数)を作成すれば
通常のワークシート関数と同じ使い方ができます。m(_ _)m

Q最小値だけを表示させる関数を教えて下さい。

下記のような表があります。1と2の関数を教えて下さい。minifsはバージョンがエクセル2013でも使用するため使用できません。よろしくお願いします。

1.ブロックAとBそれぞれの最小値だけが表示されるような関数

ブロック名  値  最小値
  A    10 
  A     3   3
  A    15
  B     1
  B     -5   -5
  B    10

2.ブロックA、Bそれぞれの一番最初の行に最小値を表示される関数
ブロック名  値  最小値
  A    10   3
  A     3  
  A    15
  B     1   -5
  B     -5   
  B    10

Aベストアンサー

できたけど、質問の通りの条件のみでの回答にまります。AとBしかない前提。

QExcelの計算のセル範囲をズラーっとコピーしたい。

=A2/A3
のような式をセル内に入力し、そのセルを下に伸ばすと
=B2/B3
=C2/C3
...
と式が自動で組み替えられてコピーされるのですが、それらを右に伸ばすと
=A3/A4
=B3/B4
...
と、どちらも右にずれます。私はA2やB2はそのまま、
=A2/A3 =A2/A4 =A2/A5...
という風にコピーしていきたいのです。どうすればいいのでしょうか?

Aベストアンサー

=A$2/A3

にしてからコピーして下さい。
「$」の付いた部分は固定されますので、
下にコピーすれば
=B$2/B3
=C$2/C3
...
右に伸ばすと
=A$2/A3 =A$2/A4 =A$2/A5...
と、望んだ結果になると思います。

QEXCEL

EXCELにおいてDOY(Day of Year)を求めたいです。
DOYとは、例えば、1月30日なら30、4月30なら120というふうに。
ここまでならネットにもやり方がのっているのですが今回は1月1日を基準に12月1日は-31、11月30は-32というふうに1月前を-という感じで表記したいのですが、なにかいい方法はありますか?

Aベストアンサー

対象の年の前年の12月31日を引けばいい。
そんだけ。

Excelの日付けは「シリアル値」になっています。
1900年1月1日 0時0分 が「1」
1900年1月2日 0時0分 が「2」
・・・
2018年11月27日 0時0分が「43431」
となっています。
従って、前年の12月31日のシリアル値を引けば、その年の日数になります。
ただしセルの表示形式を「日付」ではなく「標準」や「数値」にすることを忘れないでください。

A1セルに日付が入力されているなら

 =A1-(DATE(YEAR(A1)-1,12,31)
 =A1-((DATE(YEAR(A1),1,1)-1)
 =A1-(DATE(YEAR(A1)-1,1,1)+1

こんなんで十分。

Qエクセルの関数について

エクセルの関数の作成でご質問です。
例えば、エクセル表のA15のセルに、C3に表示した「〇」記号を読み取って、B4~B10の数字を加算したのを表示させる方法の関数を教えてください。

Aベストアンサー

=IF(C3="○",SUM(B4:B10),"")


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

人気Q&Aランキング