Excel総合相談所 92at BSOFT
Excel総合相談所 92 - 暇つぶし2ch499:名無しさん@そうだ選挙にいこう
10/06/19 14:05:11
>>493
シート上に表を作らずにLOOKUPで振り分ける方法がある。
こんなふうに昇順で並べて書けば、何段階でも分類できる。
=LOOKUP(A1,{0,30,100,155,165},{"E","D","C","B","A"})
         ↑          ↑
        範囲の下限     評価

欠点は微妙に計算が遅いこと。1000個ぐらい並べると目に見えてExcelの動作がもっさりしてくる。
最近のパソコンはそれほどでもないかな?
まあ、同じ式をたくさん並べるときは表を作った方がいいだろうね。メンテもやりやすくなるし。
それと、このスレには配列が大嫌いなやつがいて罵倒してくること。

500:名無しさん@そうだ選挙にいこう
10/06/19 14:33:39
>>499
罵倒観音は俺もその一人だなw
間違った使い方するやつしか罵倒しないけどね。
SMALLを使うやつは特に罵倒したくなる。
おめーはチンポもSMALLだろってねw


501:名無しさん@そうだ選挙にいこう
10/06/19 14:37:00
観音様は女だったか。
=LOOKUP(A1,{0,30,100,155,165;"E","D","C","B","A"})
でもいいんだな。

502:456
10/06/19 16:48:10
>>484
シート名は"LIST"です。
ボタン名は"保存"です。
で、どう書けばいいですか?

503:名無しさん@そうだ選挙にいこう
10/06/19 17:36:05
>>502
ボタンに「表示されてる文字」と「名前」は関係ないから、まずはボタンの名前を調べる。
デザインモードに切り替えてからボタンを右クリックしてプロパティを開く。
出てきた一覧表の1行目に

(オブジェクト名) CommandButton1

みたいに書いてあるので、この右側の「CommandButton1」の部分がボタンの名前になる。

504:456
10/06/19 18:05:36
>>503
右クリックしてもプロパティが出てきません。
URLリンク(uproda.2ch-library.com)

505:名無しさん@そうだ選挙にいこう
10/06/19 19:23:12
>>504
それはフォームのボタンだから、名前を調べるのはちょっと手間がかかる。
まずデザインモードを解除して、もう一度デザインモードに入り直す。
次にマクロの記録→OKをクリックしてから、名前を調べたいボタンをクリック、
点線で囲まれたらマクロの記録を終了。記録されたマクロを確認すると

ActiveSheet.Shapes("Button 123").Select

みたいになってるはず。この "Button 123" のところがボタンの名前。
で、この場合のボタンを削除するマクロは

ActiveSheet.Shapes("Button 123").Delete

になる。

506:456
10/06/19 19:39:38
>>505
Application.Run "注文書.xls!保存する"しか記録されません・・・orz

507:名無しさん@そうだ選挙にいこう
10/06/19 19:45:36
>456,504
当方Excel2003で、起動してすぐは右クリックしても「プロパティ」の項目は出ませんでした。
なにか操作してたら出るようになりました。何したっけ?

とりあえず、メニューから 表示>ツールバー>コントロールツールボックス
で、このツールバーが独立して画面上に存在するときの
右上隅のアイコン(マウスカーソルをのせると「プロパティ」って表示される)をクリックする。

>505
>504の画像を見る限り、シート上のボタンのように見えます。フォームのボタンだと、
VBA編集画面のフォームの上にしか置けないのでは?

508:507
10/06/19 19:50:19
と思ったら、フォームのボタンもシート上に置けるんですね、知らなかった。

>456,504 コマンドボタンと、フォームツールバーによるボタンとの見分け方がわかります。
エクセル マクロ
Excelの「コマンドボタン」の使い方
URLリンク(allabout.co.jp)

509:名無しさん@そうだ選挙にいこう
10/06/19 19:52:08
コントロールツールボックス vs フォームじゃ、話が噛み合わんわなwww

510:507,508
10/06/19 20:06:46
コマンドツールバーで作ったボタンだろうが、フォームツールバーで作ったボタンだろうが、
デザインモードでそのボタンをクリックすると、通常ならセル位置を表示する場所
(画面の左上の方、数式を入れる部分の左隣)にオブジェクト名が表示されますよ。
そこをクリックして[Ctrl]+[C]でコピーできます。
フォームツールバーによるボタンだと既定値は ボタン 1 になります。
コントロールツールバーによるものの既定値は CommandButton1 になります。
※ボタンに表示されている文字列はCaptionであり、オブジェクト名ではありません。

511:名無しさん@そうだ選挙にいこう
10/06/19 20:45:14
>>506
じゃあマクロの記録のあと、目的のボタンを右クリックしてから記録の終了

512:名無しさん@そうだ選挙にいこう
10/06/19 20:46:59
>>510
フォームボタンの場合はボタン名じゃなくてキャプションが表示されるのでこの場合は使えない。

513:名無しさん@そうだ選挙にいこう
10/06/19 20:48:07
>>509はわかってない
斜め読みして茶々入れただけ

514:名無しさん@そうだ選挙にいこう
10/06/19 20:49:45
>>510
>コマンドツールバーで作ったボタンだろうが、フォームツールバーで作ったボタンだろうが、
>デザインモードでそのボタンをクリックすると、通常ならセル位置を表示する場所
>(画面の左上の方、数式を入れる部分の左隣)にオブジェクト名が表示されますよ。

マクロが登録されてなければそれでいい。
お前が馬鹿丸出しなのは、>>506を読んでないか理解してないところ。
さらにエスパーすれば、480でボタン3個と書かれてるから保存ボタンなら
「ボタン 1」になる可能性は低いと推測される。

>>506
デザインモードは気にすることなくボタンを右クリックすれば分るはず。

515:名無しさん@そうだ選挙にいこう
10/06/19 20:50:54
うまく選択できないときは「オブジェクトの選択」モードで目的のボタンを囲めばいい

516:名無しさん@そうだ選挙にいこう
10/06/19 20:54:23
もちろんわかってるってば。
右クリックでコンテキストメニューに「プロパティ」が出るのはコントロール、出ないのはフォームのボタン。

フォームボタンの場合、マクロが登録されていなければ左クリックはActiveSheet~Select、
登録されている場合はApplication.Runになる。

フォームボタンの場合はセル名のところに表示されるのはキャプションであってボタン名じゃない。

517:名無しさん@そうだ選挙にいこう
10/06/19 20:55:57
ついでに。
詳しそうだから、フォームのボタン名を一発で調べる方法があったらぜひ教えてくれ。

いや、教えてください。

518:名無しさん@そうだ選挙にいこう
10/06/19 21:23:11
初歩的な質問ですみません。
取引先から送られてくるエクセルでシートの外(?)の部分がグレーになっているのですが
どうやったらシートの範囲を広げられるのでしょうか。
範囲を広げて、その部分に計算式やプルダウンリストの選択肢を入れたいのですが。。

519:名無しさん@そうだ選挙にいこう
10/06/19 21:35:14
>>518
表示→標準

520:名無しさん@そうだ選挙にいこう
10/06/19 21:55:02
>>517
ボタンをクリックして、名前ボックスを見る

521:名無しさん@そうだ選挙にいこう
10/06/19 22:06:09
>>517
デザインモードでボタンをクリック→数式バーを見る。

522:名無しさん@そうだ選挙にいこう
10/06/19 22:10:57
>518
>519さんの説明で「標準」にするか「改ページプレビュー」にするかにかかわらず、
印刷範囲は変わりません(印刷プレビューで確認してください)

灰色部分に計算式やプルダウンリストは入力できませんか? 普通なら入力できるはず。
もし、入力できない場合はセルの保護とシートの保護がかかっていると思われます。



523:名無しさん@そうだ選挙にいこう
10/06/19 22:20:02
519さん、522さん、早速ありがとうございます。
今手元にそのエクセルが無いので未確認なのですが、月曜にでも表示を確認してみます。
グレー部分は、何も入力できなかったので保護がかかっているのかも知れません。

524:複乳
10/06/19 22:35:01
灰色になってるところの列番号(上のABCDE..ってやつ)がIV列まで無く、途中で切れてるなら
端まで非表示になってる
行番号(←の12345・・)も65536行までなければ同様

CTRL+A押して列番号のAを右クリック、すべて表示を洗濯

525:456
10/06/19 23:15:26
>>511
ActiveSheet.Shapes("Button 152").Select
ActiveSheet.Shapes("Button 153").Select
ActiveSheet.Shapes("Button 154").Selectになりました。
ボタン3個しかないのに何で?

526:456
10/06/19 23:23:23
ActiveSheet.Shapes("Button 152").Delete
ActiveSheet.Shapes("Button 153").Delete
ActiveSheet.Shapes("Button 154").Deleteで消えました。
ありがとうございました。

527:名無しさん@そうだ選挙にいこう
10/06/19 23:34:37
>>526の時刻に注目。

528:名無しさん@そうだ選挙にいこう
10/06/20 00:00:00
>>527

