« 2018年5月 | トップページ

出版元より高い Amazon での価格

新聞で紹介されていておもしろそうだと思った本を、Amazon でさっそく買おうとした。

それで、ふと気づいたのが「Amazon のページで表記されている価格のほうが、新聞の書評欄に載っている価格より高い」こと。

何かの間違いかと思って、出版元のサイトで確認してみた。
そちらに載っている価格は、新聞の書評欄に載っているものと同じだった。

おかしくないか? なんでそうなる。

買おうとしたのは次の2冊。いずれも電子書籍ではなく、紙の本だ。

で、各出版元にあるページがこちら。

前者の場合、出版元では2,052円(税込み)となっているけど、Amazonでは2,779円とかだったりする。後者の場合は、税込みで1,620円なのに、2,397円とかになってるしで。

おいおい。出版元が表示している価格より、高い価格で売ってるってどうなのよ。
僕は出版業界のルールは全くの門外漢なので、業界的にはぜんぜんおかしくないのかもしれないけどね……。

Amazon のサーバーは日本にないから、全然違う価格で売っても問題ないとか?

仮になんだかんだとややこしい大人の事情があるとしてもだ――気づかずに Amazon のボタンをクリックしてたら、数百円とはいえ無駄に高い価格で買ってたということだよな。
いち消費者としては、なんだかなあな気分だぞ。

今までも気づいてなかっただけで、Amazon で紙の本を買ったら、出版元の価格より高く買ってたのか?

どういうからくりに基づく、商習慣的・制度的・法的・論理展開の末の決着なんだろ――。わからんぞ。

'18/6/13追記:
さっき見たら、Amazon のページで両方とも出版元と同じ価格が表示されてた。なんだったんだろ? スクリーンショットを取っておくべきだったかな。

| | コメント (0) | トラックバック (0)

コハダ、覚えてる?

妻と入った回転ずし店。隣にいたカップルの男性の方が、目の前にいるお店の人にかけた言葉。

たしかに、あなたはコハダを注文していたよね。まだ来ないな――と思っても仕方がないくらい時間がかかっていたのかもしれない。

それにしても、「コハダ、覚えてる?」ってなんだろ? しかも、店員さんとはいえ、あきらかに年上だとわかる人に向かって言うには失礼な言い方だなあ。

礼儀ってものがあるだろうに。せめて「コハダ、まだですか?」ぐらいじゃないかと思うのだけど。

だいたい、「覚えてる?」って尋ねることに何の意味があるんだろ?

あなたは早くコハダが欲しい――。その目的を出来るだけ速やかに達成することを考えるなら、(注文が入っていたことを)覚えているかどうかの確認ではなく、コハダがまだ手元に来ていないことを告げるのが、より効果的だろうに。

そういうのを嫌味っていうんだ。

「そうだよ。嫌味を言ったんだよ」と最初からそのつもりだとしたら、いっしょにいる女性のことを思ってあげてほしいぞ。
いつか周りから「"そんな嫌味を平気で言う男" といっしょにいて、それでいいんだ」って思われて、彼女自身の評価を下げるときがくるよ。

というか、もう下がってるかもしれないけど。それも2人そろって。

まあ何にしても、いつでもどこでも、相手が誰であっても、「コハダ、覚えてる?」式の「嫌味による注意喚起」は、やめた方がよいと思うよ。

たとえ嫌味だとかなんだとかいう意識は何にもなくても、そんな尋ね方を受けて、嬉しい人はいないだろうし、「忘れないようにしっかりと覚えておかなくちゃ」なんて意識になるのか? といえばあやしいし。
それを続けていくことで、あなたにプラスになることがあるかというと、たぶん、それも無いだろうなあ。

見知らぬどこかのあなたへ。

他者も嬉しくないし、自分にもプラスにならない。だから、そんな言い方は早くやめなよと、僕としては言いたい。

| | コメント (0) | トラックバック (0)

Excel で2つのシートでセルの値を比較して検算する。

