マクロ初心者です。
IF複数条件についてお聞きしたいのですがよろしくお願いします。
■内容■
E列に入っているデータをF列に条件出力するマクロを作成したいです。
その際、指定したコード(全50条件:01A~50X)以外を全て「その他」にしたいのですが可能でしょうか?
<マクロ>
ActiveSheet.Range("F2:F50").FormulaR1C1 = _
"=IF(OR(RC[-1]=""01A"",RC[-1]=""02B"",RC[-1]=""03C"",RC[-1]=""04D""・・・・・・・,RC[-1]=""50X"",RC[-1]=""""),RC[-1],""その他"")"
■問題■
・条件が50個とたくさんあるためうまく処理されません。条件に上限があるのでしょうか?
・プログラムが長いのと見やすくするため改行をしたいのですが、エラーになってしまいうまくプログラム文中の改行ができない。
何回か試行錯誤してみましたがうまくいきませんでした。
どなたか分かる方がいらっしゃいましたらご助言いただきたいです。
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
セル式の長さは1024文字までと言う制限があります。
コレに引っかかっていませんか?また、50個の条件式が並んでいたら見づらくって仕方が無いように思えます。
それよりは、50個のコードを作業列(例ではA列)に入れ、E列の各行の値がA列に無ければ「その他」と表示し、あればE列の値をそのまま表示する方が良いと思います。
つまり、この様な式を埋め込んでいくわけです
=IF(ISNA(MATCH(E2,A:A,0)),"その他",E2)
マクロにするとこんな感じです。
ActiveSheet.Range("F2:F50").FormulaR1C1 = "=IF(ISNA(MATCH(RC[-1],A:A,0)),""その他"",RC[-1])"'<- A列にコード一覧が記載されている事
ActiveSheet.EnableCalculation = True '<- 再計算してくれない場合はこの1行もいれる
条件式がかなり長かったので制限にひかかっていたと思います。
同じ値ならその値を返し、違う場合は「その他」を返す。
と言った処理の方がスマートですね。
教えていただきました式を入れてみたのですが・・・
=IF(ISNA(MATCH(E2,A:A,0)),"その他",E2)
違う値の場合に「その他」が反映されず、「0」が反映されて
しまいました。
A列にはコード一覧は入っている状態なのですが、どうしたら良いでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELにて複数列を同条件(色)...
-
最終行から上10行をコピーする...
-
エクセルの関数について(日付で...
-
一行おきにコピーするマクロが...
-
Excelの非表示列も含めてコピー
-
【Excel-マクロ】グループとア...
-
エクセル 特定の文字の間を抜...
-
2つのセルの入力忘れ防止の警告...
-
Excelのマクロで不規則に連番を...
-
エクセルで素因数を数える
-
エクセルで空白以外のセルの値...
-
エクセルで行挿入した際、自動...
-
エクセルでマクロを使った特定...
-
エクセル マクロ 貼り付け先が...
-
令和三年六月二七日
-
【Excel】複数条件でのLookup
-
エクセル VBA 指定の範囲内をコ...
-
エクセルのマクロ、AVERAGEIFを...
-
シート保護の状態で行の追加を...
-
エクセルマクロ 特定の文字列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一行おきにコピーするマクロが...
-
EXCELにて複数列を同条件(色)...
-
Excelの非表示列も含めてコピー
-
シート保護の状態で行の追加を...
-
エクセルの関数について(日付で...
-
エクセルで空白以外のセルの値...
-
エクセルで表示された値だけ行...
-
エクセル VBA 指定の範囲内をコ...
-
エクセルで行挿入した際、自動...
-
エクセル マクロ 貼り付け先が...
-
エクセルで反転コピー
-
特定の桁数を抽出
-
[Excel VBA]空白セル以外に連番...
-
エクセルのマクロ、AVERAGEIFを...
-
エクセルVBA 複数列をコピーす...
-
Excel VBAで日にちを入力して線...
-
マクロ初心者です、小数点6桁で...
-
行数が不規則な一週間ごとの合...
-
最終行から上10行をコピーする...
-
エクセルでマクロを使った特定...
おすすめ情報