529:名無しさん@そうだ選挙にいこう
10/06/20 05:14:31
>>525
たぶん、そのシートの作成者がボタンを何度も作ったり消したりしたんでしょう。苦労の跡。

530:名無しさん@そうだ選挙にいこう
10/06/20 14:45:30
>>529
苦労じゃなく、マクロでシート作成>シート削除だったりして。

531:名無しさん@そうだ選挙にいこう
10/06/20 16:15:52
>>382
ありがとうございました!

532:名無しさん@そうだ選挙にいこう
10/06/20 18:05:37
>>520 >>521
その方法でコントロールのボタン名は出たけどフォームのボタン名は出ませんでした

533:名無しさん@そうだ選挙にいこう
10/06/20 18:29:19
>532
>515参照 オブジェクトの選択モードとは、図形モードにして白矢印をクリックした状態。
マウスカーソルが 太い十字 から 線を組み合わせた十字 になる。

534:名無しさん@そうだ選挙にいこう
10/06/20 20:50:11
IF文で効率のいい書き方を教えてちょ。

If a=1 Then
 あ
EleseIf a=2 Then
 い
Else
 あ
 い
End if

「あ」と「い」は色々な処理で十数行ありんす。

535:名無しさん@そうだ選挙にいこう
10/06/20 20:54:51
if文じゃなくてSelect Case使えば?

536:名無しさん@そうだ選挙にいこう
10/06/20 21:08:11
i = Cells(1, 1)

Select Case i
 Case 1

  Cells(1, 1) = "さわじり"
 Case 2
  Cells(1, 1) = "えりか"
 Case Else
  Cells(1, 1) = "べつに…"
End Select

すきに改変しなされ。

537:名無しさん@そうだ選挙にいこう
10/06/20 22:00:13
わかりましぇーーーーん(><)

538:名無しさん@そうだ選挙にいこう
10/06/20 22:08:53
>534
あ、い、という部分が十数行あって同じような処理を繰り返し記述する(あ>い となる部分)のが
いやだ!ということなら、あ、い、それぞれひとつの手続(private sub)にでもまとめたら?
If a=1 Then
 call あ
EleseIf a=2 Then
 call い
Else
 call あ
 call い
End if

private sub あ()
 あ の処理
end sub

private sub い()
 い の処理
end sub


539:名無しさん@そうだ選挙にいこう
10/06/20 22:13:46
おいおい・・・
ちょっとでも書き換えがあるとわからなくなるんかいな

Select Case a
 Case 1
  あ
 Case 2
  い
 Case Else
  あ
  い
End Select

>>534 でやってることと全く同じにしたで。
これ以上のことは書きようが無いで。エスパーやないからな。

540:538
10/06/20 22:15:01
>534
URLリンク(okwave.jp)
の ベストアンサー以外の回答 のところが参考になるかも

(抜粋)
短いマクロであればそうでもありませんが、基本的な考え方としては
・処理ごとに部品化する事で再利用しやすくする。
・マクロの処理順と関係なく機能ごとにまとめておけるのでメンテナ
ンスや変更などが容易になる。
・問題が起きた時にどの機能が悪いのかテストしやすくなる。
などがあげられます。それよりも、見た目がすっきりすると言うのは
結構重要で、みやすくなる事で打ち間違いなどのバグが少なくなります。

541:538
10/06/20 22:18:30
>539
たぶん効率がいい書き方ってのが 同じようなことを何回も書きたくないってことではないかとエスパー。
あ、い、それぞれ十数行あるから「コピペ」すればいいんだろうけど、修正もれとかいろいろ考えると
十数行ともまったく同じ処理なら サブルーチン にまとめた方がいいと思う。

542:名無しさん@そうだ選挙にいこう
10/06/20 22:18:35
cみたくbreak入れなければ流せると便利なんだけどな>select~case

543:名無しさん@そうだ選挙にいこう
10/06/20 22:37:03
>>538
やってみます。

>>539
536って、iが整数でそ?
なんで"さわじり"とかになるの?

544:名無しさん@そうだ選挙にいこう
10/06/20 22:46:17
>543
i に文字列を入れているのではない
Select Case i  ← iの値によって処理を振り分ける
Case 1     ← iの値が1のとき
 Cells(1, 1) = "さわじり" 1列1行目(A1セル)の値を さわじり" にする


545:名無しさん@そうだ選挙にいこう
10/06/20 22:49:20
>>541
なるほど。


>>543
|:3ミ
日本語で説明しようか。

A1 が…
1 だったら、A1 に さわじり を入れる。
2 だったら、A1 に えりか を入れる。
それら以外だったら、A1 に べつに… を入れる。

べつに、A1 へ入力する内容は整数だけ…とは、どこにも書いてないし、誰も言ってない。
i に値を入れた後は、べつに A1 の内容が変わろうとも i の内容は変わらない。
だから、最初に A1 に 2 を入れて >>536 の内容を二回実行すると、2回目には "べつに…" と入る。

なんでこう、ちょっとしたユーモアを解してくれないのか…

546:538
10/06/21 00:24:22
>534が全くの初心者みたいだから、ひょっとするととんでもない書き方してるかも。

念のために、サブルーチンは元々のマクロとは別の部分に書くこと。

Sub 誤りの例()       Sub 正しい例()
 If a=1 Then          If a=1 Then
  call あ             call あ
 EleseIf a=2 Then      EleseIf a=2 Then
  call い             call い
 Else              Else
  call あ             call あ
  call い             call い
 End if             End if
 Private Sub あ()      End Sub
  あ の処理        Private Sub あ()
 End Sub            あ の処理
 Private Sub い()      End Sub
  い の処理        Private Sub い()
 End sub            い の処理
End Sub            End Sub

547:名無しさん@そうだ選挙にいこう
10/06/21 00:46:32
なんで文書書くのに、エクセル使うやつがいるの?

文書はワード、表処理、計算はエクセル。
それぞれ役割がある。

自分が好きでエクセル使うのはいいけど、後の人のこと考えてくれ。
エクセルだと、文書がブツブツ切れて作業大変。

日曜にこんな変な仕事しなくちゃならない俺の身になってくれ。

548:名無しさん@そうだ選挙にいこう
10/06/21 00:51:51
今宵、EleseIf に突っ込むやつはいねーのか?

549:名無しさん@そうだ選挙にいこう
10/06/21 01:32:08
野暮だな。

検証してみれば elseif が eleseif だったら、実際には動かないんだから、そこで気づくさ。

550:名無しさん@そうだ選挙にいこう
10/06/21 01:42:26
>>547
半分…いや9割9分、同意してやんよ。
フォーマット次第では Word より Excel のほうが楽になるけどな。
Alt+Enter とかが多少、面倒なくらいで。

でも、資料を全部パワポで作る上司は赦せん。
ネットワーク図なら Visio 使えよ…

551:名無しさん@そうだ選挙にいこう
10/06/21 01:53:24
>>550
> でも、資料を全部パワポで作る上司は赦せん。
> ネットワーク図なら Visio 使えよ…

それは、可哀想だな。
会社の資料ってのは、一人の物ではないってのを、ゆっくり言い聞かせたい。

552:名無しさん@そうだ選挙にいこう
10/06/21 01:57:35
てゆーか、文章を書くならExcelよりWordだろ?
見積書とか報告書なら兎も角、セル内改行で書いてるのか?

553:名無しさん@そうだ選挙にいこう
10/06/21 02:02:42
>>552
セル内改行なのだよ。もう最悪。
文書が途中で切れるんだよ。

で、この資料の版を更新するんだが、文書変更するのが面倒くさい。

554:名無しさん@そうだ選挙にいこう
10/06/21 02:13:54
うまいひとはExcelでもきれいな文書を作れる
へたくそはWord使ってもまったくよれよれの文書しか作れない

使い手次第

うちの上司はなにやってもだめだ
一から俺らが作ったほうが早い

555:名無しさん@そうだ選挙にいこう
10/06/21 02:53:00
選択したセルの文字データの末尾に新たな文字を書き足すようなマクロを作るにはどうしたらいいでしょうか?
例:選択したセルに「6/21」と書いてあるときマクロを実行したら「完了」を自動で後ろに書き足して「6/21完了」になるようにしたい

556:名無しさん@そうだ選挙にいこう
10/06/21 06:21:27
>>555
Sub aaa()
Dim v
v = Selection.Value
v = Format(v, "m/dd") & "完了"
Selection.Value = v
End Sub

実用的じゃない気はするね

557:名無しさん@そうだ選挙にいこう
10/06/21 09:37:18
>>555
Selection.Value = Selection.Text & "完了"

558:名無しさん@そうだ選挙にいこう
10/06/21 13:11:35
>>474
471,472の質問をした者です。
フィルタの状態を見たいのでありません。

フィルタで絞り込んだ事で、非表示になったデータを
ブックを閉じる前に解除して保存(保存は任意ですが…)できる
ようにしたいのです。

