• ベストアンサー

エクセルのデータ処理

mitarashiの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

ユーザー関数を作成してみました。標準モジュールに下記のコードを貼り付けて下さい。 A1セルに目的の文字列がある場合、 =test(A1,3,4) または =test(A1,3) という様に式を入れます。置換する文字列数は1~2個まで対応しておりますが、オプション引数と、Ifの処理を追加してやれば、もっと増やせます。 Function test(targetString As String, Optional OPT1 As Long, Optional OPT2 As Long) Dim words As Variant Dim buf As String Dim i As Long words = Split(targetString, " ") For i = 0 To UBound(words) If i + 1 = OPT1 Then words(i) = "( )" If i + 1 = OPT2 Then words(i) = "( )" Next i buf = words(0) For i = 1 To UBound(words) buf = buf + " " + words(i) Next i test = buf End Function 実は、ユーザー関数でもOptionalキーワードが有効な事を初めて知りました。当方Excel2000での検証です。

ei60
質問者

補足

早々とご回答ありがとうございます。 当方、VBEに素人で、標準モジュールにコードを貼り付けて実行したものの何も起こりません。今まではいろんなデータ処理をユーザー関数を教えてもらってうまくいっていました。C1に=test(A1,3)を入れてあります。 操作のどこがおかしいのかわかりません。初歩的なことかと思いますが対処法をよろしくお願いします。

関連するQ&A

  • 英訳の問題です お願いします

    「カナダでは英語とフランス語の両方がはなされます。」 これを Both English and French are spoken in Canada. としたのですが。 模範解答では In Canada both English and French are spoken. となっていました。自分の解答では間違えでしょうか。 くだらない質問ですが。よろしくお願いします。

  • 問題 English and French __ in Canada

    問題 English and French __ in Canada. 以下より空欄に入るものを選び、その理由を説明せよ。 アspeak イspoken ウare spoken エare spoken by 正解は『ウare spoken』となり、 “英語とフランス語はカナダで話されています。” という訳になるのですが、 何故、そうなるのか? という理由が上手く説明出来ません。 なるべくスマートな説明文を教えて下さい! よろしくお願いします。

  • 中学英語の答え方

    中学英語で What's the language spoken in Canada? と過去分詞を使って聞いたら 答え方は It's English.又はEnglish. What language is spoken in Canada? と受動態で聞いたら English is. 又はEnglish.で良いでしょうか?

  • 過去分詞について

    お世話になっております。 以下の文についてお教え頂けないでしょうか。 Phrasal verbs are an important part of spoken and written English. (1) spoken and written Englishとなるのがどうもわかりません。 English spoken and written.とどうしてならないのでしょうか? 「話される、そして書かれる英語」となるように思えてならないです。 是非、 ご指導の程何卒宜しくお願い致します。

  • EXCEL VBA で データを集計したい。

    よろしくお願いします。 添付の資料の通り、データを格納しているシートがあります。 項目は、  ・処理日  ・科目  ・D列  ・E列  ・F列 とあったとし、抽出条件は、  ・処理日の範囲指定  ・科目の指定 としたいと思っています。 VBAで処理したいのですが、まずはEXCEL関数のDSUMを使用し、添付の通り指定して、 抽出されることを確認しました。 これと同様の抽出をVBAで行いたく、VBAでワークシート関数を使用するために、  Dim x As Variant x = Application.WorksheetFunction.DSum(Range(Cells(3, "A"), Cells(15, "E")), "D列", Range(Cells(3, "O"), Cells(4, "Q"))) とし、正しく値を取得することができました。 ですが、条件を指定する部分を、セルで指定するのではなく、例えば  "処理日" >= 20151001 and "処理日" <= 20151002 and "科目" = "01" のように、式をVBAで生成して作成したいのですが、方法はありませんでしょうか? ACCESSのDSUM関数のような記述ができませんでしょうか? お手数をおかけします、よろしくお願いいたします。

  • 自然な方

    カナダでは人々はフランス語を母国語として使う場所があると聞いた。 i have heard that in some places in Canada, people use french as a common language. i have heard that in Canada. there are some places where people use french as a common language. どちらでも通じると思うんですがどちらが自然な英語ですか?

  • エクセルの関数でのデータ処理が重い

    お願いします。 エクセルで2万件のデータを関数処理しています。時間がかかるのでVBAで処理できればと 考えています。 A列に当日の顧客コード B列に前日の顧客コード   以下の式によって、前日と当日を比較して増えた顧客と減った顧客を表示させています。 C列に=IF(COUNTIF(B$2:B$23000,A2)>=1,"","増")の関数が入っています。 計算させた後でC列をオートフィルタで増のみ表示し、確認。 D列に=IF(COUNTIF(A$2:A$23000,B2)>=1,"","減")の関数が入っています。 計算させた後でD列をオートフィルタで減のみ表示し、確認。 これをVBAで処理して時間の短縮をしたいのでお教え頂ければ幸いです。 宜しくお願いします。

  • 英語 文法 接続詞

    ・日本文の意味に合うように、(  )に適語を入れなさい。 (1)英語とフランス語の両方が、カナダで話されている。   (Both)Engish (and) French are spoken in Canada. (2)私たちは別の国々の出身だけれど、いい友達だ。   (  )we are from different countries, we are good friends. (3)甲子園は大阪ではなく兵庫にある。   Koshien is ( ) in Osaka ( ) in Hyogo. (4)海外に行く前に、少しお金を両替しておきなさい。   Change some of your money (before) you go abroad. (5)家に帰ってくるとすぐに、彼は寝てしまった。   (As) (soon) as he came home, he went to bed. 予想できたところには候補を入れてみました。 間違っている可能性大なので間違っている個所は添削、よろしくお願いします_(._.)_

  • 受動態から能動態に書き換えが理解できません。

    English is spoken in Canada ↓ They speak English in Canada. なぜthey が文頭にくるのか理解できません。 people や Canadian では誤りでしょうか ご指導お願いします。

  • Excell2002でのデータ処理

    Excell2002でのデータ処理に関数の使用を考えてます。 例えば、以下のようなデータがあります。 A列, B列 ,C列 1 , 10 ,  2 , 12 , 3 ,  8 , 10 5 , 15 , 8 8 , 20 , 9 , 18 , 10 , 16 , 20 ・ ・ (列がきれいに表示されてませんが!) A列は通し番号でありますが、中にはA列B列ともに同じ行で欠測値があります。 要はC列に「A列ー2の行」のB列の値を入れたいのです(上記C列参照)。 勿論B列に欠測値があるので該当する値がなければ「ブランク」とします。 ⇒C列にどのような関数を使えば良いのでしょうか? ⇒IF関数かとは思いますが・・・? ご教示ください。