- ベストアンサー
この数式(関数)の内容を教えて下さい
お早うございます。いつも、お世話になっております。実は、このOKWaveサイトでエクセルの表の仕分けについて質問しました。皆さまに、懇切丁寧に教えて頂き、つい先ほど何回も繰り返し読み返し作業した結果、無事、一番やりたかったことが出来ました。そこで、今後、エクセルをもっと使いこなせるように、二人の方に回答頂いた次の数式(関数?)は、どういう事を、表しているのでしょか?また、これに関しては、どのサイトで勉強すればいいのでしょうか?教えて下さい。 まず、下記の数式です。 =IF(ISNUMBER(B1),B1,TRIM(B1)) 次に下記の式です。これは、2段階で作業するように指示されました。 (1)まず、を入力する。 =IF($A2=D$1,COUNTIF($A$2:$A2,D$1),"") (2)そして、下記を入力する。 =INDEX(Sheet1!$B:$B,MATCH(ROW(A1),Sheet1!D:D,0)) どうぞ、今後の勉強のため宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。うまくいったようで何よりです。 No.1さんのおっしゃるとおり、ヘルプを参照するのが手っ取り早いと思います。関数が複雑に組み合わさったものは、ツール→ワークシート分析→数式の検証が役に立つと思います(Excel2002以降)。あとは、相対参照と絶対参照の使い方でしょうか。 1)=IF(ISNUMBER(B1),B1,TRIM(B1)) TRIM(文字列):不要なスペースを削除します。 ISNUMBER(テストの対象):セルの内容が数値のときにTRUEを返します。 要するに、数値はそのまま、数値以外(文字列)はスペースを削除、という操作を行っています。数値にTRIM関数を用いると文字列になってしまうので。 もし数値が文字列になってもよければ、=TRIM(B1)でOKです。 自分のではないですが、残りの数式も簡単に…。 2)=IF($A2=D$1,COUNTIF($A$2:$A2,D$1),"") 1行目にある項目をA列と比較します。A列と合致したものに、上から順に番号を振ります。番号は今までに出てきた回数(自身を含む)と同値なので、COUNTIF関数で求められます。 3)=INDEX(Sheet1!$B:$B,MATCH(ROW(A1),Sheet1!D:D,0)) 式2)でD列に番号が振られましたので、1行目では1、2行目では2…を検索して、対応するB列のデータを返します。式3)を何行目に入力するとしても、ROW(A1)はそのままです。式2)と合わせると、1行目の項目に対応するB列のデータを上に詰めて表示することができます。
その他の回答 (2)
- mshr1962
- ベストアンサー率39% (7417/18945)
=IF(ISNUMBER(B1),B1,TRIM(B1)) これはISNUMBERでB1が数値か文字かを判断、数値ならTRIMで文字にする。 ただし、TRIM自体は文字の前後のスペースを消去する関数ですので =TRIM(B1) でも同じ結果に近いと思います。 =IF($A2=D$1,COUNTIF($A$2:$A2,D$1),"") A2とD1が違うなら空白、同じ場合はA2から数式のある行でD1の件数を表示 =INDEX(Sheet1!$B:$B,MATCH(ROW(A1),Sheet1!D:D,0)) Sheet1のD列が、この式のある行番目の数値のB列の値を表示します。 それぞれの式がどのシートのどの列かが分からないので正確にはわかりませんが Sheet1のA列が特定の値の内容をSheet1のB列に複数行表示させるための数式だと思います。
お礼
さっそくの回答、有難うございました。成程、そういう意味だったんですか。良く解りました。これで、この件に関しましては、すべて理解することが、出来ました。本当に有難うございました。
- fujillin
- ベストアンサー率61% (1594/2576)
直接の回答ではありませんが・・・ これから勉強なさるつもりであるならば、手始めにエクセルのヘルプでご質問の関数を一つづつ調べてみることをお勧めします。 多分、一読しただけではわからないものもあるかもしれません。 手元にエクセルがあるでしょうから、それぞれの関数をいじくって見て、どういう結果が出るかを見ているうちに、ヘルプだけではわからないものでも理解できるようになりますし、それが将来関数を利用する時の練習にもなってきます。 また、エクセルの関数などの利用を解説しているサイトや書籍も多数ありますので、そういうものを利用して知識を得ることも有用でしょう。 俗に、簡単に得られる知識は身に付かないともいいますし・・・
お礼
回答有難うございました。解りました。おっしゃる通り、ヘルプを良く読んで理解するようにします。有難うございました。
お礼
こんにちは。cafe.au.laitさん本当に前回といい今回もまた、ご親切な回答有難うございました。心から、お礼申し上げます。重ね重ね本当に、有難うございました。