こんな感じで↓

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
'エクセルのバージョンがXP以降の場合
If usrThisApp.nAppVerNo >= 10 Then
Sheets("Sheet1").Select
' オートフィルタで絞り込まれていたら、非表示データを再表示
If ActiveSheet.FilterMode = True Then
ActiveSheet.ShowAllData
End If
Sheets("Sheet2").Select
' オートフィルタで絞り込まれていたら、非表示データを再表示
If ActiveSheet.FilterMode = True Then
ActiveSheet.ShowAllData
End If
Sheets("Sheet1").Select
End If
Application.ScreenUpdating = True
End Sub

でも、ブックの共有が設定されるタイミングによって1004実行時エラーが
発生する場合とエラーが発生せずにブックが終了する場合があるので、原因が
わからず困っているのです。

559:名無しさん@そうだ選挙にいこう
10/06/21 18:29:05
2007で2003のオートシェイプモードのように、
図形を描き続けられる方法って、ありますか?

560:名無しさん@そうだ選挙にいこう
10/06/21 20:56:55
<今月分 シート1>
A  B   C    D
11 田中 1000  10月
14 加藤  1000 10月 ←今月分シートから加わった新しい人
21 鈴木  1200  12月
33 山田  1100 11月


<前月分 今月分とは別ファイル→今月分シート2に必要部分だけコピー>
A  B  C   D   E  F  ....
11 田中 1000  10月 魚  a 
21 鈴木  1200  12月  花  b
33 山田  1100 11月 山  a
33 山田  1100 11月  川  a
21 鈴木  1200  12月  魚  a 
21 鈴木  1200  12月  川  b
44 小池  900 10月  魚  a ←今月分シートにはいない人
 

Excel2003で毎月シート1のようなデータが届きます。
シート1には新しい人が加わったり、逆に前月いた人がいなくなったりします。

前月分のデータで"a"になっているものは、今月も必要なため
現在は前月分ファイルで"a"のデータだけソートして、値を今月分ファイルのシート2に貼り付け→
A列の番号で並べ替え→シート1で列をコピー挿入し、シート2のE~以降を貼り付けています。

また、今月増えた人分のところには
シート2に空行を入れてE以降を張り付ける際にずれないようにしています。

この作業を毎月なんとか自動的にできるようにしたいのですが、
関数やマクロでなんとかなるものなのでしょうか?
VLOOKUPの応用なのかな?と思って色々試しているのですが、良い方法が見つかりません。

561:名無しさん@そうだ選挙にいこう
10/06/21 21:26:44
>>560
行の追加は関数だけではできないのでマクロが必要
マクロを使えば全自動化できる

562:名無しさん@そうだ選挙にいこう
10/06/21 21:33:00
>>559
図形の種類を選ぶときにアイコンを右クリックしてモードロック

563:名無しさん@そうだ選挙にいこう
10/06/21 21:40:29
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel 複数条件 抽出 重複 -フィルタオプション
シート上に下記のような表があり、その情報を元にA列とB列の組み合わせで重複しない表を作成したいと考えています。作成する際の条件は下記の通りです。
・C列に数字が入力されていて、0でない正の整数行のみを対象に検索
・作業列は利用しない
・フィルタオプションは利用しない
・表の作成の際に、A列、B列でソートする
・A列、B列はそれぞれマスタシートあり
このような条件で作成するに当たっては配列関数等が必要になるようにも思っていますが、いまいちうまくいきません。どうかご教示下さい。
<元の表>
A B C
1 りんご 青森 3
2 みかん 愛媛 2
3 メロン 北海道 5
4 りんご 北海道 9
5 バナナ 台湾 4
6 バナナ 沖縄 0
7 オレンジ アメリカ 10
8 メロン 北海道 1
9 みかん 愛媛 5

<作成する表>
A B
1 オレンジ アメリカ
2 バナナ 台湾
3 みかん 愛媛
4 メロン 北海道
5 りんご 青森
6 りんご 北海道

564:名無しさん@そうだ選挙にいこう
10/06/21 21:45:29
>>563
>A列、B列でソートする
ってのがよくわかんないけど、こんなのを関数(配列数式)でやるのは、遊びで一部のマニアがやる以外は無理。
vbaでやった方がいいよ

565:名無しさん@そうだ選挙にいこう
10/06/21 21:51:48
>>563
まずフィルタオプションを使わない理由を書け
次に自分で試してみた数式を1つ書け

566:名無しさん@そうだ選挙にいこう
10/06/21 22:18:53
遊び程度

A列抜き出し
=INDEX(A:A,SMALL(IF(MATCH($A$1:$A$9&$B$1:$B$9,$A$1:$A$9&$B$1:$B$9,0)=ROW($A$1:$A$9),MATCH($A$1:$A$9&$B$1:$B$9,$A$1:$A$9&$B$1:$B$9,0),10^4),ROW(A1)),0)&""
B列抜き出し
=INDEX(B:B,SMALL(IF(MATCH($A$1:$A$9&$B$1:$B$9,$A$1:$A$9&$B$1:$B$9,0)=ROW($A$1:$A$9),MATCH($A$1:$A$9&$B$1:$B$9,$A$1:$A$9&$B$1:$B$9,0),10^4),ROW(A1)),0)&""

ソートは意味が分からないし、正直無理だわw

配列で確定で。でも、この数式の意味がわからなければ使わない方がいいよ。もう少し綺麗な式にはなると思うけれど、
やっぱりおすすめしない

567:名無しさん@そうだ選挙にいこう
10/06/21 23:40:11
>>565
偉そうにw

568:名無しさん@そうだ選挙にいこう
10/06/21 23:45:56
>560 いくつかおたずねします。

「今月分」は翌月には「前月分」として使うことになるのですか?
説明を読んでいると、前月分のブックは処理が済めば用済みで、加工が済んだ「今月分」が
翌月には「前月分」の役目となるように理解しました。(翌月には新たな「今月分」が届く)
これだと、VBAを使うしかないと思います。

>A列の番号で並べ替え→シート1で列をコピー挿入し、シート2のE~以降を貼り付けています
今月分のシート1とシート2では、内容が異なるのでE列以降を貼り付けるとまずいのでは?
それとも、1行ずつ確認しながら貼り付ける?

569:名無しさん@そうだ選挙にいこう
10/06/21 23:51:47
>>566
意味がわかるやつは使わない。
使うやつは基地外の配列数式大先生くらいのもんだなw

570:名無しさん@そうだ選挙にいこう
10/06/22 00:22:35
>>563は三流SEレベルでよければ、A列とB列でソートしてフィルタオプションで数量が0以外を重複するレコードは無視するだな。
二流レベルを目指すならこれではまだ駄目だ。

571:名無しさん@そうだ選挙にいこう
10/06/22 00:54:48
上の三流レベルのやつはソートは抽出してからでいいからね。

572:名無しさん@そうだ選挙にいこう
10/06/22 01:14:33
>>563は配列数式でやりたければmougに行けばいいんじゃね?
配列数式の得意なMVPがいるから彼ならできるかも。

573:名無しさん@そうだ選挙にいこう
10/06/22 01:15:51
vlookupの検索値を空白セルにすることはできますか?
二択の表から”○”がついていない方を抜き出したいんです
例としては下表のとき、カメルーンを抜き出すのが目的です
  A    B
1  ○  日本
2     カメルーン
VLOOKUP("検索値",A1:B2,2,FALSE)
この"検索値"の部分をどうにかすればよいとは思うんですが、どうしてもわかりません。

574:名無しさん@そうだ選挙にいこう
10/06/22 01:27:18
>>573
空白セルを検索する方法はない。二択ならIFで調べればいい。
=IF(A1="",A1,B1)

575:574
10/06/22 01:28:09
まちがえた
=(A1="",B1,B2)

576:名無しさん@そうだ選挙にいこう
10/06/22 01:39:17
>>573
A2に「=""」と入力できるなら検索できるよ。

577:名無しさん@そうだ選挙にいこう
10/06/22 01:40:25
>>575
あ、ifでいいのか
ありがとうございました

578:名無しさん@そうだ選挙にいこう
10/06/22 01:42:12
>>576
なるほど、やっぱりifの方がよさそうですね

579:名無しさん@そうだ選挙にいこう
10/06/22 02:04:29
作業列、配列数式、VBAのどれかを使えば空白セルでも検索できるけどね。
変化球としては空白の代わりに「×」を入れて文字を白にしてしまう。そして×を検索するとか。

580:名無しさん@そうだ選挙にいこう
10/06/22 03:48:39
>>560

>前月分のデータで"a"になっているものは、今月も必要なため
>現在は前月分ファイルで"a"のデータだけソートして、値を今月分ファイルのシート2に貼り付け→
>A列の番号で並べ替え

ここまでで今月分ファイルの"シート2"は下のようになるって事ですよね?
A  B  C   D   E  F  ....
11 田中 1000  10月 魚  a
21 鈴木  1200  12月  魚  a
33 山田  1100 11月 山  a
33 山田  1100 11月  川  a
44 小池  900 10月  魚  a ←今月分シートにはいない人

>また、今月増えた人分のところには
>シート2に空行を入れてE以降を張り付ける際にずれないようにしています。
はいいんだけど
・今月分シートにはいない"小池さん"
・2行ある"山田さん"
このデータの扱いはどうするの?
(ここを処理しないと結局ずれてしまう気がするのだけど)