この記事は自分用の覚書です。
(Windows 10 Pro 64ビット + Excel2016 Office365 Business サブスクリプション  バージョン1805(ビルド9330.2087)

N.T さん。

2つのシートでセルの値を比較して検算するプロシージャです。

■課題

  • 1つのブックのなかで隣り合っている2つのシートにそれぞれ表が1つ載っている。それら2つの表の値が全く同じであるかを比較して検算する作業を楽にしたい。
  • ブックのなかのシートは3枚以上になることもある。
  • G列3行目のセルから比較していく。
  • 表の行数・列数はそのときどきで変わる。
  • どのセルの値が違っているかを、ぱっと見てわかるようにしたい。

隣り合っている2枚のシートということでしたので、右側のシートのさらに右に検算用のシートを挿入して処理するようにしました。
(このコードでは、離れたシート同士を比較することはできません)

2つの表で値が異なっているセルがあったら、検算用のシートで該当するセルを赤く塗るようにしました。

最後に、できあがった検算用シートの表示倍率を20%にしてあります。
もらったサンプルがけっこう大きな表だったので、20%で全体を眺めることができたもので。そこに赤いセルがなかったら、2つのシートにある表は全く同じということです。
(表示倍率を変えたいときは、最後の ActiveWindow.Zoom = 20 の行で 20 を変えてください。)

検算用のシートのシート名は、「検算用_左端のシートから数えた枚数」といった書式になります。
シートが2枚だったら、「検算用_3」というシートが右端にできます。

シートが3枚以上になることもあるということですが、比較したいシートをどうやって扱えば比較できるか、私のスキルではわかりませんでした。

幸い、ブックが出来上がった時点では、比較したいシート同士は隣り合って並んでいるということだったので、「比較するシートを左右に並べて、右側のシートを開いていることを確認してからこのプロシージャーを実行する。」ということにさせてください。

スキル不足ですみません。

G列3行目のセルから比較していくとのことでしたので、FOR...NEXTステートメントの繰り返しの初期値は、7 と 3 になっています。
コメントの中にも書いていますが、比較を始めたいセルの位置が変わったら、その部分を合わせて変えてください。

また、表の列数と行数がその都度変わってくるということで、表の最大列数と、最大行数を、それぞれ Cells(5, Columns.Count).End(xlToLeft).Column と Cells(Rows.Count, "G").End(xlUp).Row の部分で取得しています。

Cells(5, Columns.Count) としたのは、値の抜けがないセルが行の右端まで続いているのは5行目以降だったからです。
5 を選んだ理由は特にありません。一番上の行なので 5 としたまでです。

同じ理由で、Cells(Rows.Count, "G").End(xlUp).Row としたのは、空欄でないセルが並んでいるG列を基準にしたかったからです。
空欄でないセルが並んでいれば、どの列でもよいのですが、G列のセルから比較を始めるので、G列を基準にしておくのが自然な書き方かと思います。


Sub 二つシートでセルの値を比較して検算する()
'
'比較する二つのシートが左右に並んでいて、
'右側のシートを開いていることを確認してからこのプロシージャーを実行する。
'
    Dim i As Long
    Dim j As Long
    Dim 検算用シートの位置 As Long

    ActiveSheet.Copy After:=ActiveSheet
    検算用シートの位置 = ActiveSheet.Index '■1

    '■2
    For i = 7 To Worksheets(検算用シートの位置 - 2).Cells(5, Columns.Count).End(xlToLeft).Column
        For j = 3 To Worksheets(検算用シートの位置 - 2).Cells(Rows.Count, "G").End(xlUp).Row
            If Worksheets(検算用シートの位置 - 2).Cells(j, i).Value <> Worksheets(検算用シートの位置 - 1).Cells(j, i).Value Then
                Worksheets(検算用シートの位置).Cells(j, i).Interior.Color = 255
            End If
        Next j
    Next i

    '■3
    With Worksheets(検算用シートの位置)
        .Name = "検算用シート_" & 検算用シートの位置
        .Range("A1").Select
    End With

    ActiveWindow.Zoom = 20
'
'比較する二つのシートが左右に並んでいて、
'右側のシートを開いている状態からこのプロシージャーを実行しているので、
'右側のシートをさらに右にコピーして、検算用のシートとして挿入する。
'この状態で、二つのシートと検算用シートは、セルの値がまったく同じであるはず。
'それを確認するために表の値を比較していく。
'
'■1
'挿入された検算用シートが、一番左端のシートから何枚目にあるかを、整数で取得し、変数 検算用シートの位置 に代入。
'取得した値は、検算用シートの左にある二つのシートの位置を指定するのに使う。
'
'■2
'検算用シートの位置から 2 を引くと、左に2枚目のシートを指定できる。
'1 を引くと左に1枚目(すぐ左となり)のシートを指定できる。
'
'Columnプロパティで、検算用シートから左に2枚目のシート上にある表が何列あるかを取得して、変数 i に代入する値の最終値として使っている。
'表が何列あっても対応できるようにしている。
'G列のセルから値の比較を始めたいので、変数 i の初期値は 7 にしてある。比較を始めたい列が変わったら、7 の部分をそれに合わせる。(G列は7列目)
'列数を数える基準となるセルの行が変わったら、Cells(5, Columns.Count) の 5 の部分をそれに合わせる。
'
'Rowプロパティで、検算用シートから左に2枚目のシート上にある表が何行あるかを取得して、変数 j に代入する値の最終値として使っている。
'表が何行あっても対応できるようにしている。
'3行目のセルから比較を始めたいので、変数 j の初期値を 3 にしてある。比較を始めたい行が変わったら、3 の部分をそれに合わせる。
'行数を数える基準となるセルの列が変わったら、 Cells(Rows.Count, "G") の "G" の部分をそれに合わせる。
'
'検算用シートから左に2枚目のシートと1枚目のシートのセルの値を比較して、同じでなければ、検算用シートの該当セルを赤く塗る。
'セルを赤くすることで、二つのシートの同じセルで値が異なっている(どちらかのシートでセルの値が間違っている)ことがわかるようにしている。
'
'■3
'二つのシートのセルを比較する検算の繰り返しが終わったら、
'検算用シートのシート名を「検算用シート_検算用シートの位置」に変える。
'「検算用シート_3」というようなシート名になる。
'
'検算用シートの全体が見えるように表示倍率を 20% にする。
'シート全体を見渡せるようになるので、赤いセルがあったらわかる。
'
End Sub

| | コメント (0) | トラックバック (0)

« 2018年5月 | トップページ