- ベストアンサー
Excelマクロ 別セルの文字列を関数の条件部分に代入したい
Excelで、マクロを使い以下のようなことをしようとしていますが 煮詰まってしまい困っております。どなたかお助けいただけないでしょうか。 初心者ですので、勉強不足で申し訳ございません。 1. A列にずらりと語句が並んでいる(B列は数値のデータ) 2. C列にマクロでSUMIF関数を自動的に入れていく 3. 2のSUMIF関数の「条件」に、A列の語句を代入していく 4. 3の語句の前後にはワイルドカード「*」を入れる 5. 2~4を繰り返し、A列の語句の数だけB列に作成 具体的に申しますと、下記のような関数なのですが、 =SUMIF($A$1:$C$100,"*中央区*",$B$1:$B$100) この例で言いますと、"中央区"の部分のみをA列から 一つずつ拾ってきたいのです。 ワイルドカードを使う必要がなければマクロは不要(セルのアドレスを 予め設置しておけばOKのはず)だと思いますが、 どうしてもワイルドカードでデータを拾う必要が生じています。 文字列を取ってきて組合わせていくマクロが存在するのでしょうか、 リファレンスや検索エンジンで一週間ほど調べましたがどうにも解決しませんでした。 どうかよろしくお願いいたします。
- harmoniodeon
- お礼率41% (5/12)
- オフィス系ソフト
- 回答数2
- ありがとう数1
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>ワイルドカードを使う必要がなければマクロは不要 ワイルドカードであってもマクロは不要です。C1セルに =SUMIF($A$1:$A$100,"*"&A1&"*",$B$1:$B$100) を入力してC100までコピーしてください。
その他の回答 (1)
- fly_moon
- ベストアンサー率20% (213/1046)
"*中央区*"という条件ってことはA列の値は 札幌市中央区1丁目 津市港区3丁目 中央区5丁目 ひたちなか市浜野2-3 などということですよね?そのA列の値を拾って、どういう基準で中央区だけを取り出して前後にワイルドカードをつけるつもりでしょうか?やりたいことが解りません。
補足
質問をきちんと読んでいただき、ありがとうございます。 矛盾した例題を書いてしまいました。申し訳ございませんでした。 QA参照用に、質問の例題部分を修正させていただきます。 ------ 1. A列にずらりと語句が並んでいる 2. B列にマクロでSUMIF関数を自動的に入れていく 3. 2のSUMIF関数の「条件」に、A列の語句を代入していく 4. 3の語句の前後にはワイルドカード「*」を入れる 5. 2~4を繰り返し、A列の語句の数だけB列に作成 具体的に申しますと、下記のような関数 =SUMIF(別シート!$A$1:$B$100,"*中央区*",別シート!$B$1:$B$100) 中央区"の部分のみをA列から一つずつ拾う ------- ご指摘誠にありがとうございました。 No.1の回答をいただき解決いたしました。
関連するQ&A
- 《エクセル》 2つの列のセル条件に対して集計するには
いつもお世話になっております。 2つの列に対して条件を指定して、数値を集計する場合、現在は別の列にConcatenate関数でくっつけて、その列に対してSUMIF関数を使っているのですが、SUMIF関数の中にConcatenate関数を組み込むなど、もっとスマートな方法はありますでしょうか。
- ベストアンサー
- オフィス系ソフト
- エクセル セルにデータを打ち込んだ時点でマクロを起動できるか?
いつもお世話になります。 数千行ある表の列A,Bに数値を打ち込むセルを用意しており、打ち込まれた瞬間に、列Cに関数を使って答えを出したいのですが、列Cに予め関数を入力しておくと、計算が非常に遅く、また容量も重くなってしまいます。 そこで、 「列A,B両方にデータが打ち込まれた瞬間にマクロで列Cに数式を入力し、答えを出してから値で貼り付ける」 ということが出来ないかと思うのですが、可能でしょうか。 以上宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- 4列にわたって2つの条件の関数
下記のような4列の表で、"りんご"と"みかん"の2つを合わせた 合計を出したいのです。SUMIF関数とかでトライしたのですが、 上手くいきませんでした。 A B C D 1 りんご 100 みかん 300 2 ばなな 150 りんご 50 3 みかん 200 ばなな 400 教えて戴ければ、本当に助かります。 よろしくお願い致します。
- ベストアンサー
- その他MS Office製品
- エクセルの同じ行の違う列を返す関数
エクセルの同じ行の違う列を返す関数 エクセルの関数について質問があります。 例えば、以下のようなデータがあったとして、 左からA列、B列、上から1行、2行・・・5行目に 0.1 32 0.2 9 0.3 15 0.4 2 0.5 21 といったデータがあるときに、例えば MIN(B1:B5)はB4の5とわかった場合に、 この時のA4の数値を知りたいのです。 データが膨大だとその数値をさがすだけで大変です。 よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- Excelの関数またはマクロを教えて下さい。
Exsel2000の関数で、現在以下の関数まで出来たのですが、これを応用して検索値「A1」を2つのセル「A1&B1」にしたいのですが、どうすればよいのでしょうか?どなたか方法を教えて下さい。 =VLOOKUP(A1,Sheet1!$A$1:$E$2000,4) 上記の関数から判るように、これは 例えばSheet2のC1のセルにこの式を入れる場合、A1と同じ内容の値を、Sheet1のA列から検索して、そして同じ行のSheet1のD列の値をSheet2のC1のセルに返すという関数です。 これを応用して、「A1と同じ内容…のA1を、A1&B1の2つが一致するセルを検索して、同じ列のSheet1のD列の値をSheet2のC1のセルに返すという関数にしたいのです。 どなたかおわかりになる方がおりました宜しくお願いいたします。 また、マクロを使う方法でも良いのですが、当方マクロは詳しくないので出来るだけ判りやすくお願いいたします。
- ベストアンサー
- 会計ソフト
- Excelマクロ 別シートでの複数条件の選択
いろいろ検索してみましたが、以下の条件でデータ分析する時にどのようなマクロ関数を書けばよいのか分からないので、教えて下さい。 例えば「シート1」に生データがあって、「シート2」にその結果を表示させようと思います。 「シート1」のA列に、XとYが交互にあったとします。 その横のB列に、1,2,3があったとします。 その中から「A列のXとB列の1」「A列のXとB列の2」…「A列のYとB列の3」の組み合わせの個数を、「シート2」にそれぞれ表示させたい場合、どのようなマクロ関数を作成すればよいでしょうか?
- 締切済み
- オフィス系ソフト
- <文字列マクロについて>
<文字列マクロについて> 皆さま お力を貸して下さい。 初心者で、何もわからず書いておりますがすみません。 下記の2つのマクロを教えて下さい。 ?横に並んだ「ある行」に在るデータを「列」に変換し、 指定した数だけ並べる あいうえお ←A1セルからE1まで5列(これは状況により変わる) ↓(マクロ実行:3行同じ数だけ並べるという指定) あ →A1セルから下にひたすら、同じ文字が続き順に並ぶ あ あ い い い う う →A1セルから下に並べる(3行は指定できれば別の数字にも変えたい う え え え お お お ?規則的に並んだデータのまとまりをセットで移動する。 例だと5つの塊(これは変数とおきたい) あ A a い B b う C c え D d お E e ↓(マクロ実行) あ い う え お A B C D E ・ ・ ・ ・ a b c d e
- 締切済み
- その他MS Office製品
- エクセルで特定の文字列が入っていたら別のセルへコピー
1行目のABCD各列には数値が入っており、2行目以降はDにしか数値が入っていません。 1行目と同じものを2行目以降にコピーするマクロはどう記述したらよいでしょうか。 A B C D 1 ○ △ □ ● 2 なし なし なし ● 3 なし なし なし ● 4 なし なし なし ● ↓ ↓ ↓ A B C D 1 ○ △ □ ● 2 ○ △ □ ● 3 ○ △ □ ● 4 ○ △ □ ● 宜しくお願いします!
- ベストアンサー
- オフィス系ソフト
- セル内の2行をそれぞれ別のセルにコピーするマクロ
A列にデータが入力されていたとします。 そのデータのうち、複数のセルで改行されて2行になっています。 改行されているセルをサーチし、1行目をB列のセルに、2行目をC列のセルに分割してコピーしたいと思います。 この様な方法は、マクロで可能でしょうか。 適切な関数があれば、ご教授いただきたいと思います。
- ベストアンサー
- オフィス系ソフト
- 複数列の値を条件に応じて別の列に合わせて表記したい
エクセルで困っています。 以下、現在の表にあるように、 A列に、任意の番号 B列に、任意の番号にひもづく所属番号 があるとき、C列に上から、 B列番号を表記し、その下のセルに、 B列の所属番号が同じA列の番号をすべて順番に表記していきたいとき、 どのような関数を使えば可能でしょうか。 INDEXやMATCH、ROW等を考えてみましたがうまくできません。。。 また、もし可能でしたら、後学のために関数式の意味も 合わせて教えていただければ、大変大変助かります<(_ _)> ≪補足情報≫ ・A列の所属をVlookupでB列に表記させてあります。 ・A列の数値はA列内で重複しません。 ・A列の数値はB列の所属番号内で昇順に表記されています。 ・B列の所属番号設定数は変動します。 (以下の例では、所属番号1が3つ、2が4つ・・・ですが1が5つ等になる可能性もあります) ↓現在の表↓ A B 1 1 1 2 10 1 3 15 1 4 2 2 5 6 2 6 8 2 7 20 2 8 3 3 9 9 3 10 18 3 ↓このようにしたいです。↓ A B C 1 1 1 1 2 10 1 1 3 15 1 10 4 2 2 15 5 6 2 2 6 8 2 2 7 20 2 6 8 3 3 8 9 9 3 20 10 18 3 3 ・ ・ 3 ・ ・ 9 ・ ・ 18 ・ ・ ・ ちなみに、C列の表記はA、B列と行数が合っていなくて構いません。 マクロやVBAがわからないので、関数で教えていただければありがたいです。 何卒よろしくお願いします<(_ _)> ※エクセル2010を使用しています。
- ベストアンサー
- オフィス系ソフト
お礼
迅速なご回答、ありがとうございます、無事に解決いたしました!! ほんと、勉強不足ですね。。。 マクロレベルの話ではないとは。。。 本当にありがとうございます! 資料作成がやっと終わりました! No2の方のご指摘通り、質問の例題が間違っていたのですが、 質問の意図を汲んでいただきありがとうございました。