[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『部分一致のデータを集計したい』(リリ)
例)44EC-15565-04 という様なID番号が2000件程入力されているExcelシートがあります。
この中から別エクセルシートにある同形式のIDと一致するものが何件あるのか
カウントしたいのですが、1つ問題があります。。。
全く同じデータだけでなく、44EC-15565-××という感じで下2桁以外が合っていたら
コレを一致とみなしたいのです。
カウントするのは2000件のデータが入ったシートのIDが入っている列の隣列に
一致していたときは「1」等フラグを立てたいと思っています。
初歩的な事ですみません。お知恵を拝借できないでしょうか。
下2桁を除いた文字列は、=LEFT(A1,LEN(A1)-2) といった数式で取得出来ます。2つのシートに 作業列を作ってIDの下2桁を除いた文字列を取り出し、これを COUNTIF関数で、件数を算出します。(純丸)
純丸さま ご回答ありがとうござます。
また、追加で質問があります、。
データ形式が44EC-15664-04 などだけかと思い込んでいたのですが
同時に「05A000004-001」という形式もありました。。。
なので「05A000004-×××」も該当している場合はカウントする必要があります。
これも同時に判別するにはどうしたらよいでしょうか。
質問の仕方に問題がって大変すみません。
-の位置で判断したら、いいんじゃないの?? =LEFT(A1,FIND("-",A1)) あっ!失礼!途中にもあったのね( ̄□ ̄;)!! v(=∩_∩=)v (SoulMan)
LEFT(A1,COUNT(INDEX(FIND("-",A1,ROW($A$2:$A$99)),))) パクリ (川野鮎太郎)
お詫びに↓こちらが参考になるかと思います。 右から見て特定の文字以降を削除します。 v(=∩_∩=)v (SoulMan) [[20041008174157]]『指定した文字以降を抜き取る』(てい)
-は含ませておくんだったですね。 =LEFT(A1,COUNT(INDEX(FIND("-",A1,ROW($A$1:$A$99)),))) です。 (川野鮎太郎)
川野様 SoulMan様 ありがとうございます。
なお =LEFT(A1,COUNT(INDEX(FIND("-",A1,ROW($A$1:$A$99)),)))
のROW($A$1:$A$99) はいったい何をしているのでしょうか? すみません。あまりに初心者で。。
ROW(A1) は A1の行のことで 1 ROW(A99)は A99の行のことで 99 です。 FIND("-",A1,ROW($A$1:$A$99)) で A1の文字の1文字目から-の文字の位置を 1,2,3,4,5,6・・・・・文字番目から検索しているわけです。 仮に AAA-AAA の文字で-を検索すると、4文字目からの右側に-が無いので検索はエラーになるのです。 そのエラーを利用して文字を抽出しています。 LOOKUPさんのパクリですが(^_^A;
(川野鮎太郎)
川野様
度々すみません。
ROWが行の関数という事はご説明から理解できたのですが
この関数を含むセルでカーソルを合わせるとROW($A$1:$A$99)の部分が
緑色になりました。でその際A1〜A99までのセルが緑枠に
囲まれるのですが、これは行ではなく 列を対象とした記述に思えてしまいます。
と一方でこの式で目的を達成できてもいるので何でできるのかが
わからない。。と なぜなぜ君にも程がありますが
どうか教えてください。
本当にすみません。
このレスを見逃していました(^_^A; ROW($A$1:$A$99)の部分ですが、-を1文字目から検索させるための配列にするためですから、 別にどのセルでも良いんですよ。 ROW($Y$1:$Y$99)でもCOLUMN($A$1:$CU$1)でも計算結果は同じってことです。 ただデータがA列にあるのだろうと言うことで、ROW($A$1:$A$99)にしているだけです。 本題ですが、ROW($A$1:$A$99)の部分を分解(?)すると、{1;2;3;4;5;6;7;8;9;10;11;12;13;14;・・・・・・・98;99} となります。 この順番の数値を利用して、FIND関数で-を検索させているのです。 う〜ん(/-_-\) やはり説明苦手_/ ̄|○ il||li (川野鮎太郎)
リリ
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.