- 締切済み
教えてください。
エクセルの行にいくつ同じ文字列があるのですが関数(LOOKUP)で先頭と最後尾にある文字を抽出して同じ行の違う列の数字を返したいのですがいい方法を教えてください。 ちなみに作っている表は、縦に日付、その横に場所です。表したいのは、○日~○日まで○場所 A B C D E F G H I 1 1 日 高知 高知 ○ 日 ~ ○ 日 2 2 日 岡山 3 3 日 高知 こんな感じですがこの○を表示したい。 わかりにくくてすみません
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- nishi6
- ベストアンサー率67% (869/1280)
算式はA~C列に100行としています。自由に調整してください。 セルD1 =INDEX(C$1:C$100,SMALL(INDEX((MATCH(C$1:C$100&"",C$1:C$100&"",)<>(ROW(C$1:C$100)))*9999+ROW(C$1:C$100),),ROW(A1)))&"" 下にコピーしてください。重複しないC列の文字列が出てきます。空白が出力されたらそこより下はデータはありません。算式はクリアしてください。E列より右のセルの算式もD列に依存します。D列と同じようにクリアしてください。 セルE1 =INDEX(A$1:A$100,MATCH(D1,C$1:C$100,0)) セルH1 =IF(MATCH(D1,C$1:C$100,0)=SUMPRODUCT(MAX((C$1:C$100=D1)*ROW(C$1:C$100))),"",INDEX(A$1:A$100,SUMPRODUCT(MAX((C$1:C$100=D1)*ROW(C$1:C$100))),)) C列の文字列は1回以上としています。2回以上は最後の日、1回は空白になります。 セルJ1 =COUNTIF(C$1:C$100,D1) 添付図のようになりました。当方Excel2010です。
- keithin
- ベストアンサー率66% (5278/7941)
D1に高知と記入 ○先頭の高知 E1: =IF(COUNTIF(C:C,D1),INDEX(A:A,MATCH(D1,C:C,0),"") ○最後の高知(ただし2件以上記入されていた場合) H1: =IF(COUNTIF(C:C,D1)>1,INDEX(A:A,MAX(ROW(C1:C99)*(C1:C99=D1))),"") と記入、必ずコントロールキーとシフトキーを押しながらEnterで入力 ○ご相談のサンプルでは忘れてるけど J1: =COUNTIF(C:C,D1)
お礼
ありがとうございました。 大変わかりやすくて作りやすいです。 またよろしくお願いします。