581:569
10/06/22 07:34:01
>>561さん、>>568さん、>>580さん、レスありがとうございます。
遅くなってしまい、申し訳ありません。

「前月分」とマージした「今月分」は、翌月には「前月分」として使います。
「前月分」はオートフィルタでF列にaと入っているデータだけ表示。
そのデータを「今月分」ファイルのシート2に値として貼り付けて
A列の番号で昇順で並べ替えています。

シート1にある「今月分」も、A列の番号で並べ替えて
シート2の前月分必要データのA列の番号と比較して、シート2に例えば山田さんの列が2行あれば
シート1の山田さん列の下に、1行追加+データコピー(名前とIDなど)をしています。

シート1ではいなくなっているシート2の小池さんは、シート2上で削除。

シート1にいて、シート2にいない人が11田中さんの下の14加藤さんの場合
シート2の11田中さんと、21鈴木さんの間に空行を入れています。
(新しく加わった14加藤さんのE以降は、手動でデータ入力するので、空欄の必要があるため)

あと、前回書き忘れていましたが、シート1とシート2のデータの比較は
シート2のA列の番号をCOUNTIFで数えて、シート1のAC列(データが入っていない列)に表示させています。
1、3、0などと表示されているのを見ながら、列の追加など行っています。

なんだかややこしくてすみません…。

582:名無しさん@そうだ選挙にいこう
10/06/22 10:51:18
>560,581
こういうことをしたいのかな?(Excel2003で3枚のシートを縦に並べたイメージ)
URLリンク(www.dotup.org)
パスワードは 2ch です。
右側のAA列以降は加工後のA列以降と見てください。

583:582
10/06/22 14:14:30
やってることは、
A 前月分のシートから「6列目に"a"がないデータを削除すること
B 前月分のシートに「今月分で初めて出現したデータ」を最下行に追加すること
C 1列目の内容でソート(Bの初出データ行が最下行から移動)
だけではないですか? だったら、月毎に役目が変わる方法じゃなくて、
前月分のシート1を「マスタ」とし、今月分のシートから初出データ行を持ってくる
方が簡単な気がします。違ってたらゴメン。



584:名無しさん@そうだ選挙にいこう
10/06/22 15:13:57
>>471,472,558 です。

 誰もご存知ない様なので他の掲示板へ再投稿してみたいと思います。
 ありがとうございました。m(_ _)m

585:名無しさん@そうだ選挙にいこう
10/06/22 17:20:52
▼━質問テンプレ (出来れば使ってね) ━━━━━━
【1 OSの種類 .】 Windows XP Service Pack 3
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】否
【5 検索キーワード 】Excel セルの幅
1セルに長い文字が入力されている時、
複数段になっても良いので
文字数に合わせてセルの幅を自動調整して、
横にはみ出ないようにすることはできますでしょうか?

つまり
URLリンク(imagepot.net)

URLリンク(imagepot.net)
のようにしたいということです。
以前は出来たのですが、やり方が分からなくなりました。
どうか教えてください。
よろしくお願いいたします。



586:複乳
10/06/22 18:02:48
>>585
右クリック 書式設定 折り返して全体を表示する

587:585
10/06/22 18:07:47
>>586
ありがとうございます。
できました!!


588:名無しさん@そうだ選挙にいこう
10/06/22 19:49:57
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

C列 D列
前  +200
前   -8
後  -300
前    0
前   +5
後  +800

↑のような場合に
1.C列が「前」の行のD列の数値の合計
2.C列が「前」の行のD列の数値が入っているセルの数の合計

の式を教えていただけないでしょうか
宜しくお願いします

589:名無しさん@そうだ選挙にいこう
10/06/22 20:03:23
>>588さんの便乗質問です。

C列 D列
001  +200
002   -8
003  -300
004    0
005   +5
006  +800

C列は商品のロットNo.です。↑のような場合に
どこかのセル2箇所に「001」と「004」とを入力すると
001~004の範囲のD列の合計をとってくれる方法を(この場合は△108になります)
教えて頂けないでしょうか。

590:名無しさん@そうだ選挙にいこう
10/06/22 20:28:35
>588 処理対象のセル範囲がC1:D6として
=SUMPRODUCT((C1:C6="前")*(D1:D6))  和
=SUMPRODUCT((C1:C6="前")*(D1:D6<>0)) 0以外の数の件数

>589 処理対象のセル範囲がC1:D6として
=SUM(OFFSET(C1,MATCH("001",C1:C6)-1,1):OFFSET(C1,MATCH("004",C1:C6)-1,1))

591:名無しさん@そうだ選挙にいこう
10/06/22 20:31:30
>>589 DSUMであっさりいけました。失礼しました…

592:名無しさん@そうだ選挙にいこう
10/06/22 21:03:22
>>590
ありがとうございます
同じ表で
3.C列が「前」の行のD列の数値で最小値

はどのようになるでしょうか?
MINを使うと思うのですが・・・

593:名無しさん@そうだ選挙にいこう
10/06/22 21:05:17
取引先からもらったエクセルのファイルで、
セルを参照するのに必ず+を付けてあるんですが、
これって何か意味があるんでしょうか?
例えばセルA1を参照する場合は「=+A1」となっています。

594:名無しさん@そうだ選挙にいこう
10/06/22 21:37:33
>>593
「=A1」と入れるかわりに「+A1」と入力しても同じ結果になって、
しかもキーボードによっては入力が楽

たぶんそれ作ったのは年配の人か、手間を惜しむためのテクニックを駆使してる人

595:名無しさん@そうだ選挙にいこう
10/06/22 21:37:58
セルに「0001」と入力すると「1」と表示されます。
文字列に指定すると「0001」と表示できますが、数値として機能しません(足し算とか出来ません)
「0001」と表示させて数値として利用出来ませんでしょうか。

596:560
10/06/22 21:40:02
>>582-583さん
画像までわざわざ上げてくださって、すみません。
今はファイルを見れないのですが、確かにA~Cまでの作業をして
「前月分」にはいるけど「今月分」にはいない人の削除をすれば完了する気がします!
前任者から「今月分に前月分の必要な部分を貼って」と言われたので、それに囚われてました。
明日データを確認してみますが、たぶん行けそうです。ありがとうございました。



597:名無しさん@そうだ選挙にいこう
10/06/22 21:43:24
>592 処理対象のセル範囲がC1:D6として
=MIN(IF(C1:C6="男",D1:D6,""))  最小値
ただし、[Enter]で入力せず、[Ctrl]+[Shift]+[Enter]で入力すること。
そうすると、数式バーの中には {=MIN(IF(C1:C6="男",D1:D6,""))}と表示される。
これは配列数式として見なされていることを示す。

参考 日経PC21 / 配列数式で条件に合うデータの最大や最小、件数を求める
URLリンク(pc.nikkeibp.co.jp)


>595
セルの書式設定([Ctrl]を押しながら[1])
表示形式のタブ
分類のところで「ユーザー定義」
分類 のところに 0000 と入れて[OK]をクリック

参考 Tips:Excelでユーザー・カスタムの書式設定を定義する
URLリンク(www.atmarkit.co.jp)


598:複乳
10/06/22 21:51:30
>>595
0001がA1セルとすると、
B1=A1*1+2
とすればB1に3と出ると思うが
別に*1しなくても計算できるような気もするガ

599:名無しさん@そうだ選挙にいこう
10/06/22 21:55:37
>>597 めっちゃありがとうございます

600:597
10/06/22 21:59:24
× =MIN(IF(C1:C6="男",D1:D6,""))  最小値
○ =MIN(IF(C1:C6="前",D1:D6,""))  最小値 セル範囲の修正に気をとられてた orz

601:名無しさん@そうだ選挙にいこう
10/06/22 22:01:31
>>597
ありがとうございます!助かりました!

602:名無しさん@そうだ選挙にいこう
10/06/22 22:52:51
>>595
文字列でも普通に計算できる
ただしすぐ隣のセルは編集すると書式が勝手に文字列に変わることがあるので注意

603:名無しさん@そうだ選挙にいこう
10/06/23 00:59:07
【1 OSの種類 .】 Windows XP SP3
【2 Excelのバージョン 】 Excel 2003

Alt+F11でVBAのエディタを出したとき、マウスのスクロールボタンで
スクロールができません。何が悪いのでしょうか?
エクセルの表はスクロールできます。


604:名無しさん@そうだ選挙にいこう
10/06/23 02:34:59
>>603
いつからスクロールできなくなった?
マウス買い換えた?

605:名無しさん@そうだ選挙にいこう
10/06/23 05:26:10
もともと出来ない

606:名無しさん@そうだ選挙にいこう
10/06/23 07:59:15
>VBAのエディタを出したとき、マウスのスクロールボタンでスクロールができません。

これ、意外と陥る罠だよな。自宅のPCだとスクロールするのに
会社のPCだとスクロールしないとか。
で、よくよく調べるとスクロールしないのがデフォで
スクロールするのはマウス付属のアプリのおかげだったり。

