• 締切済み

エクセルで同じ文字列が連続する数

野球の球種で、連続する文字列が、 1 直球 カーブ 直球 直球 =直球2 2 直球 直球 直球 スライダー =直球3 3 スライダー スライダー 直球 直球 カーブ =直球2 スライダー2 4 直球 カーブ =0 5 直球 カーブ 直球 カーブ =0 とするような場合はどのような関数を使用すれば良いのでしょうか? ご教授願います!

みんなの回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 色々やり方はあると思いますが、一例です。 ↓の画像のようにSheet2を作業用のSheetとして使用します。 野球の球種のようですので、とりあえず一人最大20球まで対応できるようにしてみました。 まずSheet2のA1セルに =IF(Sheet1!A1="","",1) という数式を入れます。 次にSheet2のB1セルに =IF(Sheet1!B1="","",IF(Sheet1!B1=Sheet1!A1,A1+1,1)) という数式を入れ20球目のT1セルまでフィルハンドルでコピー 次にA1~T1セルを範囲指定 → T1セルのフィルハンドルでずぃ~~~!っと下へコピーしておきます。 このSheet2のデータを利用します。 最後にSheet1のU1セルに =IF(COUNTA($A1:$T1),IF(COUNTIF(Sheet2!$A1:$T1,">1"),IF(COUNTIF(Sheet2!$A1:$T1,MAX(Sheet2!$A1:$S1))<COLUMN(A1),"","="&INDEX($A1:$T1,,SMALL(IF(Sheet2!$A1:$T1=MAX(Sheet2!$A1:$T1),COLUMN($A1:$T1)),COLUMN(A1)))&MAX(Sheet2!$A1:$T1)),IF(COLUMN(A1)=1,"=0","")),"") これは配列数式になりますので、Ctrl+Shift+Enterで確定! この画面からコピー&ペーストする場合、 上記数式をドラッグ&コピー → U1セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま) Ctrl+Shiftキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 このU1セルを列・行方向にフィルハンドルでコピー! これで画像のような感じになります。m(_ _)m

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

まあ、やり方はいくつもありますが・・・とりあえず!(長いですけどw) 関数の前に、質問者さんが紙の上で一つずつ行うとしたら、どんな手順で行うかを考えてください。 例えば、 >1 直球 カーブ 直球 直球 の場合、 まずは一つ目の「直球」の次に何があるかを確認しますよね。 この場合、「カーブ」ですので連続していません。連続0 次に二つ目の「カーブ」の次に何があるかを確認しますよね。 この場合、「直球」ですので連続していません。連続0 次に三つ目の「直球」の次に何があるかを確認しますよね。 この場合、「直球」ですので連続しています。連続1 更にその次に何があるのかを確認しますよね。 この場合、何もないので連続していません。連続1止まりです。 次に四つ目の「直球」の次に何があるかを確認しますよね。 この場合、なにもありませんので連続していません。連続0 この中で一番連続数の多いのは「直球」が1回連続した場合ですので 表示は「直球」1回連続(直球2) のようになると思います。 同じ文字列が並んでいることを調べるために、とにかく隣の値と比較することを行わなければなりません。 これをひとつずつExcelの表記に直せばOK。 当然、作業用のセルを設けて順序立てて考えましょう。 そんなこんなで、自分なら次のようなアルゴリズムで考えます。  右隣が同じ文字列でなければ0を立てます。  右隣が同じ文字列なら1を立てます。  さらに前の検査で立てた左の数値との和を取ります(足すってこと)  これを必要数繰り返します。  最後に一番大きな数値になっている文字列が何かを検査して表記します。 B1セルから球種が横に書かれていて、その下の行を作業セルとするなら B2セルに  =IF(B1=C1,1+A2,0) のように関数式を入力して、E2セルまでコピーします。 そしてA1セルに結果を返す関数式を  ="=" & INDEX(B1:E1,MATCH(MAX(B2:E2),B2:E2,0)) & TEXT(MAX(B2:E2),0) のように入力します。 (何をしているのか、よく確認してください。MATCH関数で最大数が左から何番目にあるかを調べてINDEX関数で対応する文字列を検索・・・ってね。) ちなみにこれ、空白も文字列として検出しますので、思ったような結果が出ない可能性があります。 また同じ連続数の文字列を複数検出することはできません。 そこのところは質問者さん自身で考えるか、もっと効率の良い回答を待つか、面倒だから目で見て手で記入するかを選んでください。 考え方は示しましたので、連続した最大数が二つ以上ある場合について自身で考えてみることを強くお勧めします。 (そうすることで、いろいろなケースでも自身で答えを導き出せるようになります)

