mu2011 の回答履歴
- エクセルのCOUNTIF関数について
エクセルの集計で例えばCCOUNTIF関数を使って或る列の文字「山か川」の数を全て集計したい場合の計算式はどのようになりますか?宜しくお願いします。
- ベストアンサー
- Excel(エクセル)
- verseau
- 回答数4
- [VBA] InStrRevとLikeの組合せ
こちらの識者の方々にはいつもお世話になっています。 VBAの質問です。 環境は下記になります。 OS=windowsXP SP3 Office=Excel2003(11.8347.8403) SP3 先日、 http://okwave.jp/qa/q8321600.html で質問した内容なのですが、解決したと思ったらまだ未解決のため、再度質問いたします。 A列に住所のデータがあるのですが、形式がちょっと特殊で、 A1 千代田区千代田1-1-1-301千代田マンション1号棟 A2 千代田区千代田2-3-4 というな形になっています。(A1,A2はセル番地表示で、その文字列がセルにあるわけではありません) 並び順が、市名(区名)・町名・丁目・番地・号地・部屋番号・物件名となっています。 データの定義は、丁目・番地・号地・部屋番号については半角数字・市名(区名)・町名・物件名は数字やアルファベットを含むものであっても全角であることは担保されております。 戸建てであればいいのですが、集合住宅の場合、物件名と部屋番号が入れ替わってしまっています。 これを、できればA列には住所、B列には物件名・(全角スペース)・部屋番号とわけたいのです。 A B 1 千代田区千代田1-1-1 千代田マンション1号棟 301 2 千代田区千代田2-3-4 という内容で、ご回答いただいた Sub SplitAddresses() Dim i As Long, n As Integer, pos1 As Integer, pos2 As Integer, pos3 As Integer For i = 1 To Cells(Rows.Count, "a").End(xlUp).Row With Cells(i, "a") For n = 0 To 9 pos1 = InStrRev(.Value, n) If pos2 < pos1 Then pos2 = pos1 Next n Cells(i, "b").Value = Right$(.Value, Len(.Value) - pos2) .Value = Left$(.Value, pos2) pos2 = 0 pos3 = InStrRev(.Value, "-") If pos3 And Cells(i, "b").Value <> "" Then Cells(i, "b").Value = Cells(i, "b").Value & " " & Right$(.Value, Len(.Value) - pos3) .Value = Left$(.Value, pos3 - 1) End If End With Next i Columns("a:b").AutoFit End Sub というコードでうまくいくと思ったのですが、 千代田区千代田1-2-3-4F千代田マンション1号棟 千代田区千代田1-1-1-A千代田マンション1号棟 といったデータも存在し、For n = 0 To 9ではまかなえないことがわかりました。 (数字の部屋番号だけではなく、4FやAなど、アルファベットの部屋番号が存在するということです) 数字だけではなく、半角英数字を末尾から検査し、その文字列がある位置を割り出す必要があるのですが、InStrRev関数とLike演算子を組み合わせて、返り値をpos1に代入しようと思ったもののうまくいきません。 ひとまず、返り値の確認のため、下記のようなコードを書きましたが、 Cells(1, 2) = InStrRev(Cells(1, 1), Like "*[0-z]*") というコードは通らず、 Cells(1, 2) = InStrRev(Cells(1, 1), Cells(1, 1) Like "*[0-z]*") というコードは返り値が0になってしまいます。 上記のような場合、どのようなコードが適していますでしょうか。 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- rihitomo
- 回答数10
- エクセルでシート数が増加する場合の串刺し計算
エクセルで串刺し計算をする場合、データ→統合等でできますが、ファイルによってシート数が毎日増加する場合でも一発で串刺し計算(合計)できるように、VBAでプログラムを組むにはどのうようにすればよいのでしょうか? なお、各シートのデータはすべて同じレイアウトで作成されているとします。 VBAでプログラムの記入例があれば、助かります。
- ベストアンサー
- Excel(エクセル)
- wakaran01
- 回答数3
- エクセルVBAで重複入力の排除
すでに入力規則はリストで使用しております。 そのためVBAで重複入力の排除を行おうと思います。 一応以下のコードでできたのですが、もっと良い方法があったら教えてください。 お願いいたします。 Private Sub Worksheet_Change(ByVal Target As Range) Dim myDic As Object Dim c As Variant, varData As Variant Dim i As Long If Application.Intersect(Target, Range("A1:A50")) Is Nothing Then Exit Sub Set myDic = CreateObject("Scripting.Dictionary") varData = Range("A1:A50").Value For Each c In varData If Not c = Empty Then i = i + 1 If Not myDic.Exists(c) Then myDic.Add c, Null End If End If Next If myDic.Count < i Then MsgBox Target & " は重複!" Application.EnableEvents = False Application.Undo Application.EnableEvents = True End If End Sub
- ベストアンサー
- Excel(エクセル)
- emaxemax
- 回答数1
- エクセルで、文中にキーワードの有無をチェック
エクセルの初心者です。 ひとつのセルに、100文字程度の文章を入力したとしますね。 その中に、特定のキーワードが含まれているかどうかを 検索するのは難しくないと思います。 しかし、例えば a1 に指定のキーワードを入力する b1に文章を入力する c1に、もしキーワードが含まれていれば◯を、含まれていなければ×を表示させる というような処理をさせたいとき、IF文とFINDなどを組み合わせればうまくいくのかな、などとおもったのですが、なかなかうまくいきません。 これは、マクロを組まなくてはいけないような処理なのでしょうか?
- ベストアンサー
- オフィス系ソフト
- y_hisakata
- 回答数3
- Excelで、支店コードから支店名に変換したい
エクセルでデータ作成しているのですが、掲題の事を上手くできないか調べています。 検索サイトで探しても、なかなか目当てのものにヒットしないのでこちらに質問させていただきました。 会社の支店にそれぞれ6桁のコードがふられており、支店数は全国500店ほどあります。 エクセルの列に、ランダムに入力されている支店コードを、別の列に支店名に変換したいのですが、そのような関数はございますでしょうか。 ご教示の程、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- koyuryo2525
- 回答数4
- Excelで、支店コードから支店名に変換したい
エクセルでデータ作成しているのですが、掲題の事を上手くできないか調べています。 検索サイトで探しても、なかなか目当てのものにヒットしないのでこちらに質問させていただきました。 会社の支店にそれぞれ6桁のコードがふられており、支店数は全国500店ほどあります。 エクセルの列に、ランダムに入力されている支店コードを、別の列に支店名に変換したいのですが、そのような関数はございますでしょうか。 ご教示の程、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- koyuryo2525
- 回答数4
- エクセルの関数に詳しい方、教えてください。
よろしくお願いします エクセルの関数に詳しい方、教えてください。 小文字のひらがなだけを小文字のカタカナに変換できますか?量がたくさんあり困っています。 下記のように変換したいです。 しぇいぷ →しェいぷ ふぃぎゅあ →ふィぎュあ まてぃありある →まてィありある よろしくお願いします
- 時間の秒単位で切り上げする方法
いつも大変お世話になっております。今回も教えてください。測定時間の換算で切り上げする方法なのです。 計測データをCSV変換し、同時に秒を分に切り上げたい。 シートに手作業でB2からC3セルに数式を入れた場合。 A2セルに14401(秒) B2セルに'=$A2/24/3600 → 4:00:01 C2セルに'=CEILING(B2,"00:01") → 4:01 この関数と同じ事をマクロでC2セルよりC100セルまで変換できるようにしたいのです。 Range("C2").Value = Application.WorksheetFunction.Ceilingを使ったのですが上手くいきません。 Ceilingの扱いがマクロでは使えないのか困ってます。 秒単位で切り上げ計算するマクロの方法はありますでしょうか?いろんな方法を教えてください。 (1秒切り上げで、上記例の「4:00:01」だった場合は「4:01」としたいのです。)
- ベストアンサー
- その他MS Office製品
- udonnteisyoku
- 回答数4
- 【EXCEL2007】VBAで変数に代入したい
アクセスありがとうございます。 VBA勉強中です。 新しいシートを複数挿入して、そのシート名を指定のものにしたいのですが そのシート名を一括で指定できないでしょうか? たとえば、"北海道","青森","秋田"...と47都道府県でシートを新規作成するとして for i =1 to 47 変数A=("北海道","青森","秋田"...,"沖縄") Worksheets.Add ActiveSheet.Name = 変数A next i のような感じで指定できないでしょうか? 上の文はトンチンカンかもしれないんですが…^^; よくやる作業なので、なんとか簡略化できないかなと思い、 検索してみましたが、検索ワードが悪いのか、まったく出てきませんでした。 どうぞ、よろしくご教授くださいませ…!!!
- ExcelVBAの「For~Nextステートメント
ExcelVBAの「For~Nextステートメント」が全くわかりません。 変数にいれるなど、本に書いてあるのですが、、いまいち理解できないです。
- 締切済み
- Visual Basic
- ijok_mac
- 回答数2
- エクセルの関数に詳しい方教えてください!!
初めて質問させていただきます。 エクセルで表を作成したいのですが、 A行に都市 例) A1 札幌市 A2 旭川市 B行にA行の都市のアルファベット 例) B1 sapporoshi B2 asahikawashi C行にA行と同じ都市名が入力された時、自動で該当するアルファベットが入るようにしたいです。 ご存じの方がいらっしゃいましたらよろしくお願いします。
- ベストアンサー
- その他MS Office製品
- yoshi1166
- 回答数1
- エクセル VBAについて
エクセル初心者ながら質問させていただきます。 A1に田中 A2に山崎 A3に鈴木 があったとします。 B1からB3まではセルの結合を行っています。 B1に=A1&CHAR(10)&A2&CHAR(10)&A3というCHAR関数をいれてB1の表示をみてみると 田中 山崎 鈴木 と表示されました。 ここで質問なのですが、これでA2の山崎を消すとB1は 田中 鈴木 と、1行開いて表示されます。これをA2の山崎を消すとB1が 田中 鈴木 と、間を開かずに表示させたいのですが、何か良い方法はあるのでしょうか? 詳しい方いましたらよろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- n5s1r3k1
- 回答数3
- エクセル:文字列の前方一致の抽出方法
エクセルについて質問です。 原本のリストから抽出したいのですが、文字列が完全一致していないので 抽出できません。前方一致で抽出する場合どうしたらよいか 教えて下さい。 A B C ロキソニン10mg ロキソニン カルデナリン1mg アムロジン2.5 アムロジン2.5mg カロナール200mg A列に原本のリストがあって、B列に抽出したい文字列があります。 A列とB列の文字列が完全には一致していないので抽出できません、 B列と同じ文字列がA列にある場合、A列の文字列をC列に返したいのですが どのような関数を使ったらよいでしょうか? 教えて下さい。
- VBAでの入力
A1~D5に自動的に順番にデータを入力したいです。 A1→B1→C1→D1→A2→B2→C2→D2→A3・・・ といった感じです。 If range("A1").Value = "" Then range("A1").Value=○ ElseIf range("A1").Value <> "" Then range("B2").Value = ○○ ・・・ のようにたくさんIf文を書くしかないのでしょうか。
- 締切済み
- Visual Basic
- karubi_syogun
- 回答数4
- 日付を入力すると何故か今日の日付に
いつもお世話になります。 WINDOWS7 EXCELL2010 です。 参照図で言うと、 B2 に例えば 1/4 と入力すると 今日の日付になります。 何故なんでしょうか。 影響しているのかどうかわかりませんが参考に下記のようなコードを使用しています。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row >= 2 And Target.Address = Cells(Rows.Count, "C").End(xlUp).Address Then Target.Offset(0, -1).Value = Date End If Dim c As Integer If Target.Column <> 2 Then Exit Sub If Target.Value = "" Then c = 0 Else On Error GoTo line Select Case Month(Target.Value) Case 1: c = 46 Case 2: c = 4 Case 3: c = 39 Case 4: c = 6 Case 5: c = 7 Case 6: c = 8 Case 7: c = 43 Case 8: c = 3 Case 9: c = 44 Case 10: c = 24 Case 11: c = 40 Case 12: c = 17 End Select End If Target.Offset(0, -1).Interior.ColorIndex = c Target.Offset(0, -1).Font.ColorIndex = IIf(c = 1, 2, 0) Exit Sub line: Target.Offset(0, -1).Interior.ColorIndex = 0 Target.Offset(0, -1).Font.ColorIndex = 0 End Sub
- 締切済み
- その他MS Office製品
- dorasuke
- 回答数2
- VBAでのデータの並び替え
A列~BV列までデータがあり、件数は5万件ほどあります。 要所、要所に空白行が入っているのですが、空白行から空白行までを1ブロックとして 計6ブロックできます。 1ブロック、1ブロックは同じ件数になるはずで、 それらを横につなげたいのです。 つなげ方は、上から数えて1番上のブロックはそのまま、2番目のブロックは1番目の横、3番目のブロックは2番目の横、 このような感じでどんどん横につなげて計6づロックあったデータをひとつにしたいのですが、 なにかいい方法ありませんか?ぜひアドバイスお願いします。 言い忘れたのですが、一番上は見出し、そのしたに空白行があります。
- 締切済み
- Visual Basic
- ryutahayashi
- 回答数1
- エクセルのFINDで複数のワードを検索したい。
A1のセルに、 "Android"という文字列が含まれていると、"Android"と表示し、 "iPhone"という文字列が含まれていると、"iPhone"と表示し、 どちらも含まれていないと、空白になるようにしたいです。 関数で以下を作りましたが、これだと"Android"の場合は正常に"Android"と表示するのですが、 iPhoneが含まれていても#VALUEと表示されてしまいます。どうすればよいでしょうか? =IF(FIND("Android",A1,1)>=1,"Android",IF(FIND("iPhone",A1,1)>=1,"iPhone","")) エクセルのバージョンは2003で、OSはWindows7(64bit)です。 宜しくお願いします。
- ベストアンサー
- その他MS Office製品
- workpad30j
- 回答数8
- 複数セルから文字列を検索して・・・
どう検索していいのかわからなかったので質問します。 複数のセルから特定の文字列を検索して、該当したセルに対応するB列の数字の合計を関数によって出したいです。 例えば画像を例にすると、A列で"()"という文字列が入っているセルがいくつかあります。 これらのセルに対応するB列の数字の合計を出したいです。 "()"は必ず文字列の末尾にくることとします。 回答よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- lilam001
- 回答数1
- マクロ シート削除の記述確認願います
いつも回答して頂き、感謝しています。 ネットで調べながら、使えそうな記述を少し修正し、シート削除のマクロを記述してみました。 削除するシートの対象は、別のシートに一覧で載せてあります。 ちなみに、シートを挿入する時も、上記で参照する一覧を参照して作ってあります。 こんな場合もあるから、こんな感じに記述した方がいいよって意見がありましたら、教えてください。宜しくお願い致します。 Sub 作業名別のシートを削除する() Dim h As Range On Error Resume Next Application.DisplayAlerts = False With Worksheets("作業名一覧") .Activate For Each h In .Range(.Range("B2"), Range("B65536").End(xlUp)) Worksheets(h.Value).Delete Next End With Application.DisplayAlerts = True End Sub
- ベストアンサー
- オフィス系ソフト
- kero1192kero
- 回答数5