607:名無しさん@そうだ選挙にいこう
10/06/23 12:10:53
毎日2回、数値のデーターを記録して、最終的にグラフにするつもりなのですが、
2回のうち1回を、記録し忘れてしまうことがあります。
セルを空白にすると、並べ替えたりするときに都合が悪そうなので、
取り忘れは取り忘れとして記録したいのですが、なんと打ち込めばいいんでしょうか?

608:複乳
10/06/23 12:21:16
>>607
何入れても都合悪いでしょ
平均でも入れておけばいいnじゃない

609:名無しさん@そうだ選挙にいこう
10/06/23 12:27:18
体重だな どうでもいいけど

610:名無しさん@そうだ選挙にいこう
10/06/23 12:29:42
(´ω`)

611:593
10/06/23 12:31:24
>>594
ありがとうございます。
おっしゃるとおり年配の方が作ったものです。
確かに=より+の方が入力楽ですね。

612:名無しさん@そうだ選挙にいこう
10/06/23 13:56:48
【1 OSの種類         .】 WindowsVista
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 条件付書式、3つ以上、etc...
現在数列、数百行に渡ってデータが入っている表があるのですが、
それらのデータを基準値からどれだけ乖離しているかでセルの色を変更するか、
フォントの書式を変えたいと思っています
条件付書式での対応を考えたのですが、求められている仕様が「5段階」の変化で困っています
基準値+10、基準値+5、素のまま、基準値-5、基準値-10といった5段階です
基準値の入力された列を追加して差分を出して条件付書式で変化させようと思いましたが、
条件付書式では3つまでしか条件が設定できないので頓挫してしまいました

何か良い解決方法はないでしょうか?

613:複乳
10/06/23 14:26:06
>>612
基準値を100として、
B1=REPT("■",IF(A1>110,5,IF(A1<90,1,(A1-90)/5+1)))
とか。110以上だと5つの"■"が表示される
関数の意味が分からなければifで"■"の数を分岐させてもいいかも

逆に5つのセルに条件付書式を設定して変化させるか(B1-F1のセル)

後は手っ取り早くVBAかね~

614:名無しさん@そうだ選挙にいこう
10/06/23 15:44:21
>>612
Excel2010に乗り換える
条件がいくつでも設定できる

615:名無しさん@そうだ選挙にいこう
10/06/23 16:41:52
Excel2007使用者ですが良いクップボード拡張ソフトはないでしょうか?

Office純正のクップボードはFIFOで古いものが消されます。
Vectorにあるフリーの物はテキストだけだったり
クリックで直接貼り付けられなかったり不便です。
(探し方が足りないのかもしれませんが。)
よろしくお願いします。

616:名無しさん@そうだ選挙にいこう
10/06/23 18:46:37
>>612
別のセルに「”データ”-”基準値”」を作成し
データの書式でプラスを青、マイナスを赤とかにし
データの条件付書式で他の2つの条件をつける

617:名無しさん@そうだ選挙にいこう
10/06/23 19:25:02
>>615
クップボードはクリップボードの間違いです。

618:名無しさん@そうだ選挙にいこう
10/06/23 19:28:26
>>608
>>609
>>607ですがありがとうございます。データなし用の便利なんかってやっぱりないんですか・・
ちなみに体重じゃないです、日経先物が日中に高値と安値をつけた時刻です。

619:名無しさん@そうだ選挙にいこう
10/06/23 20:12:41
>>615
専用スレがあったのでそちらで聞きます。

620:名無しさん@そうだ選挙にいこう
10/06/23 20:17:51
>>618
グラフだけであれば、空白があっても補間できるよ

621:名無しさん@そうだ選挙にいこう
10/06/23 22:18:33
申し訳ないんですがROMってるひまがなくて、

SUMの足し算で40近くのセルを自動計算したいのですが
30が上限の方法しかわからず困ってます。

別の方法がもしあるのでしたらお教えください。

622:名無しさん@そうだ選挙にいこう
10/06/23 22:36:11
>>621
バラバラの位置にあるセルなの?

連続しているんであれば、
=SUM(A1:A10)
=SUM(A1:H1)
のように書けるんだけど

623:名無しさん@そうだ選挙にいこう
10/06/23 22:53:40
>621
数式中の引数の個数が30までって、このことかな?
Excel 2007-2003 ファイル互換について
URLリンク(www.nodai.ac.jp)
の 数式/引数個数 の説明に 旧バージョンと同様、引数の個数は 30個 までに制限されます。とある。
Excel2007までは30個らしい。

Excel2010では255個に拡張されたようです。
URLリンク(office.microsoft.com)  の
Excel 2010 では、数式には 255 個までの引数を含めることができますが、Excel 97-2003 では、
数式内の引数は 30 個までに制限されています。  の部分

>622さんが書いてるような連続した範囲でなくても、集計対象セルが規則的な場合は工夫できます。
(A1,C1,E1・・・、A1,A3,A5・・・など)

40個のセルを一度に集計しなくても、20個ずつ小計を求めて、最終的に小計セル(2個)を足す方法とか、
いろいろありますが、いかが?


624:名無しさん@そうだ選挙にいこう
10/06/23 23:13:12
バラバラでも範囲指定でいっぺんに足せるよ
URLリンク(momoiro.s4.x-beat.com)

625:名無しさん@そうだ選挙にいこう
10/06/23 23:37:46
=sum(a1,b2,c3,・・・)+sum(a5,b6,c7,・・・)

626:621
10/06/24 06:52:51
皆様ありがとうございます
最近頭が固く、そういう方法が浮かばなくなってまいりました(汗
『算数博士』返上です。

丁寧なご返答にも感動しつつ、感謝

ガンバレ NIPPON!



627:名無しさん@そうだ選挙にいこう
10/06/24 09:54:15
just basic

628:名無しさん@そうだ選挙にいこう
10/06/24 13:53:17
【1 OSの種類         .】 Windows7 32bit
【2 Excelのバージョン   】 Excel2003、Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel2010 改ページ 印刷
A122、CV1までのセルを使った帳票データを印刷する場合での質問です。
そのデータは行と列の高さや幅を全体的に小さくしてあります。(高さ6、幅1)
ページ設定で「次のページ数に合わせて印刷」にチェックを入れていれば、Excel2003では特に問題なくA4横ピッタリに印刷できていました。
しかし、Excel2010にバージョンアップしていざ印刷しようとするとA4で20枚というとんでもない枚数になってしまいます。
印刷メニュー内の設定で「シートを1ページに印刷」を選ぶとプレビューではきちんと収まっているのですが、いざ印刷が始まるとA4の真ん中にデータの一部しか印刷されていないものが20枚出てきます。
印刷が終わってからそのデータを見ると、改ページ表示がめちゃくちゃになり20分割されています。
改ページ位置の修正も効かず、泣く泣く2003で印刷する羽目になっています。
2010でうまく印刷するにはどうすればいいのでしょうか。



629:名無しさん@そうだ選挙にいこう
10/06/24 15:13:21
>>628
2010は知らないけど
ページ設定の拡大縮小、水平垂直位置、余白・・かなぁ

630:名無しさん@そうだ選挙にいこう
10/06/24 18:50:16
>>626
『算数博士』返上…か。
オレは
『エロ大魔王』返上でつ。w

631:名無しさん@そうだ選挙にいこう
10/06/24 23:47:11

【1 OSの種類         .】 Windows95
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ペイント
スクリーンショットとbmpファイル出力とセルドット化できるブックを作ったんですが
あと何か機能をつけるとしたら何が必要ですかね

632:名無しさん@そうだ選挙にいこう
10/06/25 00:09:08
シベリアよりレス代行お願いしています。
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 オートフィル 一方のみ 同じ A1*B1 A2*B2
検索キーワードでどうひいていいかわからず、詰まってしまいました。
B3に適当な数値が入れてあり、その下の表に
F6*B3
F7*B3
F8*B3



と、Fの数値にひたすらB3の数値をかける式を入れている列があります。
いちいち手打ちするのが面倒なので、オートフィルでやろうとしたところ、
F6*B3
F7*B4
F8*B5



となってしまいます。どうすれば上のように片方だけの数値を変化させてオートフィルさせることができますか?

633:名無しさん@そうだ選挙にいこう
10/06/25 00:16:32
>>631
個人的に本気で欲しいのはpdfファイルの編集機能
(pdfの作成じゃないよ)
これは作れるなら需要あるとおもう

後は・・大概あるんじゃないかな

Excelでらき☆すたOPを再現してみた
URLリンク(www.nicovideo.jp)
(エクセルのセルにドットを当てはめドット絵ムービー)

他ライフゲームなど
URLリンク(www.nicovideo.jp)エクセル?sort=v
URLリンク(www.nicovideo.jp)
ファミコンエミュなんてのもあったはずだけど見つからないな

634:名無しさん@そうだ選挙にいこう
10/06/25 01:45:54
>632
=F6*B3 と入力したセルを編集状態にして、B3 を選択した状態で[F4]キーを押してみてください。
=F6*$B$3 というふうに変わったはずです。
これをオートフィルすると $B$3 は変わりません。

参考 Excel豆知識6-1:エクセル:絶対参照・相対参照
URLリンク(www11.plala.or.jp)

635:名無しさん@そうだ選挙にいこう
10/06/25 02:11:26
>>634
ありがとうございます!これで作業がかなり楽になりました。
参考サイトも明日(今日?)ゆっくり見て勉強させていただきます。

636:名無しさん@そうだ選挙にいこう
10/06/25 02:13:42
just basic

637:名無しさん@そうだ選挙にいこう
10/06/25 02:49:50
通常
「A」と入力すると「A 1101」
「B」と入力すると「A 1102」と表示されるように辞書登録しており
この後、各数字を色変更するのですが

「A」と入力すると「A 1101」が表示された際
数字のみを自動的に所定の色に変更してくれる方法は無いですか?

638:637訂正
10/06/25 05:17:26
エクセル2007を使用

通常
「A」と入力すると「A 1101」
「B」と入力すると「A 1102」と表示されるように辞書登録しており
この後、各数字を色変更するのですが

「A」と入力すると「A 1101」が表示された際
数字のみを自動的に所定の色に変更してくれる方法は無いですか?


後、特定のセルに何らかの数字が入力された場合のみ
色変更するにはどうしたらいいですか?

639:名無しさん@そうだ選挙にいこう
10/06/25 06:50:38
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ユーザーフォーム

セルをクリックするとユーザーフォームが開きコマンドボタンに登録されている文字が入力され隣のセルに移動るようになっているのですが、特定の文字だけ入力時にフォントのサイズが変わるようにしたいのですが、よろしくお願いいたします。





640:複乳
10/06/25 09:49:57
>>637
Private Sub Worksheet_Change(ByVal Target As Range)
For i = 1 To Len(Target)
If IsNumeric(Mid(Target, i, 1)) Then
Target.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 '3は赤色
End If
Next
End Sub

>>638
Sub a()
Dim unko
unko = "うんこ" '変えたい文字
Dim unkolen
unkolen = Len(unko)
If Selection.Row = 1 And Selection.Column = 1 Then 'とりあえずA1セル限定
For i = 1 To Len(Cells(1, 1))
If Mid(Cells(1, 1).Value, i, unkolen) = unko Then
ActiveCell.Characters(Start:=i, Length:=unkolen).Font.Size = 15 'フォントサイズ
End If
Next
End If
End Sub

641:複乳
10/06/25 11:09:31
おおっと
>>640下のコードは>>639宛だ

642:名無しさん@そうだ選挙にいこう
10/06/25 12:04:09
>If Mid(Cells(1, 1).Value, i, unkolen) = unko Then

ひでぇw

643:642
10/06/25 12:08:17
>639,複乳

つInstr




644:複乳
10/06/25 12:41:58
>>642>>643
ありがとうございます

645:複乳
10/06/25 12:51:44
こんな感じかねぇ。でも文字列が二箇所以上にあるとだめなんだよなぁ
>>639
Sub a()
Dim unko
unko = "うんこ" '変えたい文字
Dim unkolen
unkolen = Len(unko)
tempstr = InStr(ActiveCell.Value, unko)
If tempstr Then
ActiveCell.Characters(Start:=tempstr, Length:=unkolen).Font.Size = 15 'フォントサイズ
End If
End Sub

646:名無しさん@そうだ選挙にいこう
10/06/25 14:09:40
>645
>でも文字列が二箇所以上にあるとだめなんだよなぁ

応用もできんのか?
半年ROMってろ。

647:名無しさん@そうだ選挙にいこう
10/06/25 22:29:51
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

O列 P列

5   V
3  
10  V
8   V


1   V
15
7   V


↑のような場合

*P列に「V」がある行のO列の数値で最大の数値

を求める関数教えていただけないでしょうか
宜しくお願いします

648:名無しさん@そうだ選挙にいこう
10/06/25 22:56:53
>>647
数値がプラスの値だけなら=MAX((P1:P9="V")*O1:O9)の配列数式。
分からなければ作業列のQ1:Q9に=IF(P1="V",O1,"")として=MAX(Q1:Q9)




649:名無しさん@そうだ選挙にいこう
10/06/25 23:01:40
見出しありならDMAXでもできる。

650:名無しさん@そうだ選挙にいこう
10/06/25 23:11:24
B3セルに入れた文字をファイル名にして保存するんだけど、
/ とか : を使う人がいて、保存できないと騒ぐ人がいます。
また、海外に送るので半角英数字にしたいんですが、
全角のアルファベットを使う人がいます。
これらが入ってたら「ダメぽ」ってメッセージを出すには
どうすればいいですか?



651:647
10/06/25 23:15:42
>>648
ありがとうございます。
この表は下にどんどん追加されるものなのですが
常にMAXが更新されるようにするにはどうすれば良いでしょうか?

652:647
10/06/25 23:35:13
自己解決しました。ありがとうございました

653:名無しさん@そうだ選挙にいこう
10/06/26 00:01:17
>>650

If Range("B3").Value Like "*[!A-Za-z0-9]*" Then
MsgBox "ダメぽ"
End If

654:名無しさん@そうだ選挙にいこう
10/06/26 00:04:16
>650

=IF(B3=ASC(B3),"OK","NG")

655:名無しさん@そうだ選挙にいこう
10/06/26 00:07:59
>647,651
O1:O9 を O1:O256 とか O1:O65535 などとする
P1:P9 も同様

Excel2007からは O:O のように列全体も指定できるそうだけど、扱うセル数が極端に多くなるからやめといた方が吉。 

656:650
10/06/26 00:40:39
>>653
うぉーすごいぃぃ、
ありがとうです。
"*[!A-Za-z0-9]*"って、英数字だったらOKってこと?
!はどんな意味が?

>>645
/ とか : だとダメですた。
653氏のを使わせてもらいます。

657:名無しさん@そうだ選挙にいこう
10/06/26 00:57:43
>>650
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
ここでStrConv関数で
if 変換前<>変換後 then
msgbox "ふじこ"
かな。


658:653
10/06/26 00:57:58
>>656
詳細はHelpの Like演算子をみてね

ちなみに ! はそれ以外だったらってことで
今回は英数字(A-Za-z0-9)※以外※が何処かにあると
メッセージを表示

659:名無しさん@そうだ選挙にいこう
10/06/26 06:11:50
エクセル2007を使用。


1日目(D35~51 N35~50) 2日目(X35~51 AH35~50) 10日目(GB35~51 GL35~50)
11日目(D86~102 N86~101) 12日目(X86~102 AH86~101) 20日目(GB86~102 GL86~101)
21日目(D137~153 N137~152) 22日目(X137~153 AH137~152) 31日目(GV137~153 HF137~152)

上記の各セルに数字が含まれると
自動的に 数字のみを 青に色変更させる。

例えば
D35「A 1101」 D36「C 1103」 N35「A 1101」 N36「X」だとすれば
1101 1103の部分だけ色変更させるってことです。



そして数字の色変更した数を、
1日目(N51) 2日目(X51) 10日目(GL51)・・・31日目(HF153)の場所に
自動的表示。

例えば
1日目がD35「A 1101」 D36「C 1103」 N35「A 1101」 N36「X」だとすれば
数字のあるとこだけ抽出して、1日目のN51は3というわけ。

660:名無しさん@そうだ選挙にいこう
10/06/26 06:12:45

1日目(E35~51 O35~50) 2日目(Y35~51 AI35~50) 10日目(GC35~51 GM35~50)
11日目(E86~102 O86~101) 12日目(Y86~102 AI86~101) 20日目(GC86~102 GM86~101)
21日目(E137~153 O137~152) 22日目(Y137~153 AI137~152) 31日目(GW137~153 HG137~152)

に一番上から連続で数字を入力していき
2つ以上続けて数字が入力された場合、数字を最後に入力した次のセルに自動でオートシェルし、その数字を色変更させる。

一番上からの数字が連続です
1つだけの場合、オートシェルは発動させないが、自動で色変更はさせる。

間が開いた数字はオートシェルも色変更もさせない。

例えばE35=5000 E36=2000 E37=4000だとするなら
自動的にE38に11000と表示され、その11000のセルは自動的に色変更される。

O35=8000 O36=7000 O40=5000ならば
連続した数字のO35・O36の次のセルであるO37には
自動的に15000と表示され、色変更も自動でされるが

間が開いているO40=5000の数字は
5000そのままで、色変更もされない。

661:名無しさん@そうだ選挙にいこう
10/06/26 06:14:44

1日目(O51) 2日目(Y51) 10日目(GM51)・・・31日目(HG153)の場所に
①で数字が書いてある右横の数字だけ合計し
数字が書かれてない右横の数字はマイナスしたものを自動表示にする。

例えば
D35「A 1101」 E35「5000」
D36「C 1103」 E36「2000」
D37「D 1104」 E37「4000」
N35「A 1101」O35「2000」
N36「X」 O36「10000」
N40「2101」 O40「500」だとするなら
051の数字は5000+2000+4000+2000+500-10000となる。

662:名無しさん@そうだ選挙にいこう
10/06/26 08:42:19
>>647,651
どのように自己解決したか知らんが、配列数式で>>655みたいに範囲を広く取るのは重くなるのであまり良くないが
DMAXなら範囲を広くとってもほとんど重くならない。

O列の見出しが金額で、P列の見出しが旗で条件がR1:R2で
R1に旗、R2にVと書いてあれば
=DMAX(O:P,"金額",R1:R2)
=DMAX(O:P,O1,R1:R2)
など。


663:名無しさん@そうだ選挙にいこう
10/06/26 18:32:26
EXCELのブックを開いたときに中身が何もない状態になる。
枠だけは見えるけど、真ん中がPCのデスクトップと同じ柄になって、
セルも何もないのです。VBAを色々実験していたら、普通に開かなくなりました。
どうしたらいいでしょう?説明が下手ですみません。


【1 OSの種類       】 WindowsXP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか   】 少し
【4 VBAでの回答の可否】 可


664:名無しさん@そうだ選挙にいこう
10/06/26 19:16:49
>663
状況がわからないので、いくつかおたずねします。
Q1 ブックが開いているのは間違いないか?
  (タイトルバーに Microsoft Excel-Book1 などアクティブなブック名が表示されているか)
  (プログラムを閉じる × とは別に、ブックを閉じる × は見えるか)

Q2 列名や行番号は表示されているか?
  (すべての行を非表示にすると列名だけ表示されるが行番号は見えなくなる、すべての列を非表示に
   すると行番号だけ表示されて列名は見えなくなる)

Q3 >真ん中がPCのデスクトップと同じ柄 とは、バックのデスクトップの状態が透けて見えるということ?
  (デスクトップ上のアイコンの並びも見えるのか)

Q4 問題は当該ブックだけなのか? 当該ブックを他のPCで開いたときも同じ状況なのか?
  (他の既存ブックや、新規ブックのときはどうなのか)

答えていただいたからといって自分が適切な回答できるとは思いませんが、詳しい方にはピンとくるかも。

665:名無しさん@そうだ選挙にいこう
10/06/26 19:48:44
>>664
レスありがとうございます。
Q1 ブック名は表示されています。内側の×は表示されていません。

Q2 列名、行番号は表示されていません。

Q3 バックのデスクトップの状態が透けて見えるということです。
  デスクトップ上のアイコンの並びも見えます。

Q4 新規ブックむ含め、全てのエクセルが同じ状態です。


ACCESSでVBAを書いているのですが、EXCELもACCESSも一旦閉じて、
再度立ち上げると普通に開くようです。
ACCESSを開いたままでEXCELが開けないと、何かと不自由なので質問してみました。

666:名無しさん@そうだ選挙にいこう
10/06/26 23:09:49
Sub mojiiro2()
Dim RE, c
Dim myRng As Range
Dim myStr As String
Dim i As Integer
Set RE = CreateObject("VBScript.RegExp")
With RE
.Pattern = "[0-9]" '----パターンを設定
.IgnoreCase = True
.Global = False

For Each myRng In Selection
For i = 1 To Len(myRng)
myStr = Mid(myRng.Value, i, 1)
If .Test(myStr) Then
With myRng.Characters(Start:=i, Length:=1).Font
.ColorIndex = 42
End With
End If
Next i
Next myRng
End With
Set RE = Nothing
End Sub


0-9の半角だけでなく
0-9の全角も変換されるようにしたいのですが
どうしたらいいですか?
コピペしてきただけなんで、よく判らないんです。

667:名無しさん@そうだ選挙にいこう
10/06/26 23:16:57
"[0-9,0-9]"でどうかね しらんけど

668:名無しさん@そうだ選挙にいこう
10/06/26 23:18:44
>>667
出来ました
ありがとうございます。
(*'ε`*)チゥ

