• 締切済み

A列からH列に何らかの文字が入っているので、5個目されているセルを探し

A列からH列に何らかの文字が入っているので、5個目されているセルを探して、 その日付(1行目)を結果としてI列に表示したいです。 MATCH関数を使用してみたのですが、うまくいきません。 何かいい関数はありますでしょうか。よろしくお願いいたします。 ※office2007を使っています。

この投稿のマルチメディアは削除されているためご覧いただけません。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.7

#6です。 配列数式というものになるが 例データ - 8月1日 8月2日 8月3日 8月4日 8月5日 8月6日 8月7日 8月8日 2010/8/5 a a - a a a a 2010/8/5 a b b b - b 2010/8/5 a a a a a a a 2010/8/5 a - a a a - a A2の式は =INDEX($B$1:$I$1,SMALL(IF(B2:I2<>"",COLUMN(B2:I2),""),5)-1) と入れて、SHIFT,CTRL、ENTERの3つのキーを同時押しする。 A2の式を下方向に複写する。 A列の書式は日付に設定すること。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

こういうタイプの問題(何処に5番目があるか浮動的な問題)は関数では苦手。 作業列を使うか、技巧的な難しい式を使わないとならない。 ーーー ユーザー関数をVBAで作ると 例データ -は空白セルを示す 原データはB-I列(質問例を変えた) ー 8月1日 8月2日 8月3日 8月4日 8月5日 8月6日 8月7日 8月8日 ー a 2010/8/6 a a a ー a a 2010/8/7 a ー a a ー a a 2010/8/5 a a a a a ー a ー a a a 2010/8/6ー ー a a a a a 2010/8/5 a a a a a a a ーー A2の式 =IF(banme(A2)=0,"",INDEX($B$1:$H$1,1,banme(A2))) banme(A2)の部分がユーザー定義関数。データが5個以内のときは0を返すようにしている。 A列で式を縦方向に複写 -- ユーザー関数は 標準モジュールに Function banme(a) n = 0 For i = 2 To 8 If Cells(a.Row, i) <> "" Then n = n + 1 If n = 5 Then banme = i - 1 GoTo ext End If End If Next i banme = 0 ext: End Function

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

