mu2011 の回答履歴
- この表の列合計を出すにはどんな式を書けばいい?
(画像はGoogle Docsですが対象はoffice2003です) こんなデータがあり(実際はもっと複雑)、「4/1」かつ「A」の列の合計を出したいのですがどんな関数を組み合わせればいいでしょうか? 画像に入れ忘れましたが値が空のセルもあります。1行目は月ごとにセル結合しているのでsumproductだけではうまく行きませんでした。皆様ならどのような式を書きますか?
- ベストアンサー
- その他MS Office製品
- qoozy
- 回答数5
- 条件付き書式での相対参照について
こんにちは いつもお世話になっています。 エクセル2007を使っています。 条件付き書式で相対参照にできずに困っています。 条件内容は生徒名毎に5教科内での上位1位のセルの背景色を赤、下位1位のセルの背景色を青です。 A列に番号、B列に名前、C列-G列に教科ごとの得点が入力されています。 生徒名毎にC-Gセルに条件付き書式を設定してあります。 例えば C3-G3セルを選択し、条件付き書式を以下のようにしてあります。 ルール1:上位1位、書式をセル背景色赤、適用先=$C$3:$G$3 ルール2:下位1位、書式をセル背景色青、適用先=$C$3:$G$3 このままだと下の行に書式をコピーすると失敗します。 手動で$C3:$G3としても、適用すると絶対参照に戻ってしまいます。 条件付き書式でなくとも上記のような条件内容を実現できればいいのですが、御教授お願いいたします。
- EXCELの同一セルの中にある姓名のぶんかつ方法
EXCELの同一セルの中にある姓名のぶんかつ方法は ありますでしょうか。 姓と名の間には半角or全角のスペースがあります。 →同一セルの中にある、姓名を姓 名と別々のセルに分けたいため。
- ベストアンサー
- オフィス系ソフト
- jordan232011
- 回答数6
- 文字列から時間を取り出しif関数で大小を決めたい
こんにちわ。エクセル2003での質問です。 1列目に1~31日の休憩時間、 2列目に1列目の時間が45分以上経過の場合に×、未満の場合に○を表示させるif関数を作る予定です。 この休憩時間についてですが、別のシートからvlookup関数で呼び出しており、 これが文字列扱いになるため単純に「45分」以上かどうかが作れません。 休憩時間は「:30:30」というふうなエクセルとしては計算できない文字列で表示され、しかも時間、分、秒まで表示されます。 なんとかして「:30:30」というような文字列から、数字(分)を取り出し、大小の比較に使えるようなものに変換できないでしょうか。 なお検索サイトで調べてみましたが、「時刻」のことは載っているのですが今回のような「時間」に関してはうまく見つかりませんでした。エクセルでは自国も時間も同じ考え方なのでしょうか。 変換できる場合は、if関数で使えるように45分がなんという数字に変わるのか、セルの書式はどのようにすればいいのかも、あわせて教えていただけますでしょうか。 45分以外に60分の場合もあわせてお願いします。
- ベストアンサー
- その他MS Office製品
- naonaonaonao
- 回答数4
- 完全一致したら複数のセルを順に代入するマクロは?
エクセルのSheet1のA列にある文字列と、Sheet2にあるA列にある文字列と完全一致したら、前者のセルの右右右隣セル(一致したセルから数えて4番目のセル)から3番目までのセルに、後者のセルの右隣セル(一致したセルから数えて2番目のセル)から3番目までの文字列を順に代入するマクロをお教えください。つまり代入開始セルをSheet1のD列にしたいのです。(実は任意の列からにしたのですが…)。単純にvlookup関数を使えばいいのですが、VBAで行いたいのです。 一致したセルの右隣のセルから順に代入するマクロは以下で解決済みです。以下のマクロを編集して実行したいのですが、どこをいじったらよいかわかりません。 なお、代入したいセルを右の任意のセルまで引き延ばしたい場合、以下のコード任意Loop Until Coln1 = 4の右辺の数字を変更すればよいことまではわかっています。どうぞ、よろしくお願い申し上げます。 ---------------- Sub 試験() Dim Row1 As Integer Dim Coln1 As Integer Dim Row2 As Integer Dim Coln2 As Integer Set WS1 = Worksheets("Sheet1") Set WS2 = Worksheets("Sheet2") Coln1 = 1 Coln2 = 1 For Row1 = 1 To WS1.Cells(Rows.Count, 1).End(xlUp).Row For Row2 = 1 To WS2.Cells(Rows.Count, 1).End(xlUp).Row If WS2.Cells(Row2, 1) = WS1.Cells(Row1, 1) Then Do Coln1 = Coln1 + 1 Coln2 = Coln2 + 1 WS1.Cells(Row1, Coln1) = WS2.Cells(Row2, Coln2) Loop Until Coln1 = 4 Coln1 = 1 Coln2 = 1 End If Next Row2 Next Row1 End Sub
- 完全一致したら複数のセルを順に代入するマクロは?
エクセルのSheet1のA列にある文字列と、Sheet2にあるA列にある文字列と完全一致したら、前者のセルの右右右隣セル(一致したセルから数えて4番目のセル)から3番目までのセルに、後者のセルの右隣セル(一致したセルから数えて2番目のセル)から3番目までの文字列を順に代入するマクロをお教えください。つまり代入開始セルをSheet1のD列にしたいのです。(実は任意の列からにしたのですが…)。単純にvlookup関数を使えばいいのですが、VBAで行いたいのです。 一致したセルの右隣のセルから順に代入するマクロは以下で解決済みです。以下のマクロを編集して実行したいのですが、どこをいじったらよいかわかりません。 なお、代入したいセルを右の任意のセルまで引き延ばしたい場合、以下のコード任意Loop Until Coln1 = 4の右辺の数字を変更すればよいことまではわかっています。どうぞ、よろしくお願い申し上げます。 ---------------- Sub 試験() Dim Row1 As Integer Dim Coln1 As Integer Dim Row2 As Integer Dim Coln2 As Integer Set WS1 = Worksheets("Sheet1") Set WS2 = Worksheets("Sheet2") Coln1 = 1 Coln2 = 1 For Row1 = 1 To WS1.Cells(Rows.Count, 1).End(xlUp).Row For Row2 = 1 To WS2.Cells(Rows.Count, 1).End(xlUp).Row If WS2.Cells(Row2, 1) = WS1.Cells(Row1, 1) Then Do Coln1 = Coln1 + 1 Coln2 = Coln2 + 1 WS1.Cells(Row1, Coln1) = WS2.Cells(Row2, Coln2) Loop Until Coln1 = 4 Coln1 = 1 Coln2 = 1 End If Next Row2 Next Row1 End Sub
- Excel DSUM DCOUNTA関数の使い方
こんにちは。 Excel2003でDSUM DCOUNTA関数を使用しています。 ある範囲の中から文字列が何個あるか計算します。 この関数の場合たとえば shouhin2000とshouhin3000は別物としてカウントされるので問題はありません。 しかし shouhin2000とshouhin2000+は区別されずにまとめて何個あるかカウントされてしまいます。 この場合区別してshouhin2000とshouhin2000+を別々にカウントする方法はありますか? また上記の逆で shouhin2000とshouhin3000をまとめて何個あるかカウントする方法はありますか? 特にDSUM DCOUNTA関数にこだわっていませんが前任者が作ったファイルを 改造しているためでてきた問題です。 ご存じの方お教えください。 よろしくお願いいたします。
- 締切済み
- その他MS Office製品
- sherman
- 回答数3
- excelでかけた数字の項を追加する方法について
度々質問失礼します。 excelのデータで例えば 1 1 2 0 3 1 4 1 6 1 7 1 8 1 10 1 11 1 13 0 14 1 のような縦のデータがあり、このデータを 1 1 2 0 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 0 14 1 のように抜けている数字の所の分に新しいセルを挿入させて数字の入力も自動で行いたい(横のセルは抜けている数字の所は1にしたいです。)のですが、何かよい方法はないでしょうか? お手数ですが、どなたかわかる方回答よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- inmo87
- 回答数4
- VBA FindメソッドとMatch関数のところ
まだVBAに慣れていませんが、下記のソースを書いてみました。 ★印の間の部分の処理を、最初はFor Nextで書いていたのですが、理由が解らないですが…うまく処理されない為、タイトルの2種類(セルのFindメソッドとMatch関数)を使って処理しようと思い書き直したのですがうまく処理されません。 どこがいけないのか解らず数時間も悩んでしまいました。 すみませんが、どなたか教えてください。よろしくお願いします。 Sub 外注別案内書作成() Dim ws As Worksheet 'オブジェクト格納 Dim i As Long, j As Long '繰り返す回数格納 Dim annaicode As Variant '案内場所C格納 Dim addwsname As Variant 'シート名前格納(※案内場所名) Dim flag As Boolean '真偽 Dim r As Range 'Findメソッドの返り値格納 Dim K As Long 'Match関数の返り値格納 'レポート元でQ列の情報が入っている時に、案内場所別で情報を作成する。 'レポート元でQ列に値がある時に、annaicode変数へ格納。 For i = 2 To Worksheets("レポート元").Cells(Rows.Count, "A").End(xlUp).Row If Cells(i, "Q").Value <> "" Then annaicode = Cells(i, "Q").Value End If ★ココから-------- '外注一覧でannai変数と一致した時に、addwsname変数へ格納。 FindメソッドとMatch関数 With Worksheets("外注一覧").Columns("1:1") Set r = .Find(What:=annaicode, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns) If r Is Nothing Then MsgBox i & "行目の案内場所Cの入力が不正です。" & vbCrLf & "処理を中断しますね", _ vbOKOnly + vbExclamation, "お知らせ" Else With Worksheets("外注一覧") K = .Match(annaicode, .Range(.Cells(1, "A").Value, .Cells(.Rows.Count, "A").Value), 0) addwsname = .Cells(K, "B").Value + "_案内" End With End If End With ★ココまで-------- 'ワークシートコレクション内でaddwsname変数と一致した時に、flag変数をTrueにする。 For Each ws In Worksheets If ws.Name = addwsname Then flag = True End If Next ws 'flag変数の値により、各々処理をする。 If flag = True Then Worksheets("レポート元").Cells(i, "A").EntireRow.Copy _ Destination:=Worksheets(addwsname).Cells(Rows.Count, "A").End(xlUp).Offset(1, 0) flag = False Else Worksheets.Add ActiveSheet.Name = addwsname Worksheets("レポート元").Cells(i, "A").EntireRow.Copy _ Destination:=Worksheets(addwsname).Cells(Rows.Count, "A").End(xlUp).Offset(1, 0) End If Next i End Sub
- ベストアンサー
- その他(プログラミング・開発)
- msnok
- 回答数3
- エクセル2007で
入力する項目を分かりやすくして入力しやすくするために データフォームという便利な機能が有る事を知りました。 セルの項目ごとに入力欄が表示されるので次々とデータを入力していくのには凄く便利だと思いました。 ですが、入力欄の大きさが固定されているので少し使いにくいです。 この入力欄の大きさを自由に変更することはできないのでしょうか? セルの幅を広げたら、最大サイズのセルの大きさに全ての入力欄がなってしまいます。 例えば、 Aは1文字分の大きさでいいけど、Bは5文字分。 Cは横10文字で5行分の大きさ などのように自由に変更することはできるのでしょうか? 出来るのであれば設定の仕方を教えてほしいです。 出来ないのであれば、自分でフォームを作ってvba?でプログラミングをしないと無理でしょうか?
- VBA初心者です
VBA初心者です。 同じセルに数字を入れて足し算して行きたいんですが! 下記のVBA見つけたのですが、A1に数字を入れて答えがE1に出るんですが、同じ事を A2、A3、A4、A5答えもE2、E3......で増やしたいのですが、どうするか分かりません。 どなたか教えてください。 宜しくお願いします。 Private Sub Worksheet_Change(ByVal Target As Range) Dim inp, outp As String inp = "$A$1" outp = "E1" Application.EnableEvents = False If Target.Address = inp Then Range(outp).Value = Range(outp).Value + Target.Value If Target.Value <> "" Then ActiveCell.Offset(-1, 0).Select Else Range(outp).Value = 0 End If End If Application.EnableEvents = True End Sub
- ベストアンサー
- Visual Basic
- drakiyo
- 回答数5
- excelのVBAを利用し検索抽出を行う方法
検索というよりデータの抽出の方が正しいかもしれません。 現在、顧客情報を種類別でシートに分けて表で管理しています。 情報には名前などの文字列、日付、時間などが含まれます。 この表の形式を説明すると、 ・列 … B~AI まで項目があります。(A列は使用していません) ・行 … 1行で1つのデータとなります。 ・行数…シートにより行数は異なります。 この形式の表が全部で14シートあります。 このシートのB列に「未・済」のステータスがあるのですが、 すべてのシートの「未」である行のデータを"Sheet1"に抽出させたいと考えています。 さらに、抽出されたデータの"D"列の日付にソートされるようにしたいのですが、 説明がわかりづらかったら申し訳ありません。 VBA初心者のためご教授いただければと思います。 よろしくお願いします。
- 締切済み
- Visual Basic
- dch001
- 回答数2
- 関数の問題(2)
こんばんは! 練習問題です。 http://www.beginners-site.com/excel-rensyu/02.htm 自分は以下の様に記述しましたが、他にどのような解法がありますか? また、TEXT関数についてよく分かっていないのですが、3桁ずつをコンマで区切る場合は下のような使い方でよろしいのでしょうか。よろしくお願いします。 商品名を求める(配列) =INDEX($A$3:$C$5,MATCH($B9,$A$3:$A$5,0),2) 販売価格を求める(配列 =TEXT(VLOOKUP($B9,$A$3:$C$5,3),"#,#") 金額を求める =TEXT(SUM($D9*$E9),"#,#")
- 締切済み
- その他MS Office製品
- noname#146604
- 回答数3
- エクセル、 0の計算
エクセル (A+B)×D の計算 別のシートから入れたB値に0が多いため、IF関数を使って0を表示しない様にしたら、解がでずVALUE!になってしまいました。 B欄にどんな関数を入れたら、0を表示せず答えが導けますか。
- エクセル、 0の計算
エクセル (A+B)×D の計算 別のシートから入れたB値に0が多いため、IF関数を使って0を表示しない様にしたら、解がでずVALUE!になってしまいました。 B欄にどんな関数を入れたら、0を表示せず答えが導けますか。
- エクセル 1つのせるから3つのセルに分ける方法
エクセル 電話番号を続きで入力したセルから("-"で繋いでいる)3つのセルに分ける方法がわかるかたいらっしゃいますか?
- ベストアンサー
- その他MS Office製品
- aki601
- 回答数2
- Excel 「For … Next」のやり方
Excel画面のA1~A10を10~1の表示にさせるため、VBAを Sub ***() Worksheets("Sheet1").Activate Cells.Clear Dim i As Integer, n As Integer For i = 10 To 1 Step -1 Cells(i, 1).Value = i Next i End Sub としたのですが、実際に表示するとA1から1~10と1ずつ加算されてしまいます。 マイナス値は-1の表示で可能だといろいろ調べてわかったのですが、実際にやるとうまくいきません。 どこが間違っているのでしょうか? 学習不足ではありますが、よろしくお願いします。
- ベストアンサー
- Visual Basic
- 19933193
- 回答数8
- ExcelのVBAで自動採番したいのですが
Excel2003のVBAを利用して、例えばコマンドボタンを押した時に、下記のC6の●部分にC列の最大数を検索して自動的に「5」を採番(max+1)入力したいのです。 ただしC2の様に途中に虫食いで空欄があり、またその空欄に後日数字が入る可能性もあります。(C列は多くても40列程度) 数が多くなると採番ミスの恐れがあり、自動化したいのでよろしくお願いいたします。 |A|B|C|D 1|X|テ|1| 2|L|ス| | 3|V|レ|3| 4|Y|フ|4| 5|N|モ|2| 6|S|シ|●| 7|
- ベストアンサー
- その他MS Office製品
- bluray
- 回答数5