669:666
10/06/26 23:41:27
すいません。
.ColorIndex = 42
ってのは、もっと細かく設定できませんか?
R49 G134 B155ってのにしたいんです。

670:666
10/06/26 23:45:38
事故解決しました。

671:名無しさん@そうだ選挙にいこう
10/06/27 19:42:10
【1 OSの種類       】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか   】 少し
【4 VBAでの回答の可否】 可

A列   ・・・ N列
100       56
100       32
100       40
103 69
103 35
104 9
104 35
104 9
104 23

A列に重複した値が複数行(1行だけのもあるかも)まとまってある中で
A列が同じの行のN列の値を比較して最小値を調べて隣のP列のセルに○を入れたいです。

例 100→32○
   103→35○
   104→二つの9の隣に○


672:671
10/06/27 19:43:02
ありゃ、103のところから数字がずれました。。
ゴメンナサイ

673:名無しさん@そうだ選挙にいこう
10/06/27 21:03:07
>>671
A1からだとして
=IF(MIN(IF(ISERROR(MATCH($A$1:$A$10,A1,0)),10^10,$N$1:$N$10))=N1,"○","")

CTRL+SHIFT+ENTERの同時押しで確定させて式の前後に { }をつける(配列数式)

674:名無しさん@そうだ選挙にいこう
10/06/27 21:20:20
>>673
ご親切にありがとうございます!
これからちょっとやってみます!!!