例えば1行目で日付のセルがC1セルからI1セルまであるとします。 そこで作業列としてL1セルには =C1 の式を入力してR1セルまでオートフィルドラッグします。 L2セルには次の式を入力してR2セルまでオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF($A2="","",COUNTIF($C2:C2,"*?")) その後にB2セルには次の式を入力して下方向にオートフィルドラッグします。 =IF(A2="","",IF(MAX(L2:R2)>=5,INDEX(L$1:R$1,MATCH(5,L2:R2,0)),"")) B列のセルの書式設定から表示形式で日付を選べばよいでしょう。 なお、L列から横の列が目障りでしたらそれらの列を選んで右クリックし「非表示」にすればよいでしょう。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 今仮に、元の表が表示されているワークシートをSheet1と仮定して、Sheet2を作業用シートとして使用するものとします。  まずは、Sheet2のC2セルに次の数式を入力して下さい。 =IF(Sheet1!C2="","",COUNT($B2:B2)+1)  次に、Sheet2のC2セルをコピーして、Sheet2のC2~I4の範囲に貼り付けて下さい。  次に、Sheet1のB2セルに次の数式を入力して下さい。 =IF(MAX(Sheet2!2:2<5,"",INDEX($1:$1,MATCH(5,Sheet2!2:2)))  次に、Sheet1のB2セルをコピーして、Sheet1のB3セルとB4セルに貼り付けて下さい。  以上で完成です。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

B1=IF(COUNTA(C2:T2)<5,"",INDEX($A$1:$T$1,SMALL(INDEX((C2:T2="")*10^5+COLUMN(C2:T2),),5))) ★下にコピー ◆式の中の範囲は実際に合わせて変更してください

noname#204879
noname#204879
回答No.2

外国人の方でしょうか、日本語が大変お上手ですが、一部に頓珍漢な表現があります。 複数のシートを利用する方法をご紹介しておきます。 Sheet1 にお示しのデータがあるものとします。 1.Sheet2 のセル C2 に式 =Sheet1!C2<>"" を入力して、此れを右方   に(セル I2 まで)ズズーッとドラッグ&ペースト 2.Sheet2 の範囲 C2:I2 を下方にズズーッとドラッグ&ペースト 3.Sheet3 のセル C2 に式 =COUNTIF(Sheet2!$C2:C2,TRUE) を入力   して、此れを右方に(セル I2 まで)ズズーッとドラッグ&ペースト 4.Sheet3 の範囲 C2:I2 を下方にズズーッとドラッグ&ペースト 5.Sheet1 のセル B2 に次式を入力して、此れを下方にズズーッとドラ   ッグ&ペースト   =IF(ISERROR(MATCH(5,Sheet3!C2:I2,0)),"",INDEX(C$1:I$1,MATCH(5,Sheet3!C2:I2,0)))

  • prius770c
  • ベストアンサー率35% (91/258)
回答No.1

う~ん、日本語が分からないです・・・すいません。 >5個目されているセルを探して、 これは誤変換でしょうか? >その日付(1行目)を結果としてI列に表示したいです。 I列は8/7日ですがB列の誤りですか? 良く分かりませんが、進捗度を管理する帳票である進捗度以上でかつ最新日付をB列に表示したとか そんな感じですかね?

関連するQ&A

  • 列にある指定文字のその行の指定文字の合計数

    ExcelでセルH1文字"う"がA列の文字とマッチした文字"う"の行B3:F3の文字"A"のみを合計しセルI1に数値3をつづいてH2文字に対してI2にA列文字"こ"の行"A"の合計数を入力したくI列に入れる関数をどなたか解る方宜しくお願いします。

  • 範囲内である文字列が含まれていたら,違うセルに表示させる

    A4:A10という範囲(同じ行)の中に,ある文字列が含まれていたら,違うセルに○と表示する,それ以外は空欄という式をつくるにはどうしたら良いでしょうか。 文字列は同じ行の中で同じ文字が1回以上登場することはありません。 A B C あ い う か き く・・・ D E F い え お き く こ・・・ G H I う お い こ け き・・・ 1行目の文字列(あいうかきく)の行の中に「あ」が含まれていたらAセルにアと表示し, 3行目文字列(うおいこけき)に「う」があったらIにウと表示する。それ以外は空欄。 アルファベットのセルには色をつけたりといった書式条件ではなく特定の文字列を表示させたいです。 「IF(B42="あ","ア",""」の場合,B42のセルの中身が「あ」だったらアと表示する,それ以外は空欄。という意味になりますでしょうか? これで,B42セルだけではなくB42:B50という範囲の中に「あ」という文字列があったら…と思いましてご相談です。宜しくお願いします。

  • 特定の文字を含むセルを探して別セルに表示させたい

    望んだ結果にならず困っています。 ご教授お願いします。 A列にいくつかの文字の入ったセルが並びます。 B1に探したい文字が入ります。 C1にB1に入れた文字を含むセルをA列から探し出し、表示させたいです。 A列の文字は重複しません。結果は必ず1個です。 A列は行数が10行~15行で変動します。 B1に入る文字は、A列のセルの一部です。 B1の文字が文字の一部なので、具体的に関数に探す文字を「*つてと*」と 入れてしまってもいいのですが、探す文字をセル指定(B1として) でできれば、より希望に沿うものとなります。 検索するセルが2個程度なら、望む結果が出せるのですが 複数のセルから探し出して、指定のセルに表示させるというのが どうもうまくできません。 よろしくお願いいたします。

  • 列と行にある指定文字が一致したセルの一行下の値

    表2セル"A"を表1B列から探し同行にある"合計"という文字の1行下の数値及び2行下の数値を表2のH4,H5セルに入力し同様に"B","C"に対しても行いたいのですがどなたか関数が解る方よろしくお願いします。環境はoffice2019です。

  • 1)A列 A4からA55まで、数字のデータが入ってるセルと、入ってない

    1)A列 A4からA55まで、数字のデータが入ってるセルと、入ってないセルがあります。 2)B列もA列同様、B4からB55まで、数字のデータが入ってるセルと、入ってないセルがあります。(データの入ってる行は、A列で入っていれば、B列の同じ行に入っています) 3)A列とB列のデータの入っている行を順番に4から55行まで、掛け算をして(例えば、A5*B5)、その4から55行まで合計を、H2に入っている、ほかの合計の数値で、割り算をする計算式をK2のセルに、一つにまとめて入れ、計算結果を表示したいのです。 検索で参考例を探したのですが、見当たらなかったので宜しくお願いいたします。

  • セル内の文字列に複雑な処理をしたい

    セルの中の複数の異なる文字列を以下のように処理したいのですが、Excelの標準の文字列操作の関数で試行錯誤してみたのですが、どうもうまくできませんでしたので、ご存知の方がいらっしゃいましたらご教授ください。VBAで処理しないとできないかもしれませんがよろしくお願いします。 あるリストのC列に備考欄が設けてあり、次のようなデータが入っています。 4/30 みかんを買った(強制改行して) 5/1 りんごを売った 5/2 ぶどうを食べた 5/5 すいかを買った このセルを調べて、 (1) セル内に"みかん"と"りんご"という文字列があったら、これを取り出して、右隣のセルに表示           (結果)⇒ みかん りんご (2) セル内に"みかん"と"りんご"という文字列があったら、これを"A","B"に置き換えて、右隣のセルに表示          (結果)⇒ A B (3) セル内の数値データと"を食べた"、"を買った"、"を売った"を取り除いて、右隣のセルに表示          (結果) ⇒ みかん りんご ぶどう すいか   (4) セル内に"か"を含む文字列があったら個数に関係なく"A"に置換して右隣のセルに表示             (結果) ⇒ A   すべて取り出したい文字列(上の例ではみかん、りんご)や置換したい文字列(A、B)以外の文字列は全てクリアして表示しないようにします。少し複雑ですが、やり方をご存知の方がいらっしゃいましたら、お教えください。

  • セル内の文字列操作について

    Excelでセル内の文字列を操作したいのですが、Excelの標準の関数では出来そうにないので、どなたかお力をお貸しください。 1つのセル内に、文字列や数値が複数入っています。 (例) Excel 12 りんご Word 11 このセルを調べて、数値のデータが複数入っている場合、最大値のみを表示させ、残りの数値データは削除したいのです。 (結果) Excel 12 りんご Word この処理の対象はセル内の数値データであって文字列には作用させず、結果的には文字列はそのまま表示させたいのです。 Excelの文字列に関する関数を調べてみたのですが、該当するものがなく、VBAを使用しなくてはならないのかもしれません。処理するデータが大量なため、VBAマクロなどで処理できれば大変ありがたいのですが、どなたかご存知の方がいらっしゃいましたら、ご教授くださいませ。どうぞよろしくお願いいたします。

  • エクセルで同行セル内の文字列のマッチ数

    ■ABC(本番はABCDEFGH)セルに上記のようなスペースで区切られた文字列が入っています。 ■要望 行単位でABCセルを比較してマッチする文字列の数をD列に表示したい。 数値の内容をE列に表示してどのキーワードで何文字ヒットしたか表示したい。 同じ行のセル同士でマッチ数を計測し、内容が近しいものを抽出したいと考えております。 ■条件 同じセルに同じ文字が入っていた場合は1つと考える。 E列の表示方法は文字列ごとに次の列に表示してもよい。

  • エクセルでA1のセルの文字とB1のセルの文字をくっつける方法

    たとえばA1のセルに「田中」という文字が入力されていて、B1のセルに「太郎」という文字が入力されているとします。 これをC1のセルに、A1セルとB1セルの文字をくっつけて「田中太郎」という文字を表示させたいのですが、関数か何かを使用してこういったことはできませんでしょうか? ちなみに、A列及びB列セルに文字が200個くらい入力されているので、コピーペーストでは辛いんです。

  • セル内にある文字の個数を知りたい

    エクセル2002を使用してますが、セル内にある文字の個数を知りたいとき、どのような関数を使えばいいのでしょうか? たとえば、A1に「ABCAABACABAC」 という文字列があった場合、Aの個数を知りたいのです。 このとき結果をB1で表示させるにはどうすればいいのでしょうか? よろしくお願いします。

専門家に質問してみよう