関連するQ&A

  • Excel 特定の文字列が連続で続いたら非表示

    セル内の特定の文字列が2個以上連続してる場合、連続している文字列を非表示にしたい。 セルに横一列にデータを入力し、=C2&","&D2&","&E2&","& ,,,,, 横の列にはデータを","を入れて文字列を結合したセルを表示させます。 例 データの文字列が1 2 3 4 5と入力されていたら 1,2,3,4,5,,,, と表示され複数セルの入力された文字列が結合した形で表示されます。 これを 1,2,3,4,5 とカンマ","が2個以上連続したらデータの(この場合5)後ろの連続しているカンマを非表示にしたいです。 Excelは2016で、使用できる関数が限られています。 この場合、他の関数の組み合わせで1,2,3,4,5と連続するカンマを非表示にする方法はありますでしょうか。 Excelのシートは添付画像の通りです。 詳しい方いましたら、ご教授下さい。 よろしくお願い致します。

  • 変化球取得について

    私は現在大学で軟式野球をしている者です。 私は野手なのですが、来季から投手を兼任する可能性がでてきました。フォームの研究も同時進行なのですが、できる限り準備しておきたいので、このオフの時期に球種を増やしたいと思っています。 現在の球種はクセ球のカーブのみです。このカーブは直球より少し遅い程度の球速で、縦の変化が少ないものです。 スライダーの取得を奨められましたが、スライダーは過去の経験から、ミートされれば下手をしたらホームランになる球種、というイメージが強く残っているのであまり使いたくありません・・・他になにかいい球種はないでしょうか? ちなみに直球の球速は最後に計ったのが小学校の時なので分かりません; どなたかアドバイスをお願いします。

  • 文字列が連続しているかどうか調べたいのですが、良い方法はないでしょうか

    文字列が連続しているかどうか調べたいのですが、良い方法はないでしょうか? ExcelVBAです。 例えば"abc12saaa"などと文字列があって、4文字以上同じ文字が連続したいるか、4文字以上順番になっている文字があるかを調べるにはどのような方法があるでしょうか。 順番になっている文字とは"abcde"とか"1234"のようなものです。 1文字ずつ取り出して比較したり、1文字ずつAsc関数で数値化すればできるとは思いますが、スマートな方法、既存の関数とかないでしょうか。 よろしくお願いします。

  • Excel 2つの数字と文字列を含む連続データ

    1セル内に2つの数字と文字列を含む場合の連続データの作成方法を教えてください。 下記のような連続データを作成したいです。 関数は使用せずに、連続データの作成もしくはオートフィルを使用した場合作成可能でしょうか。 可能な場合方法を教えてください。 1名1室 1名2室 2名1室 2名2室 3名1室 3名2室 4名1室 4名2室 ・ ・ ・ Excel2010を使用しています。 以上、よろしくお願いします。

  • 野球では殆どの投球は直球とカーブなのですか

    野球では、ほとんど直球とカーブしか投げられないのでしょうか。 その他の球種をピッチャーが投げるのは、たまにしか無いのでしょうか。

  • Excel 関数:連続した文字列の数の集計方法

    Excelであるデータの統計を取っており、連続した文字列(○)の数を出して比較したいと考えております。 最終的に以下のようなデータが欲しいと思っております。 2連続:100回 3連続:80回 4連続:50回 (例)※ハイフンは空白のセルになります。 ○ ○ - ○ ○ ○ - ○ - ○ ○ - ○ - ○ ○ ○ - ○ ○ ○ ○ 上記の場合ですと、最終的に得たい情報は、 2連続:2回 3連続:2回 4連続:1回 5万行ほどあり、関数を用いてデータを集計したいと思っております。 どなたかご存知でしたら教えて頂けますでしょうか。 宜しくお願い致します。

  • 16進数の文字列

    16進数の文字列をそれと同値な整数値へ変換する関数をかけという問題なのですが、 この場合文字列を読み込んで、例えば読み込んだ値がABだとした場合、 A*16の1乗+B*16の0乗 を計算する関数を作ればよいのだと思うんですが、 それぞれの値をべき乗する関数も必要になってくると考えています。 そこで問題なのですが、べき乗の関数を作ったとして、それぞれの値(こんかいはAとB)にそれぞれのべき乗した値をかけてやるには、どういった方法があるのでしょうか? 回答よろしくお願いします。

  • 連続する文字列を検索するには

    教えてgooで連続する文字を検索するにはどうしたらいいのでしょうか? 例えば教えてgooで「連続する文字」と検索すると、今現在では「textの連続記入」、「画面の文字をキャプチャし、クリップボードに退避してくれるツール」、「絶版商品、だけど好きだった。 」……という質問が検索されます。これらの質問を見ても「連続する文字」という文字列は見当たりません。どうやら、その結果検索されるのは「連続」、「する」、「文字」が文中などにある質問が検索されるようです。でも、私は「連続する文字」という文字列がある質問を検索したいのです。 こういうのは無理なのでしょうか?

  • ExcelでURL文字列を連続して挿入させたい

    Excelで、A1、A2、A3と連続して、URLの文字列が入っていて、 B1に、イメージを挿入するHTMLタグ<img src="">があり、 <img src="A1"> <img src="A2"> <img src="A3"> のようにURL文字列をB1に挿入させたいのです。 自分で試しましたところ、 =CONCATENATE("<img src=""", A1, """>")でしたら、1個はできますが、 <img src="A2"> <img src="A3">というように、連続してB1内に挿入する事ができません。 どのようにすれば良いか関数を教えていただけないでしょうか。 よろしくお願いいたします。

  • EXCELで、連続した文字列の配列

    EXCEL初心者がちょっとしたデータをEXCELで 扱おうとして、さっそく問題にぶちあたりました。 連続した文字列の配列に関してなんですが、 “1年後”、“2年後”、“3年後”。。。。 という感じで“~年後”を100年後くらいまで作りたいので オートフィル?利用としています。 参考にしてるページ(http://www.eurus.dti.ne.jp/~yoneyama/Excel/nyuryoku.htm) の下の方に 「文字列に数字が含まれるものも連続した値が入力できます。(登録の必要はない)」とあるので “1年後”と入力した後にそのセルの右下黒十字をドラッグすれば できるのかなと思いきやできませんでした。 どうやって連続した文字列を作ればいいでしょうか? 質問がわかりにくかったら申し訳ありません、 わかりにくい点を言ってただけたら補足したいと思います。 どうかよろしくお願いします。

専門家に質問してみよう