Excelの関数を用いて以下のような処理は可能でしょうか。
A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|
A|B|C|B|C|A|C|A|B|B|C|A|B|B|B|C|A|C|B|A|3|
セルA1からT1にはA,B,Cどれかの文字列が入っています。Aの文字列と次に現れるAの文字列との間にセルが3個以上あれば、U1のセルにその現れる回数が表示される。(上記の場合"3")
このようなことが、関数だけでできるでしょうか。
もしできるようでしたらそのやり方をご教授ください。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
VBAを使って、ユーザー定義関数を作れば簡単ですが、ワークシート関数だけを使うと下のようになりました。
作業用のセルを使っています。
セルV1 に探したい文字列を入力するとして、(例えばA)
セルE2:=IF(AND(COUNTIF($A$1:E1,$V$1)-COUNTIF($A$1:A1,$V$1)=1,COUNTIF($A$1:A1,$V$1)>0,E1=$V$1),1,0)
とし、セルT2までコピーします。
セルU1:=SUM(A2:T2)
A1:D1 はカウント対象外で、E1より右に対して、新たに探したい文字列が出てきたら、そのセルの4つ左までの探したい文字列の個数をカウントし、1つ少ないことを要件にしています。
No.3
- 回答日時:
◆関数による方法です
U3=SUMPRODUCT(N(FREQUENCY(IF((A1:T1<>"A")*(A1:T1<>""),COLUMN(A1:T1)),IF((A1:T1="A")+(A1:T1=""),COLUMN(A1:T1)))>=3))
★この式は「配列数式」です。式を入力後、Ctrl+Shift+Enter をおして、式を確定させてください。
★確定すると、式の両端に{ }がつきます。
SUMPRODUCTなんて関数初めてみました...Excelは奥が深いですね。おかげで何とかなりそうです。ありがとうございました。
No.1
- 回答日時:
関数だけで実現できました。
しかし、U3セルだけに式を埋め込んで実現するのは不可能では
ないと思いますが、とても難しいと思います。
私の場合は、別のセルにA1~T1セルを&演算子で結合した文字列を
作り、それに対してFIND関数を使って、"A"の文字列がある位置を
探しました。そしてそれぞれの位置の差を取り、3以上のものの
カウントを取りました。
この回答への補足
回答ありがとうございます。Kazaminさんのおっしゃるように、別のセルも使ってやれば実現可能のような気がしてきました。
私の説明がまずかったので補足します。セルにはABCどれかの文字列だけでなく、空白セルが入っている場合があります。そのような場合はどうするのが簡単でしょうか。文字列を結合するだけだと空白セルはカウントされませんよね?
また、説明を簡単にするために文字列にABCを使いましたが、実際には一つのセルに3~4文字程度の文字列が入ります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
- Excel(エクセル) エクセルの数式で教えてください。 1 2022/07/08 13:46
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/15 08:30
- Excel(エクセル) Excelについて質問です(ver2019) 1 2023/06/30 21:20
- Excel(エクセル) エクセルの書式設定の表示形式で設定した文字を文字列としてコピーしたい 1 2022/12/21 10:41
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelデータをコピペして、ペー...
-
スプレッドシート、Excelでの数...
-
エクセルの関数について教えて...
-
スプレッドシートで使う数式を...
-
Microsoft Officeの中古は信用...
-
エクセルで会社の従業員のデー...
-
Excelで50個のセルに同じ文字を...
-
エクセルの表で1年間の曜日を...
-
エクセルでの特別な文字を上に...
-
エクセルで不等号記号(≠)が上に...
-
エクセルでB列でフィルターをか...
-
エクセルでセルに標準で入力さ...
-
Excelで、項目の種類ごとにカウ...
-
【マクロ】アクティブセルにブ...
-
EXCELの質問です 119から足した...
-
【マクロ】アクティブセルの、...
-
【マクロ】アクティブセルの行...
-
エクセルの空欄をつめて、次の...
-
Excelの数式について教えてくだ...
-
非表示列の再表示に失敗
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報