675:名無しさん@そうだ選挙にいこう
10/06/27 21:33:11
配列の関数って下にオートフィルしたらがうまくいかないですね。
ぐぐってきます!

676:名無しさん@そうだ選挙にいこう
10/06/27 21:39:23
>>675
え?できるよ?(´・ω・`)

677:名無しさん@そうだ選挙にいこう
10/06/27 21:40:12
A1に 2000と入れて、それをB1に反映させる場合は
B1に =A1 と入力すれば良いのは分かるのですが

B1に 料金合計額(●円)とあって
●のとこにA1を反映させるにはどうしたらいいですか?

678:名無しさん@そうだ選挙にいこう
10/06/27 21:42:32
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

='950'!$X"INDIRECT($K$12)"
あるセルに他のシート(シート名:950)のX列のある行の数値を表示させたいのですが
その行の部分のみK12セルでコントロールしたいのですが上記でエラーが出ます
どなたか間違い部分をご指摘いただけないでしょうか
宜しくお願いします

679:名無しさん@そうだ選挙にいこう
10/06/27 21:45:01
>>675
え?で、出来るぞ?

680:名無しさん@そうだ選挙にいこう
10/06/27 21:48:05
>>677
一番簡単なのはセルの表示形式で、ユーザー定義で

料金合計額(0円)

と入れればOK

681:名無しさん@そうだ選挙にいこう
10/06/27 21:51:57
>>678
=INDIRECT("950!$X"&$K$12)

ってことかい?

682:675
10/06/27 21:53:59
あれ、なんでだろ?
上の例でA列100の行の間はうまく表示されるんですが、
A列が103の行になった途端、ブランクのまんまなんです。。
でも考え方を教えていただきましたのでこれでなんとかやってみます!
ありがとうございました!

683:名無しさん@そうだ選挙にいこう
10/06/27 21:55:38
>>682
なんとなく、配列数式になっていない予感?

684:名無しさん@そうだ選挙にいこう
10/06/27 21:56:31
>>681
できました!ありがとうございました!

685:682
10/06/27 21:58:45
>>683
そうですかね、数式の両脇に{}つけてるんですけどね。。。
でもやっぱどっかおかしいと思いますので成功するまでやってみますね!



686:名無しさん@そうだ選挙にいこう
10/06/27 22:00:22
>>677
"料金合計額("&A1&"円)"

687:名無しさん@そうだ選挙にいこう
10/06/27 22:02:18
>>682
100行の間はうまくいくのなら
100行を超えるとその数式が破綻する様なものになっているってことだろ

688:677
10/06/27 22:11:54
ありがとうございます。
出来ました。

もう1つ質問なのですが
金額(数字)を入れた場合だけ、別のセルで合計額を反映して
金額(数字)を入れない場合は、無表記にすることって出来ますか?

A1(2000) B1(料金合計額(2000円)
A2(1000) B2(料金合計額(3000円)
A3     B3(料金合計額)・・・金額が入力されない時は合計額を表示させない。
A4(2000)  B4料(金合計額(5000円)

って出来ますか?

689:名無しさん@そうだ選挙にいこう
10/06/27 22:15:07
>>688
>>680を使った場合
=IF(A1<>"",SUM($A$1:A1),"")


690:名無しさん@そうだ選挙にいこう
10/06/27 22:15:39
あ、下にコピーって書くの忘れた

691:名無しさん@そうだ選挙にいこう
10/06/27 22:23:38
=IF(A1="","",SUM())

俺はわかりやすいからこう書くようにしてる

692:682
10/06/27 22:23:45
>>687
ありがとうございます!出来ました!
私の例の書き方が10行しかなくて教えて頂いた下の数式の10の値を本来の最後の行の値にしたら
出来ました!どうもみなさん色々ありがとうございました!助かりました!
=IF(MIN(IF(ISERROR(MATCH($A$1:$A$10,A1,0)),10^10,$N$1:$N$10))=N1,"○","")


693:名無しさん@そうだ選挙にいこう
10/06/27 22:39:33
いまエクセル見られないから検証できないけど、これでよくない?

=IF(MIN(IF(COUNTIF($A$:$A$,A1),$N$:$N$,10^10))=N1,"○","")

694:名無しさん@そうだ選挙にいこう
10/06/27 23:51:22
初心者ですが、質問です。
例えば

a 2 3 8 1 14
b 1 5 9 1 16
c 2 3 1 2 8
x
となっていて、xでこの合計を出すためにはどのような式なりますか?

695:名無しさん@そうだ選挙にいこう
10/06/28 00:04:50
全部を範囲指定すりゃいいじゃん

SUM(A1:E3)とか

696:688
10/06/28 01:09:51
=IF(H31>=1,"料金  (合計"&H31/1000&"千円)","料金")
=IF(AD31>=1,"料金  (合計"&(H31+AD31)/1000&"千円)","料金")
=IF(AZ31>=1,"料金  (合計"&(H31+AD31+AZ31)/1000&"千円)","料金")
=IF(BV31>=1,"料金  (合計"&(H31+AD31+AZ31+BV31)/1000&"千円)","料金")
=IF(BV31>=1,"料金  (合計"&(H31+AD31+AZ31+BV31+CR31)/1000&"千円)","料金")
=IF(BV31>=1,"料金  (合計"&(H31+AD31+AZ31+BV31+CR31+DN31)/1000&"千円)","料金")
=IF(BV31>=1,"料金  (合計"&(H31+AD31+AZ31+BV31+CR31+DN31+EJ31)/1000&"千円)","料金")
=IF(BV31>=1,"料金  (合計"&(H31+AD31+AZ31+BV31+CR31+DN31+EJ31+FF31)/1000&"千円)","料金")
=IF(BV31>=1,"料金  (合計"&(H31+AD31+AZ31+BV31+CR31+DN31+EJ31+FF31+GB31)/1000&"千円)","料金")
=IF(BV31>=1,"料金  (合計"&(H31+AD31+AZ31+BV31+CR31+DN31+EJ31+FF31+GB31+GX31)/1000&"千円)","料金")

としたのですが
コード?をもっと短くできる方法は無いですか?
これが限界でしょうか?

697:名無しさん@そうだ選挙にいこう
10/06/28 01:14:56
=IF(AD31>=1,"料金  (合計"&SUM(H$31$:AD31)/1000&"千円)","料金")
て感じでどう?

698:688
10/06/28 01:18:18
>>697
すいません
3つ目の=IF(AZ31>=1,"料金  (合計"&(H31+AD31+AZ31)/1000&"千円)","料金")
だとどうなるのでしょうか?

>>697の例だと、あまり変らないように見えたので。

699:名無しさん@そうだ選挙にいこう
10/06/28 01:19:41
>>698
最初のH31だけ絶対参照してるから、オートフィルで勝手にSUMの範囲が伸ばされる
どんなシートにしてるかわからんけど、ちゃんと同じ列に金額を入れてるならこれでできるはず

700:688
10/06/28 01:25:17
>>699
出来ませんでした。

=IF(AD31>=1,"料金  (合計"&SUM(H31:AD31)/1000&"千円)","料金")
とすれば出来ましたが

何故か、小数点が表示されます。


701:688
10/06/28 01:53:58
すいません。コードの省略は諦めます。
シート2にシート1の結果を反映させるには
どうしたらいいですか?

シート1 の最終合計額が10000円で
シート2のH31が2000だとするなら、シート2のP1には料金(12千円)と表示させたいんです。

702:701
10/06/28 02:14:21
=IF(H31>=1,"料金  (合計"&(H31+'シート1'!H31+'シート1'!AD31+'シート1'!AZ31+'シート1'!BV31+'シート1'!CR31+'シート1'!DN31+'シート1'!EJ31+'シート1'!FF31+'シート1'!GB31+'シート1'!GX31)/1000&"千円)","料金")

一応、こうすれば出来ましたが
もっとコード?を短くできる方法は無いですか?

無視しないで(´・ω・`)

