Excel総合相談所 92at BSOFT
Excel総合相談所 92 - 暇つぶし2ch575: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