703:名無しさん@そうだ選挙にいこう
10/06/28 02:16:26
よくわからん状況になってきたからデータうpしてもらったほうが回答しやすそう

704:名無しさん@そうだ選挙にいこう
10/06/28 02:35:11
単純に式を短くするアイデア
シート1のどこかで合計を出しておいて、それを参照するだけにする

705:701
10/06/28 02:52:32
>>704
こちらにうpしました。

シート1 シート2(最初の3つ目だけ作成)があります。
URLリンク(opainyan.hp.infoseek.co.jp)

706:名無しさん@そうだ選挙にいこう
10/06/28 03:03:25
>>705
埋めてみたからこれ参考にして
URLリンク(www.dotup.org)

707:701
10/06/28 03:09:18
>>706
ありがとう。
試してみます。

708:701
10/06/28 03:19:51
シート1の2つ目を

=IF(AD31>=1,"料金  (合計"&SUM($H$31:AD31)/1000&"千円)","料金")

としたところ
料金  (合計3.036千円)と表示されます。
.036は不要なんですが消せないんでしょうか?

709:名無しさん@そうだ選挙にいこう
10/06/28 03:23:21
>>708
何でそうなるのかわからんけど、ROUNDDOWN関数使えば切り捨てできる
桁数は-3でいけるはず

710:701
10/06/28 03:31:29
>>709
うpしたファイルは、あくまで例で
実際のファイルには他にも数字が記入されてるからでしょうか?

711:701
10/06/28 03:34:33
>>709
すいません。
実際のファイルには
31と5が料金の横のラインに記入されています。
これが原因かと思われます。

712:701
10/06/28 03:37:59
>>711を考慮すると
やはり>>705の最初のやつしか方法は無いのでしょうか?

713:名無しさん@そうだ選挙にいこう
10/06/28 06:07:38
件数がいくらであろうと自動的にオートSUMしてくれる方法は無いですか?

3000
2000
5000
と入力したら、オートSUMを押さずとも
自動的に10000と表示され

3000
5000なら
自動的に8000と表示されるみたいな。

714:名無しさん@そうだ選挙にいこう
10/06/28 06:27:30
>>713
バージョンにもよるけど普通にテーブル使えばいいんじゃね?

715:名無しさん@そうだ選挙にいこう
10/06/28 08:32:45
>713

つIndirect

716:名無しさん@そうだ選挙にいこう
10/06/28 11:32:32
>>714
2003ならリスト
集計行が恐ろしく便利


717:名無しさん@そうだ選挙にいこう
10/06/28 21:45:02
毎日、不定期な費名(ランダム)と金額があり、それを記入すると
項目の合計金額に自動的に反映するようにしたいんですが
どうしたらいいですか?

例えばA3~A10に費名(その都度違う)を入力し、費名に対する金額を入力すると
自動的にG3~G10に合計金額として出したいんです。




ファイルをうpしました。
URLリンク(opainyan.hp.infoseek.co.jp)

718:名無しさん@そうだ選挙にいこう
10/06/28 22:18:15
>717
SUMIF関数でできますよ。
参考 SUMIF関数ならただの合計ではなく、条件に合うものだけを合計できます!Excel・エクセル関数技!
URLリンク(kokoro.kir.jp)

719:718
10/06/28 22:29:07
>718の追加
参考に挙げた例だと検索条件に直接文字列を入れていますが、セルを指定するといいです。
それと、計算式を下へコピーする前に計算範囲を絶対指定に変更する必要があります。
なので、>717の場合だとG18セルに =SUMIF($A$18:$A$25,E18,$C$18:$C$25)と入れて
下へフィルコピーになります。

720:名無しさん@そうだ選挙にいこう
10/06/29 20:49:11
>>718-719
ありがとうございます。
できました(´∀` )

お手数ですが、現在の状態だと常に0が表示されてますが
加算された時だけ数字が表示され
加算されない限り、無表記としたいのですが「
どうしたらいいですか?

721:名無しさん@そうだ選挙にいこう
10/06/29 20:59:46
プロパティで0を非表示
見た目だけならこれでOK

722:名無しさん@そうだ選挙にいこう
10/06/29 21:07:59
解決できました。
ありがとうございます。

723:名無しさん@そうだ選挙にいこう
10/06/30 12:07:50
教えてください
引用元の帳票が12桁あり
VLOOKUPで戻り値を右側6桁で返したいのですが
セルの書式設定以外で何か方法ありますでしょうか?
関数の組み合わせで何か宜しくお願いします。

724:名無しさん@そうだ選挙にいこう
10/06/30 12:11:11
>>723
right関数

725:723
10/06/30 12:14:31
>>724

有難うございます
具体的にどんな数式になるか
教えていただけると助かります
VLOOKUPのが先なのは判るんですが


726:名無しさん@そうだ選挙にいこう
10/06/30 12:24:29
=right(vlookup(a1,a1:b2,2,true),6)
みたいなかんじ

727:723
10/06/30 12:47:45
>>726

出来ました!
有難うございます。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch